Estou usando um servidor linux que possui 128 GB de memória e 24 núcleos. Eu uso top para ver quanto é usado. Sua saída é colada no final da postagem. Aqui estão duas perguntas:
(1) Vejo que cada um dos processos em execução ocupa uma porcentagem muito pequena de memória (% MEM não superior a 0,2% e, no máximo, apenas 0,0%), mas como a memória total é quase usada como na quarta linha de saída ( "Mem: 130766620k total, 130161072k usado, 605548k livre, 919300k buffers")? É improvável que a soma da porcentagem de memória usada em todos os processos atinja quase 100%, não é?
(2) como entender a média de carga na primeira linha ("média de carga: 14.04, 14.02, 14.00")?
Obrigado e cumprimentos!
Editar:
Obrigado!
Também gosto muito de ouvir alguns números aproximados, com base na porcentagem de memória usada para determinar se um servidor está muito carregado, desde que me tornei aquele que amontoou o servidor sem entender a carga atual.
A troca é considerada quase igual à memória? Por exemplo, quando a memória e a troca são quase do mesmo tamanho, se a memória está quase acabando, mas a troca ainda é amplamente livre, posso vê-la como se a porcentagem usada de memória + troca ainda não estivesse alta e executasse outras novas processos?
Como você consideraria o uso da CPU ou da memória (ou memória + troca)? Você fica preocupado se um deles chega muito alto ou ambos?
Saída do topo :
$ top
top - 12:45:33 até 19 dias, 23:11, 18 usuários, média de carga: 14.04, 14.02, 14.00 Tarefas: 484 total, 12 em execução, 472 em sono, 0 parado, 0 zumbi Processador (es): 36.7% us, 19.7% sy, 0.0% ni, 43.6% id, 0.0% wa, 0.0% hi, 0.0% si, 0.0% st Mem: 130766620k total, 130161072k usado, 605548k livre, 919300k buffers Troca: 63111312k total, 500556k usado, 62610756k grátis, 124437752k em cache PID USER PR NI VIRT RES SHR% CPU% MEM TIME + COMMAND 6529 sanchez 18 -2 1075m 219m 13m S 100 0.2 13760: 23 MATLAB 13210 timothy 18 -2 48336 37m 1216 R 100 0,0 3: 56,75 absurdo 13888 timothy 18 -2 48336 37m 1204 R 100 0.0 2: 04.89 absurdo 14542 timothy 18 -2 48336 37m 1196 R 100 0.0 1: 08.34 absurdo 14544 timothy 18 -2 2888 2076 400 R 100 0,0 1: 06.14 gatherData 6183 sanchez 18 -2 1133m 195m 13m S 100 0,2 13676: 04 MATLAB 6795 sanchez 18 -2 1079m 210m 13m S 100 0,2 13734: 26 MATLAB 10178 timothy 18 -2 48336 37m 1204 R 100 0,0 11: 33,93 absurdo 12438 timothy 18 -2 48336 37m 1216 R 100 0,0 5: 38,17 absurdo 13661 timothy 18 -2 48336 37m 1216 R 100 0.0 2: 44.13 absurdo 14098 timóteo 18 -2 48336 37m 1204 R 100 0,0 1: 58,31 absurdo 14335 timothy 18 -2 48336 37m 1196 R 100 0.0 1: 08.93 absurdo 14765 timothy 18 -2 48336 37m 1196 R 99 0.0 0: 32.57 absurdo 13445 timóteo 18 -2 48336 37m 1216 R 99 0,0 3: 01.37 absurdo 28990 root 20 0 0 0 0 S 2 0.0 65: 50.21 pdflush 12141 tim 18 -2 19380 1660 1024 R 1 0,0 0: 04.04 topo 1240 raiz 15 -5 0 0 0 S 0 0,0 16: 07.11 9019 raiz 20 0 296m 4460 2616 S 0 0,0 82: 19,51 kdm_greet 1 raiz 20 0 4028 728 592 S 0 0,0 0: 03.11 init 2 raiz 15 -5 0 0 0 S 0 0.0 0: 00.00 kthreadd 3 raiz RT -5 0 0 0 S 0 0.0 0: 01.01 migração / 0 4 raiz 15 -5 0 0 0 S 0 0.0 0: 08.13 ksoftirqd / 0 5 raiz RT -5 0 0 0 S 0 0.0 0: 00.00 watchdog / 0 RT 6 raiz -5 0 0 0 S 0 0.0 17: 27.31 migração / 1 7 raiz 15 -5 0 0 0 S 0 0.0 0: 01.21 ksoftirqd / 1 8 raiz RT -5 0 0 0 S 0 0.0 0: 00.00 watchdog / 1 9 raiz RT -5 0 0 0 S 0 0.0 10: 02.56 migração / 2 10 raiz 15 -5 0 0 0 S 0 0.0 0: 00.34 ksoftirqd / 2 11 raiz RT -5 0 0 0 S 0 0.0 0: 00.00 watchdog / 2 12 raiz RT -5 0 0 0 S 0 0.0 4: 29.53 migração / 3 13 raiz 15 -5 0 0 0 S 0 0.0 0: 00.34 ksoftirqd / 3
fonte
Respostas:
Para ver quanta memória você está usando no momento, execute
free -m
. Fornecerá saída como:O valor da linha superior 'usado' (1923) quase sempre corresponde quase ao valor da memória da linha superior (2012). Como o Linux gosta de usar qualquer memória sobressalente para armazenar em cache os blocos de disco (515).
A figura-chave usada para examinar é o valor usado da linha de buffers / cache (1316). É quanto espaço seus aplicativos estão usando no momento. Para um melhor desempenho, esse número deve ser menor que a memória total (2012). Para evitar erros de falta de memória, ele precisa ser menor que a memória total (2012) e trocar espaço (3153).
Se você deseja ver rapidamente quanta memória está livre, consulte o valor livre de linha de buffers / cache (695). Esta é a memória total (2012) - a real usada (1316). (2012 - 1316 = 696, não 695, isso será apenas uma questão de arredondamento)
Este artigo sobre carga média usa uma boa analogia de tráfego e é a melhor que eu encontrei até agora: Entendendo a carga de CPU do Linux - quando você deve se preocupar? . No seu caso, como as pessoas apontaram:
Portanto, com uma média de carga de 14,00 e 24 núcleos, seu servidor está longe de ser sobrecarregado.
fonte
Sistemas tipo Unix, incluindo Linux, são projetados para fazer o uso mais eficiente possível da RAM disponível. Em termos muito gerais, existem 3 estados em que cada MB de RAM pode estar:
O terceiro estado é usado apenas como espaço de trabalho e deve ser reatribuído sempre que necessário, ou seja, sua memória total disponível para programas é realmente Free + UsedforBuffers. Como tal, você realmente não verá o espaço alocado do buffer aparecendo como atribuído a qualquer processo específico.
Sua pergunta sobre a média de carga é um pouco mais interessante, pois pode ser facilmente mal interpretada. Para a história completa, consulte este artigo do linuxjournal . O melhor resumo é uma citação direta do artigo,
Ou seja, você pode pensar em sua média de carga como (número de processos em execução) + (número de processos aguardando IO). Tendo em mente que a qualquer momento você pode ter o número de processos $ CORE em execução, eu diria que sua média de carga de 14 é muito baixa.
fonte
Na
sar
página do manual:Na
uptime
página do manual:fonte
top
basicamente inútil, geralmente mantendo a maior parte da memória da máquina alocada para vários usos quando não é exigida pelo processo do usuário.fonte
A média de carga é ótima. Ele permite que você entenda o que acontece além da utilização de 100%, basicamente: http://en.wikipedia.org/wiki/Load_%28computing%29
fonte