% de cpu individual na saída 'top'

10

Normalmente, para visualizar% da CPU individual, pressionamos '1' no modo interativo da parte superior.

No entanto, não sou capaz de descobrir a lógica para obter a mesma saída no modo em lote, ou seja,

top -n1b

Estou redirecionando essa saída para um arquivo para visualizá-lo mais tarde e coisas assim, então preciso do modo em lote. É possível? Instalar uma ferramenta separada para isso não será possível.

Estou procurando uma opção que está faltando ou alguma maneira de capturar a saída.

Uday
fonte

Respostas:

7

Na parte superior interativa, alterne para% de CPU individual digitando e 1, em seguida, grave a configuração atual em um arquivo digitando W. Isso criará ~/.toprc. Agora, top -n1ba saída por CPU% também. Pode ser necessário copiar o .toprcarquivo e alterar as permissões se o seu script for executado como um usuário diferente.

jwhitlock
fonte
1
O Q solicita o modo em lote.
Charles Stewart
2
Vou tentar ser mais claro: não sei como, na linha de comando, dizer ao topo "quando você estiver no modo em lote, imprima a% da CPU individual". No entanto, o top é lido .toprcno modo em lote, para que você possa configurar esse arquivo conforme descrito e, em seguida, obterá% da CPU individual no modo em lote. Ou, pelo menos ele fez para mim (procps versão 3.2.7)
jwhitlock
tem que ser top? Por que não usar pse classificar em% de CPU? Acho que% da CPU é enganosa mesmo, tendo a classificar no VSIZE ou RSS, porque muitas vezes o que derruba meus servidores é o consumo excessivo de memória.
memnoch_proxy
5

Tem que ser superior? Talvez você precise do mpstat

  mpstat -A
Dan Andreatta
fonte
1

Isso é meio que um hack, mas parece funcionar:

$ ssh local.ubuntu.server "(sleep 1;echo 1)|TERM=xterm script -c top & sleep 2;killall script"|grep '^%Cpu'
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.1 st
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
AX Labs
fonte
0

Não sei o caminho certo para fazer isso com os procutils top; talvez echo k|top -n2 -d1.0faça o truque? Observe que a primeira saída do top não fornecerá informações úteis sobre o uso da% da CPU: top apenas tenta estimar a% da CPU desde que começou a executar. Daí o -n2. Você pode restringir à segunda listagem de estatísticas jogando fora tudo até a segunda linha em branco.

Com o topo do BSD, top -l2 -s1 -o cpu(testado) imprimirá as principais estatísticas duas vezes, ordenadas por% de CPU. Apenas no caso de haver um top BSD à espreita no seu sistema ...

Charles Stewart
fonte
0

Você pode usar no topo. É um monitor muito abrangente, onde você pode monitorar processos e recursos do sistema, como memória e CPU. Fornece saída individual para cada núcleo da CPU.

Para sistemas ubuntu, está disponível como um pacote no repositório, para que você possa instalá-lo diretamente via apt-get / synaptic.

Para Redhat e sistemas derivados, você pode encontrar os pacotes aqui: http://dag.wieers.com/rpm/packages/atop/

s1d
fonte