Mac 10.13.4 - 'renice' parece não ter efeito

-1

Estou tentando testar o comando renice no meu Mac, parece não ter efeito. É assim que estou testando:

Eu tenho uma CPU dual core com hyper-threading, então eu executo 6 instâncias de node -e 'while(1){}' que, combinadas, maximizam minha CPU. (Como alternativa, execute while true; do echo running > /dev/null ; done se você não tiver o nó.)

Eu, então, obtenho um PID de um dos processos do nó, seja pelo aplicativo do monitor de atividade ou pgrep , e execute sudo renice -n 19 -p $PID .

Ao examinar o aplicativo do monitor de atividade ou htop , o uso da CPU de todos os processos do nó ainda é equivalente:

Meu entendimento era de que o processo que eu renice d teria baixa prioridade e, portanto, não usaria uma quantidade significativa de tempo de CPU quando há outros processos usando-o.

Estou entendendo mal algo sobre renice ? Ou isso é um bug no Mac OS?

    
por Dylanthepiguy 08.05.2018 / 07:56

1 resposta

1

Executando alguns testes rudimentares, também estou vendo isso em 10.13.4.

Eu escrevi um pequeno programa em C chamado looper que fazia algumas contas básicas em um loop infinito:

#include <stdio.h>

int main(){
    unsigned long long prev = 0;
    unsigned long long current = 1;
    unsigned long long total = 0;

    while(1){
        total = current + prev;
        prev = current;
        current = total;
        printf("%llu\n", total);
    }
}

Eu executei várias cópias disso na minha caixa FreeBSD e as examinei usando htop(1) . Usando renice(8) , pude ver o valor Nice sendo incrementado, o valor de Prioridade sendo incrementado e a porcentagem de CPU diminuindo - comportamento esperado.

Eu corri o mesmo programa no macOS 10.13.4 e repeti o processo. Embora eu possa ver o incremento do valor Nice, o valor de Prioridade e a porcentagem da CPU permaneceram consistentes.

Eu me pergunto se é um bug, eu não tive motivos para olhar de perto os valores de Nice no macOS antes - o comportamento tem sido próximo o suficiente para o que eu esperava que eu não estava inclinado a investigar.

Se você tem uma conta de desenvolvedor, vale a pena informar isso à Apple.

    
por 18.05.2018 / 10:52