SMEM-relata o consumo de memória por processo e base por usuário no Linux

SMEM-relata o consumo de memória por processo e base por usuário no Linux

Gerenciamento de memória em termos de monitoramento de uso de memória é uma coisa importante a fazer no seu sistema Linux, existem muitas ferramentas disponíveis para monitorar o uso da memória que você pode encontrar em diferentes distribuições Linux. Mas eles funcionam de maneiras diferentes, assim como orientar, vamos dar uma olhada em como instalar e usar uma dessas ferramentas chamadas Smem.

Não perca: 20 ferramentas de linha de comando para monitorar o desempenho do Linux

Smem é uma ferramenta de relatório de memória de linha de comando que fornece um usuário diversificado relatórios sobre o uso da memória em um sistema Linux. Há uma coisa única sobre o SMEM, ao contrário de outras ferramentas tradicionais de relatórios de memória, relata PSS (Tamanho do conjunto proporcional), uma representação mais significativa do uso de memória por aplicativos e bibliotecas em uma configuração de memória virtual.

Ferramenta de relatório de memória SMEM - Linux

As ferramentas tradicionais existentes se concentram principalmente na leitura RSS (Tamanho do conjunto residente) que é uma medida padrão para monitorar o uso da memória em um esquema de memória física, mas tende a superestimar o uso da memória por aplicativos.

PSS Por outro lado, dá uma medida razoável determinando o “Share Fair”De memória usada por aplicativos e bibliotecas em um esquema de memória virtual.

Você pode ler este guia (sobre a memória RSS e PSS) para entender o consumo de memória em um sistema Linux, mas vamos procurar alguns dos recursos do SMEM.

Recursos da ferramenta SMEM

  1. Visão geral do sistema Listagem
  2. Listagens e também filtragem por processo, mapeamentos ou usuário
  3. Usando dados do sistema de arquivos /proc
  4. Colunas de listagem configuráveis ​​de várias fontes de dados
  5. Unidades de saída e porcentagens configuráveis
  6. Fácil de configurar cabeçalhos e totais em listagens
  7. Usando instantâneos de dados de espelhos de diretório ou arquivos de alcatrão comprimidos
  8. Mecanismo de geração de gráficos interno
  9. Ferramenta de captura leve usada em sistemas incorporados

Como instalar o SMEM - Ferramenta de relatório de memória no Linux

Antes de prosseguir com a instalação de Smem, Seu sistema deve atender aos seguintes requisitos:

  1. kernel moderno (> 2.6.27 ou então)
  2. uma versão recente do Python (2.4 ou então)
  3. Biblioteca Matplotlib opcional para geração de gráficos

A maioria das distribuições Linux de hoje vem com a mais recente versão do kernel com Python 2 ou 3 suporte, portanto, o único requisito é instalar matplotlib Biblioteca que é usada para gerar belos gráficos.

Em Rhel, Centos e Fedora

Primeiro, ative o repositório EPEL (Pacotes Extra para Enterprise Linux) e depois instale da seguinte forma:

# yum install smem python-matplotlib python-tk 

Em Debian e Ubuntu

$ sudo apt-get install smem 

Na hortelã do Linux

$ sudo apt-get install smem python-matplotlib python-tk 

no Arch Linux

Use este repositório AUR.

Como usar o SMEM - Ferramenta de relatório de memória no Linux

Para visualizar um relatório do uso de memória em todo o sistema, por todos os usuários do sistema, execute o seguinte comando:

