Visão
às Vezes, precisamos de seleção para o tamanho total de memória em um servidor executando o Linux ou talvez seja necessário usar a memória estatísticas em shell scripts. Felizmente, temos acesso a inúmeras ferramentas que podemos usar para verificar a memória física total. Neste tutorial, vamos adotar diferentes abordagens para servir a esse propósito usando vários comandos e ferramentas úteis.
2. Free Command
free é o mais simples de todos os comandos que veremos. Ele é usado para imprimir o uso físico e trocar a memória — por padrão, ele imprime na saída padrão. O comando gratuito é um dos comandos amplamente utilizados para verificar rapidamente as estatísticas de RAM porque está disponível na maioria das distribuições Linux. Podemos simplesmente digitar o comando livre em nosso terminal sem sinalizadores:
$ free
total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0
como podemos, o tamanho da memória física é impresso em bytes. No entanto, podemos imprimir facilmente a saída em um formato legível por humanos usando o sinalizador – H ou-human:
$ free -h
total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B
Como pode ser visto na saída acima, temos um total de 7,6 GiB de RAM. Além disso, existem muitas outras opções que podem ser usadas para imprimir a saída no formato que gostamos, como –kilo, –mega, –Giga e assim por diante. Mais uma opção interessante é a opção-s:
$ free -h -s 5
o sinalizador-s representa segundos, portanto, o free imprimirá o uso de RAM a cada 5 segundos neste exemplo. É especialmente útil se quisermos monitorar o uso de RAM em um intervalo especificado. Podemos encerrar facilmente o processo com o atalho de teclado Ctrl + C.
3. comando vmstat
como o comando livre, vmstat (estatísticas de memória virtual) também está disponível na maioria das distribuições Linux. Por padrão, quando digitamos o comando vmstat, ele imprimirá a memória livre, armazenada em buffer e armazenada em cache junto com as informações de swap, CPU, IO e sistema:
$ vmstat -w
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0
o sinalizador –W ou-wide imprime a saída em um formato legível amplo. Como estamos interessados no tamanho total da RAM, adicionaremos o sinalizador-s ou –stats:
$ vmstat -s
8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks
a primeira entrada na saída é RAM física total. Às vezes, não precisamos de todas as informações, então podemos usar grep para extrair apenas a entrada desejada:
$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory
4. Top Command
top é basicamente um gerenciador de tarefas de linha de comando com uma saída em tempo real. É usado para verificar os processos em execução em um layout de tabela limpa. Ele também nos mostra a CPU, RAM e informações do sistema em geral. Podemos acender simplesmente executando o comando top:
$ top
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie%Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 stMiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cachetop - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombietop - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem
Na parte superior, podemos ver as informações de memória ao lado de Mem de campo e observar que temos um total de 7833 MiB de RAM total.
5. dmidecode Utility
dmidecode é uma ferramenta auxiliar que imprime informações sobre componentes de hardware – como especificações de hardware, números de série e versões do BIOS – em um formato legível por humanos. As informações de hardware são extraídas da tabela DMI. Também podemos usá-lo para encontrar informações interessantes sobre nosso sistema, como a memória máxima suportada.
5.1. Instalar dmidecode
dmidecode não está instalado em algumas distribuições Linux por padrão, então vamos instalá-lo primeiro. Podemos instalar o dmidecode diretamente do nosso repositório de distribuição usando um gerenciador de pacotes.
Para o Ubuntu e distribuições baseadas, podemos instalar o pacote através do apt:
# apt install dmidecode
Para o RHEL, Fedora, CentOS, podemos usar o yum:
# yum install dmidecode
No Arch e distribuições baseadas, simplesmente use o pacman:
# pacman -Sy dmidecode
5.2. Usando dmidecode
assim que a instalação for concluída, podemos executar o comando dmidecode em nosso terminal:
# dmidecode
precisamos ter privilégios de root para executar o dmidecode. Depois de executar o comando, poderemos ver informações detalhadas de hardware. Ele contém muitas informações relacionadas aos nossos componentes de hardware, mas estamos interessados apenas no tamanho total da memória.
felizmente, podemos alimentar a opção-type para o comando de diferentes componentes, como BIOS, memória, processador, temperaturas e assim por diante. A opção-type espera um número para tipos DMI.
no nosso caso, queremos olhar para o tipo de memória DMI, que pode ser acessado com os números atribuídos 5, 6, 16, 17, 18, 19, 20, 21, e 22. No entanto, estamos interessados no número 19, que imprimirá os dispositivos RAM atualmente conectados aos slots em nossa placa-mãe:
# dmidecode --type 19
# dmidecode 3.3Getting SMBIOS data from sysfs.SMBIOS 3.0.0 present.Handle 0x0049, DMI type 19, 31 bytesMemory Array Mapped AddressStarting Address: 0x00000000000Ending Address: 0x001FFFFFFFFRange Size: 8 GBPhysical Array Handle: 0x0044Partition Width: 1
como podemos ver, temos apenas um único dispositivo RAM com 8 GB de tamanho total instalado em um dos slots de RAM.
6. /proc / meminfo Virtual File
o diretório /proc é um tipo especial de diretório que contém arquivos virtuais. Esses arquivos virtuais são uma maneira de dar uma olhada no kernel do Linux, processos e configurações. Esses arquivos não existem no disco e não ocupam espaço, mas são criados quando são lidos. O acesso a alguns dos arquivos requer acesso root.
há um arquivo virtual especial chamado meminfo, dentro do diretório /proc, que pode ser lido com comandos como cat e less. O arquivo meminfo contém informações sobre nosso tamanho de memória física, entre outras informações úteis. Vamos ler o /proc/meminfo arquivo usando gato:
$ cat /proc/meminfo
No exemplo acima, usamos o comando cat, que é um utilitário útil que pode ler de um arquivo ou entrada padrão. Assim que o comando for executado, ele lerá /proc/meminfo e nos apresentará uma saída longa em relação à nossa memória física. Estamos interessados apenas no tamanho total da RAM, que aparece nas três principais linhas da saída:
$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB
imprimimos apenas as linhas nas quais estamos interessados usando o comando head. O argumento-n fornecido ao comando head é usado para especificar o número de linhas a serem lidas. Os tamanhos são impressos em kilobytes e devem nos dar uma ideia do que é nossa memória física total, livre e disponível.Vamos supor que estamos escrevendo um script Bash onde precisamos processar o tamanho físico da RAM. Podemos conseguir isso através da leitura o /proc/meminfo do arquivo primeiro e, em seguida, grep, o tamanho total de memória:
#!/bin/bashtotal_ram () { local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o ']*') echo $totalram}ram_size=$(total_ram)echo "Total RAM: $ram_size kB"
Agora, vamos salvar o script e torná-lo executável:
$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB
Usando o GUI Gestores de Tarefas
Há uma variedade de GUI gestores de tarefas que podemos usar para verificar se a CPU, memória RAM e uso da rede, além de gerenciar processos. Vamos dar uma olhada rápida nos mais populares para Linux.
7.1. GNOME System Monitor
GNOME System Monitor é o Gerenciador de tarefas padrão que vem com o ambiente de desktop GNOME. No entanto, se estivermos executando um ambiente de desktop diferente, podemos facilmente procurar o pacote gnome-system-monitor em nosso repositório de pacotes de distribuição. Uma vez instalado, podemos iniciá – lo a partir da linha de comando:
$ gnome-system-monitor
ao navegar para a guia Recursos, podemos ver nosso tamanho total de memória entre outras estatísticas.
7.2. KSysGuard é o Gerenciador de tarefas padrão desenvolvido pela comunidade KDE e vem com o KDE por padrão. Da mesma forma, se estivermos usando um ambiente de desktop diferente, podemos instalá-lo facilmente em nosso sistema procurando o pacote ksysguard no repositório de pacotes. Podemos iniciá-lo com o comando ksysguard depois de instalado:
$ ksysguard
$ ksysguard
assim que o ksysguard for iniciado, podemos acessar a guia carregamento do sistema e ver nossas informações de memória junto com um bom gráfico.
Conclusão
neste artigo, examinamos diferentes comandos e ferramentas que podem nos ajudar a descobrir o tamanho da memória física do nosso sistema Linux.
cobrimos o comando minimal free e seu comando vmstat alternativo. Em seguida, usamos o comando top para descobrir várias informações do sistema. Também analisamos o utilitário dmidecode e como podemos extrair as informações de memória física da tabela DMI.
depois, aprendemos o que é o diretório /proc e como podemos ler o arquivo /proc/meminfo para verificar o tamanho total da RAM e usá-lo em um script bash. Finalmente, aprendemos sobre alguns gerenciadores de tarefas gráficas e como podemos usá-los para verificar o uso e as Estatísticas da RAM.
se você tem alguns anos de experiência no ecossistema Linux e está interessado em compartilhar essa experiência com a comunidade, dê uma olhada em nossas Diretrizes de Contribuição.