pv
não sabe sobre os estados de energia do sistema. Tudo o que se vê é que o relógio mudou muito em algum momento.
Meu palpite é que pv
não se importa se a quantidade de tempo entre duas leituras de clock ficar grande e apenas calcular a taxa de transferência com base no intervalo de tempo. Como o intervalo é muito grande, parece que a taxa de transferência é muito baixa.
O cálculo do throughput é medido em várias leituras do relógio (cerca de 5min em suas observações). Contanto que o intervalo considerado inclua o tempo gasto em suspensão, o valor da taxa de transferência calculada será muito baixo. Quando o intervalo novamente consistir apenas em tempo acordado, a taxa de transferência retornará ao esperado.
Por exemplo, suponha que você tenha suspendido por cinco minutos. Então, logo após retomar, pv
calcula que 500kB foram transferidos nos últimos 5min, significando um throughput de apenas cerca de 1.7kB / s. Isso está bem abaixo do limite de 500kB, então pv
transfere mais dados por um tempo para compensar. Eventualmente, o cálculo da taxa de transferência se estabilizará novamente.
Suspender o sistema não é como suspender o processo pv
. Suspender o sistema é transparente para programas. Suspender o processo envia um sinal SIGCONT quando acordar. pv
tem um manipulador de sinal para o SIGCONT que faz com que ele subtraia mais ou menos o tempo que ele passou suspenso (não chequei exatamente o que ele faria se ele fosse suspenso com um sinal SIGSTOP não detectável, mas não deveria causar muito grande uma perturbação, ao contrário da suspensão do sistema).