$ sudo smem 
Monitore o uso da memória do sistema Linux
 PID User Command Swap USS PSS RSS 6367 tecmint cat 0 100 145 1784 6368 tecmint cat 0 100 147 1676 2864 tecmint /usr/bin/ck-launch-session 0 144 165 1780 7656 tecmint gnome-pty-helper 0 156 178 1832 5758 tecmint Gnome -pty -helper 0 156 179 1916 1441 raiz /sbin /getty -8 38400 tty2 0 152 184 2052 1434 raiz /sbin /getty -8 38400 tty5 0 156 187 2060 1444 raiz /sbin /getty -8 38400 0 156 187 186 1860 1444 2060 1432 raiz /sbin /getty -8 38400 tty4 0 156 188 2124 1452 raiz /sbin /getty -8 38400 tty6 0 164 196 2064 2619 raiz /sbin /getty -8 38400 tty1 0 164 196 2136 3544444444444 464 2636 3544 4 /lib/linuxmint/mi 0 212 224 1540 1504 raiz acpid -c/etc/acpi/eventos -0 220 236 1604 3311 Tecmint Syndaemon -i 0.5 -K -R 0 252 292 2556 3143 RTKIT/USR/LIB/RTKIT/RTKIT -DAEMON 0 300 326 2548 1588 RAIO 0 292 333 2344 1589 AVAHI AVAHI -DAEMON: Chroot Selte 0 124 334 162222323 /IrqBalance 0 316 343 2096 585 Raiz Upstart-Socket-Bridge--dae 0 328 351 1820 3033 Tecmint/usr/bin/dbus-launch --exit 0 328 360 2160 1346 Raiz Upstart-Bridge-Daemo 0 371 371 371 1776 2607 raiz/usr/bin/xdm 0 188 378 2368 1635 KERNOOPS/USR/SBIN/KERNELOOPS 0 352 386 2684 344 Raiz upstart-cu-bridge--daemo 0 400 427 2132 2960 usr/bin 0 480 485 992 3468 Tecmint/bin/dbus -daemon -Config -f 0 344 515 3284 1559 Avahi Avahi -Daemon: Running [TECM 0 284 517 3108 7289 Pós -fixos 288 534 2808 2135 raiz/usr/lib/postfix/master 0 352 576 2872 2436 Postfix qmgr -l -t Unix -u 0 360 606 2884 1521 raiz/lib/systemd-Logind 0 600 650 3276 2222 Ninguém/usr/sbin/dnsmasq-no-reno 0 604 669 3288… 

Quando um usuário normal é executado Smem, Ele exibe o uso da memória por processo que o usuário iniciou, os processos são organizados para aumentar PSS.

Dê uma olhada na saída abaixo no meu sistema para uso de memória por processos iniciados pelo usuário Aaronkilik:

$ smem 
Monitore o uso da memória do usuário no Linux
 Comando do usuário PID Swap USS PSS RSS 6367 Tecmint Cat 0 100 145 1784 6368 Tecmint Cat 0 100 147 1676 2864 0 212 224 1540 3311 Tecmint Syndaemon -i 0.5 -K -R 0 252 292 2556 3033 Tecmint/usr/bin/dbus-launch --exit 0 328 360 2160 3468 Tecmint/bin/dbus-daemon-Config-f 0 344 515 3284 3122 Tecmint/usr/lib gvfs/gvfsd 0 656 801 5552 3471 tecmint /usr/lib/at-spi2-core/at-sp 0 708 864 5992 3396 tecmint /usr/lib/gvfs/gvfs-mtp-volu 0 804 914 6204 3208 tecmint /usr/ lib/x86_64-linux-gnu/i 0 892 1012 6188 3380 tecmint /usr/lib/gvfs/gvfs-afc-volu 0 820 1024 6396 3034 tecmint //bin/dbus-daemon --fork -- 0 920 1081 3040 3365 Tecmint/usr/lib/gvfs/gvfs-gphoto2- 0 972 1099 6052 3228 Tecmint/usr/lib/gvfs/gvfsd-trash-0 980 1153 6648 3107 Tecmint/Opt/Google/Chrome/Chrome-0 144 1409 10732 3478 Tecmint/usr/lib/x86_64-linux-gnu/g 0 1724 1820 6320 7365 Tecmint/usr/lib/gvfs/GVFSD-HTTTTTTP- 6937 Tecmint /Opt /LibreOffice5.0/Program 0 1140 2328 5040 3194 Tecmint/usr/lib/x86_64-linux-gnu/p 0 1956 2405 14228 6373 Tecmint/opt/google/chrome/nacl_hel 0 2324 2541 8908 3313 Tecmnt/USS/US $ 2341 8908 3313 TECMINT/ Udisks2- 0 2460 2754 8736 3464 Tecmint/usr/lib/at-spi2-core/at-sp 0 2684 2823 7920 5771 Tecmint SSH -P 4521 [Email protegido] 0 2544 2840 6540 5759 3541 Tecmint/usr/bin/python/usr/bin/mi 0 2584 3008 7248 7657 BASH TECMINT 0 2516 3055 6028 3127 Tecmint/usr/lib/gvfs/gvfsd-fuse/r 0 3024 3120 3026200miT/LIB/GVFS/GVFSD-FUSE/r 0 3024 3126 4032026026026020 30-MATEST/402420 30-Mate/420miT/4250miT/USR/LIB/GVFS/GVFSD-FUSE/R 0 3024 312602620200 3331 18072 3171 Tecmint/usr/lib/mate-panel/notific 0 2860 3495 17140 3030 Tecmint X-Session-manager 0 4400 4879 17500 3197 Tecmint Mate-volume-controle 

Existem muitas opções para invocar enquanto estiver usando Smem, Por exemplo, para visualizar o consumo de memória ampla do sistema, execute o seguinte comando:

$ sudo smem -w 
Monitore o consumo de usuário de memória ampla do sistema
Área usada Firmware/hardware não -cache de cache 0 0 

Para visualizar o uso da memória por usuário, execute o comando abaixo:

$ sudo smem -u 
Monitore o consumo de memória por base do usuário no Linux
Usuário Swap USS PSS RSS RTKIT 1 0 300 326 2548 KERNOOPS 1 0 352 385 2684 AVAHI 2 0 408 851 4740 POSTFIX 2 0 648 1140 5692 MessageBus 1 0 1012 1173 3320 MPD 1 0 7416 8302 12896 NINGUÉM 2 0 4024 11305 24728 RAIO 39 0 323876 353418 496520 Tecmint 64 0 1652888 1815699 2763112 

Você também pode relatar o uso da memória pelos mapeamentos da seguinte forma:

$ sudo smem -m 
Monitore o uso da memória por mapeamentos no Linux
Mapa PIDS AVGPSS PSS/DEV/FB0 1 0 0/HOME/TECMINT/.cache/fontconfig/7ef2298f 18 0 0/home/tecmint/.cache/fontconfig/c57959a1 18 0 0/home/tecmint/.Local/Share/MIME/MIME.CAC 15 0 0/OPT/Google/Chrome/Chrome_material_100_P 9 0 0/Opt/Google/Chrome/Chrome_material_200_p 9 0 0/usr/lib/x86_64-linux-gnu/gconv/gConv-MO 41 0/USR/compartilhe// ícones/Mint-x-Teal/Icon-the. 15 0 0/var/cache/fontconfig/0c9EB80EBD1C36541E 20 0 0/var/cache/fontConfig/0d8c3b2ac0904cb8a5 20 0/var/cache/fonts/1ac9Eb803944440 0 0/var/cache/fonting/1ac9Eb803944400 0 0/var/cache/font. cache/fontconfig/385c0604a188198f04 20 0 0 /var/cache/fontconfig/4794a0821666d79190 20 0 0 /var/cache/fontconfig/56cf4f4769d0f4abc8 20 0 0 /var/cache/fontconfig/767a8244fc0220cfb5 20 0 0 /var/cache/fontconfig/8801497958630a81b7 20 0 0 /var/cache/fontconfig/99e8ed0e538f840c56 20 0 0 /var/cache/fontconfig/b9d506c9ac06c20b43 20 0 0 /var/cache/fontconfig/c05880de57d1f5e948 20 0 0 /var/cache/fontconfig/dc05db6664285cc2f1 20 0 0 /var/cache /Fontconfig/e13b20fdb08344e0e6 20 0 0/var/cache/fontconfig/e7071f4a29fa870f43 20 0 0… 

Também existem opções para filtrar Smem saída e veremos dois exemplos aqui.

Para filtrar a saída por nome de usuário, invocar o -você ou --userFilter = "regex" opção como abaixo:

$ sudo smem -u 
Relatar o uso da memória pelo usuário
User Count Swap USS PSS RSS rtkit 1 0 300 326 2548 kernoops 1 0 352 385 2684 avahi 2 0 408 851 4740 postfix 2 0 648 1140 5692 messagebus 1 0 1012 1173 3320 syslog 1 0 1400 1423 3236 www-data 2 0 5100 6572 13580 MPD 1 0 7416 8302 12896 NINGUÉM 2 0 4024 11305 24728 RAIO 39 0 323804 353374 496552 Tecmint 64 0 1708900 1871766 2819212 

Para filtrar a saída por nome do processo, invocar o -P ou --processfilter = "regex" Opção da seguinte forma:

$ sudo smem --processfilter = "Firefox" 
Relatar o uso da memória por nome do processo
Comando do usuário PID troca de USS PSS RSS 9212 ROOT SUDO SMEM --ProcessFilter = F 0 1172 1434 4856 9213 raiz/usr/bin/python/usr/bin/sm 0 7368 7793 11984 4424 Tecmint/usrr/libf/lib/ 937590 961504 

A formatação de saída pode ser muito importante e há opções para ajudá -lo a formatar relatórios de memória e vamos dar uma olhada em poucos exemplos abaixo.

Para mostrar colunas desejadas no relatório, use -c ou --colunas Opção da seguinte forma:

$ sudo smem -C "Nome Usuário PSS RSS" 
Relatar o uso da memória por colunas
Nome Usuário PSS RSS CAT TECMINT 145 1784 CAT Tecmint 147 1676 CK-LAUNCH-SESSI Tecmint 165 1780 Gnome-PTY-Helpe Tecmint 178 1832 Gnome-PTY-Helpe Tecmint 179 1916 Raiz de raiz 184 205 ROOTTY 187 2060 188 2124 Getty Root 196 2064 Getty Raiz 196 2136 SH Tecmint 224 1540 RAIA ACPID 236 1604 SINDAEMON Tecmint 296 2560 Rtkit-daemon Rtkit 326 2548 CRON RAOT 333 2344 AVAHI-STAPTAHI 334622262626262626 213333 333 ROOTATATATATATATATATATATATATATATO 333 333. -Tecmint 360 2160 2160 Raiz-BR 371 1776 XDM RAIA 378 2368 KERNELOOPS KERNOOPS 386 2684 UPSTART-MUDEV-BR-BR 427 2132 SSH-AGENT Tecmint 485 992… 

Você pode invocar o -p Opção para relatar o uso da memória em porcentagens, como no comando abaixo:

$ sudo smem -p 
Relatar o uso da memória por porcentagens
 Comando do usuário PID Troque USS PSS RSS 6367 Tecmint Cat 0.00% 0.00% 0.00% 0.02% 6368 Tecmint Cat 0.00% 0.00% 0.00% 0.02% 9307 Tecmint sh -c sudo/usr/lib/linux 0.00% 0.00% 0.00% 0.02% 2864 Tecmint/usr/bin/ck-launch-session 0.00% 0.00% 0.00% 0.02% 3544 Tecmint sh -c/usr/lib/linuxmint/mi 0.00% 0.00% 0.00% 0.02% 5758 Tecmint gnome-pty-helper 0.00% 0.00% 0.00% 0.02% 7656 Tecmint gnome-pty-helper 0.00% 0.00% 0.00% 0.02% 1441 raiz /sbin /getty -8 38400 tty2 0.00% 0.00% 0.00% 0.03% 1434 raiz /sbin /getty -8 38400 tty5 0.00% 0.00% 0.00% 0.03% 1444 raiz /sbin /getty -8 38400 tty3 0.00% 0.00% 0.00% 0.03% 1432 raiz /sbin /getty -8 38400 tty4 0.00% 0.00% 0.00% 0.03% 1452 raiz /sbin /getty -8 38400 tty6 0.00% 0.00% 0.00% 0.03% 2619 raiz /sbin /getty -8 38400 tty1 0.00% 0.00% 0.00% 0.03% 1504 raiz acpid -c/etc/acpi/eventos - 0.00% 0.00% 0.00% 0.02% 3311 Tecmint Syndaemon -i 0.5 -K -R 0.00% 0.00% 0.00% 0.03% 3143 rtkit/usr/lib/rtkit/rtkit-daemon 0.00% 0.00% 0.00% 0.03% 1588 raiz cron 0.00% 0.00% 0.00% 0.03% 1589 Avahi Avahi-Daemon: CHROOT HELHE 0.00% 0.00% 0.00% 0.02% 1523 raiz/usr/sbin/irqbalance 0.00% 0.00% 0.00% 0.03% 585 Raiz Upstart-Socket-Bridge--dae 0.00% 0.00% 0.00% 0.02% 3033 Tecmint/usr/bin/dbus-launch --exit 0.00% 0.00% 0.00% 0.03%… 

O comando abaixo mostrará totais no final de cada coluna da saída:

$ sudo smem -t 
Relatar contagem total de uso de memória
Comando do usuário PID Swap USS PSS RSS 6367 Tecmint Cat 0 100 139 1784 6368 Tecmint Cat 0 100 141 1676 9307 Tecmint sh -c sudo/usr/lib/linux 0 96 158 1508 2864 0 144 163 1780 3544 Tecmint sh -c/usr/lib/linuxmint/mi 0 108 170 1540 5758 Tecmint gnome-pty-helper 0 156 176 1916 7656 SBIN/SBIN/STETTER 0 156 176 1832 1441 8 38400 tty2 0 152 181 2052 1434 raiz /sbin /getty -8 38400 tty5 0 156 184 2060 1444 raiz /sbin /getty -8 38400 tty3 0 156 184 2060 1432 root /sbin /getty -8 38400 0166 186 186 18 1860 1432 1432 raiz/sbin/getty -8 38400 tty6 0 164 193 2064 2619 raiz/sbin/getty -8 38400 tty1 0 164 193 2136 1504 raiz acpid -c/etc/acpi/eventos -0 220 232 1604 3311.5 -K -R 0 260 298 2564 3143 RTKIT/USR/LIB/RTKIT/RTKIT -DAEMON 0 300 324 2548 1588 RAIO 0 292 326 2344 1589 AVAHI AVAHI -DAEMON: Chroot Selte 0 124 332 162223223 /IrqBalance 0 316 340 2096 585 Raiz Upstart-Socket-Bridge--dae 0 328 349 1820 3033 Tecmint/usr/bin/dbus-launch --exit 0 328 359 2160 1346 Raiz upstart-file-Bridge-daemo 0. 1776 2607 raiz/usr/bin/xdm 0 188 375 2368 1635 kernoops/usr/sbin/kernelloops 0 352 384 2684 344 raiz upstart-udev-ponte-daemo 0 400 426 2132… ----------- -------------------------------------------------------- --------------------- 134 11 0 2171428 2376266 3587972 

Além disso, existem opções para relatórios gráficos que você também pode usar e mergulharemos neles nesta sub -seção.

Você pode produzir um gráfico de barras de processos e seus PSS e RSS Valores, no exemplo abaixo, produzimos um gráfico de barras de processos pertencentes ao usuário root.

O plano vertical mostra o PSS e RSS A medida dos processos e o plano horizontal representa cada processo do usuário raiz:

$ sudo smem --UserFilter = "raiz" -bar Pid -c "PSS RSS" 
Uso da memória Linux em valores de PSS e RSS

Você também pode produzir um gráfico de pizza mostrando processos e seu consumo de memória com base em PSS ou RSS valores. O comando abaixo produz um gráfico de pizza para processos de propriedade de raiz Valores de medição do usuário.

O --torta nome significa rótulo por nome e -s a opção ajuda a classificar pelo valor do PSS.

$ sudo smem --UserFilter = "root" -Nome da pie -s PSS 
Consumo de memória Linux por processos

Existem muitos outros campos conhecidos além de PSS e RSS Usado para gráficos de rotulagem:

Para obter ajuda, basta digitar, SMEM -H ou visite a página de entrada manual.

Vamos parar por aqui com Smem, Mas para entender melhor, use -o com muitas outras opções que você pode encontrar na página do homem. Como de costume, você pode usar a seção de comentários abaixo para expressar quaisquer pensamentos ou preocupações.

Links de referência: https: // www.Selenic.com/smem/