De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Pra quê swap?

Colaboração: Bruno Buys

Data de Publicação: 03 de junho de 2008

Eu não me conformava que o swap sempre aparecia com 0 de uso, quando eu rodava o 'free'. Então fiz esse script que segue abaixo, pra rodar de cinco em cinco

minutos no meu cron, gravando a saída do free, pra saber se realmente o swap nunca é usado.

Acontece que nessas máquinas atuais, com muita memória, o swap fica à toa, mesmo. Pelo menos em desktops e notebooks isso acontece. Eu não testei isso em servidores, e nem aconselho. Mas meu notebook atual, com 2GB de memória, parece que não usa swap pra nada. E as memórias caíram tanto de preço, veja aqui http://www.boadica.com.br/query04.asp?ClasseProdutoX=3&CodCategoriaX=14&XT=9&XG=5. No Rio se compra 1GB de ddr2 a partir de R$ 36,00.

Existem coisas que a gente faz por tabu, sem precisar de verdade. Isso desperta a minha curiosidade. Quantas vezes eu já vi, até recentemente, alguém em lista de discussão ou em fórum, aconselhando a particionar o disco deixando um swap de tamanho igual à memória ram? Ou dizendo que o particionamento mínimo pra um sistema GNU/Linux é um sistema de arquivos raiz e um swap? Talvez já tenha sido assim. Mas hoje em dia?...

Então o script rodou durante um mês, gravando meu uso típico do notebook, e agora tenho um arquivo texto de ~3300 monótonas linhas, todas mais ou menos assim:

  ...
  20080516-13:45: Ps: 124. Ps bruno: 44. Mem usada: 698. Mem livre: 1320. Cache+mem livre: 1531. Swap usado: 0MB
  20080516-13:50: Ps: 125. Ps bruno: 45. Mem usada: 728. Mem livre: 1290. Cache+mem livre: 1502. Swap usado: 0MB
  20080516-13:55: Ps: 125. Ps bruno: 45. Mem usada: 725. Mem livre: 1293. Cache+mem livre: 1505. Swap usado: 0MB
  20080516-14:00: Ps: 126. Ps bruno: 46. Mem usada: 735. Mem livre: 1283. Cache+mem livre: 1495. Swap usado: 0MB
  ...

OBS -

Ps: Número de processos rodando

Ps bruno: Número de ps do usuário bruno

As medidas entre a data, no começo da linha e o Swap usado são só assessórias, pra dar uma idéia do estado da máquina. O importante mesmo é o uso do Swap.

O uso de swap é sempre 0. Confesso que o resultado não me causou muita surpresa. Mas confirmou a idéia. Próximo passo é um 'swapoff /dev/sda2', e depois reformatar com reiserfs. Essa pesquisa toda nem foi tanto pelo espaço em disco recuperado, mas mais pelo particionamento. Uma partição primária livre é sempre legal. E pra deixarmos de fazer as coisas por tabu: é melhor usar a cabeça.

Quem quiser cópia do arquivo completo é só pedir.

O script é (não esqueça de editar para o seu próprio usuário):

  #!/bin/bash
  
  ANO=`date +%Y`
  MES=`date +%m`
  DIA=`date +%d`
  HORA=`date +%H`
  MIN=`date +%M`
  
  DATACOMPLETA=""$ANO""$MES""$DIA"-"$HORA":"$MIN""
  
  USUARIO=bruno
  
  FREEARG='-m' # '-m' para ver em MB, -k para ver em KB e -GB para ver em GB. Prefira -m.
  
  SWAP_USADO=`free $FREEARG | grep Swap | tr -s ' ' ',' | cut -d "," -f 3`
  
  MEM_USADA=`free $FREEARG | grep Mem | tr -s ' ' ',' | cut -d "," -f 3`
  
  MEM_LIVRE=`free $FREEARG | grep Mem | tr -s ' ' ',' | cut -d "," -f 4`
  
  CACHE=`free $FREEARG | grep Mem | tr -s ' ' ',' | cut -d "," -f 7`
  
  LIVRE_CACHE=`expr $MEM_LIVRE + $CACHE`
  
  PSTOTAL=`ps ax | wc -l`
  
  PSUSUARIO=`ps aux | grep ^$USUARIO | wc -l`
  
  echo ""$DATACOMPLETA": Ps: "$PSTOTAL". Ps $USUARIO: `expr "$PSUSUARIO" - 1`. Mem usada: $MEM_USADA. Mem livre: $MEM_LIVRE. Cache+mem livre: $LIVRE_CACHE. Swap usado: "$SWAP_USADO"MB" >> "$HOME"/swap.txt
Error: No site found with the domain 's2.dicas-l.com.br' (Learn more)