Ontem a noite, um amigo me questionou sobre o consumo de memória RAM e a quantidade de swap usada em um sistema linux. Dentre outras coisas, ele queria saber o motivo de todo mundo usar o dobro da memória RAM como swap.

Eu lhe expliquei que isso era mais uma convenção, e que era necessário no tempo em que as pessoas dispunham de pouca RAM em seus computadores, mas que hoje isso não é mais válido e que no caso do desktop dele – que contem 1gb de RAM – alocar 1gb do hd como swap seria de longe mais que suficiente.


Hoje, que surpresa! O pessoal do NixCraft fez uma matéria tratando justamente desse assunto. ( Acho que eles mantem câmeras secretas na minha casa )


No artigo da NixCraft vi que minha explicação não foi 100%, pois um dos motivos de antigamente se usar o dobro da RAM como swap é o fato de que o sistema de gerenciamento de memoria do “Linux de antigamente” não era tão eficiente quanto do “Linux da atualidade”.



As políticas sugeridas no NixCraft são:

for normal server (Web / Mail etc):

1. Swap space == Equal RAM size (if RAM < 2GB)
2. Swap space == 2GB size (if RAM > 2GB)

My friend who is a true Oracle GURU recommends something as follows for heavy duty Oracle server with fast storage such as RAID 10:

1. Swap space == Equal RAM size (if RAM < 8GB)
2. Swap space == 0.50 times the size of RAM (if RAM > 8GB)

De modo geral em meus servidores, faz algum tempo que tenho adotado a política do RAM == SWAP, exceto nos casos de servidores pequenos, com 512 de RAM ou menos, nesses raros casos ainda uso a regra do dobro.

A mesma política adoto nos micros de casa, Notebook c/ 1gb de RAM e de swap, pc de mesa c/ 512 de RAM e 1gb de swap.

Resolvi pegar o uso da swap de algumas máquinas e postar aqui.

  • Notebook c/ 1 gb de RAM (em quanto escrevo esse artigo ) – 13 mb
  • Desktop c/ 512 mb de RAM (em quanto jogo uma partida de tremulous no Gnome) – 142 mb
  • Servidor c/ 2 gb de RAM ( 4 instâncias do Tomcat e 1 do Mongrel ) – 300 mb
* Um último adendo. O artigo do NixCraft faz uma ressalva quanto ao uso de RAM em máquinas que fazem uso da função de suspender para o disco, nesses casos o dobro da RAM como swap ainda é necessário.

Mas e você? quanta swap está usando no momento? Vamos lá, não se acanhe, poste nos comentários.

43 Responses to “Você realmente deve usar o dobro de RAM como Swap ?”

  1. Eri Ramos Bastos Says:

    total used free shared buffers cached
    Mem: 2008 1944 63 0 49 1145
    -/+ buffers/cache: 749 1258
    Swap: 3153 166 2986

  2. Edgar Says:

    Liguei meu ubuntu a poucos minutos, o consumo da swap está em 0 !

  3. Você realmente deve usar o dobro da RAM como swap? Says:

    [...] por Pascal (pascal·linux?gmail·com) – referência [...]

  4. Lemuel Roberto Says:

    Eu já noto isso há muito tempo.

    Meu consumo de swap agora está 0

  5. Thiago Says:

    Cara, faz tempo que toda vez que instalo um Linux e só ponho 1Gb de Swap. Não importa se tenho só 512Mb de RAM ou se tenho 2Gb, ponho logo 1Gb de Swap e ponto final =P.

  6. andreduartesp Says:

    Tenho 4GB de Ram e 4GB de swap, quase nunca utilizo a swap, mas a mantenho, pois uso muito a função hibernar.

  7. Ribamar FS Says:

    Vejam meu Ubuntu 8.10:

    total used free shared buffers cached
    Mem: 2064740 1582452 482288 0 120344 880728
    -/+ buffers/cache: 581380 1483360
    Swap: 1951888 0 1951888

    Nenhum uso da swap, mas meus 2GB de RAM estão no final.

  8. Eden Says:

    Em 10 anos, meus desktops linux nunca usaram a swap na vida. Antigamente eu tinha pouca ram mas as aplicações eram leves. Hoje em dia, que poderia ser usada a swap, a memoria dos meus computadores aumentaram, impedindo novamente o uso da swap.

    Só vi swap sendo usada mesmo em servidor.

  9. Jamilson Silva Says:

    total used free shared buffers cached
    Mem: 1002 849 153 0 40 406
    -/+ buffers/cache: 402 600
    Swap: 1953 0 1953

    esta em MB

  10. gallois Says:

    nao pode deixar de considerar que os arquivos de swap no kernel 2.6 sao quase tao rapidos quanto uma particao swap, o que faz com que exista pouca utilidade do uso de uma particao de swap para desktops [1][2].

    a particao de swap usada no inicio do disco pode melhorar um pouco o desempenho, o que pode ser desejavel caso voce tenha uma demanda muito grande.

    tenho 1gb de ram e dificilmente uso swap, nem sei pq ainda mantenho a particao. geralmente so chega la quando estou com muito pdf aberto (eu carrego eles inteiramente na memoria) e resolvo jogar urban terror. desenvolvendo, passa pouca coisa dos 500mb (com mongrel rodando, documentacao, editor[uso vim] e tudo o mais).

    enfim, acho que hoje em dia so compensa para notebook (para suspender/hibernar) e servidores com demanda =]

    abracos

  11. André Says:

    Ubuntu desde as 8 da manhã ligado, rodando netbeans + jboss e outras coisas.

    total used free shared buffers cached
    Mem: 2064472 1661088 403384 0 40548 600444
    -/+ buffers/cache: 1020096 1044376
    Swap: 971924 100336 871588

  12. biosystems Says:

    Em vários clientes meus o cenário é este

    P3 500 256RAM 1×9gb 1×18gb ( gstripe = raid0 ) ibm netfinity 3000
    FreeBSD 5.4R + squid 2.7.5 + squidguard = 150 clients
    # uptime
    3:22PM up 332 days, 22:21, 1 user, load averages: 0.06, 0.06, 0.05

    # top
    CPU states: 0.8% user, 0.0% nice, 1.2% system, 0.4% interrupt, 97.7% idle
    Mem: 132M Active, 26M Inact, 67M Wired, 11M Cache, 34M Buf, 6224K Free
    Swap: 256M Total, 20M Used, 236M Free, 7% Inuse

    Dell 2900iii Xeon Q5310 2gb fbdimm 3.2Tb hd backup server
    FreeBSD 7.0Stable + oldap + samba3.0.32 + squid2.7.5 + squidguard

    # top
    CPU states: 0.1% user, 0.0% nice, 0.1% system, 0.0% interrupt, 99.8% idle
    Mem: 229M Active, 1329M Inact, 309M Wired, 77M Cache, 213M Buf, 26M Free
    Swap: 2048M Total, 17M Used, 2031M Free

    # uptime
    15:10 up 55 days, 12:21, 2 users, load averages: 0,00 0,00 0,00

    HP ML110 g5 4gb fbdimm Xeon X3075 1Tb hd file server
    FreeBSD 7.0R p5 oLdap + samba + squid2.7.5 + squidGuard
    # top
    CPU states: 0.0% user, 0.0% nice, 0.0% system, 0.4% interrupt, 99.6% idle
    Mem: 104M Active, 2529M Inact, 207M Wired, 145M Cache, 112M Buf, 18M Free
    Swap: 1024M Total, 8K Used, 1024M Free

    #uptime
    # uptime
    15:21 up 22 days, 3:12, 2 users, load averages: 0,00 0,00 0,00

  13. Rodrigo Says:

    Uso atualmente o Satux , Kernel 2.6.22-1-686
    2 GB RAM
    1 GB SWAP

    O SWAP não é utilizado achei que fosse um problema , mas agora estou vendo que é desnecessário mesmo tanto swap.

  14. André Vitor Matos Says:

    Aqui no meu Desktop, usando Slackware 12.1 + Fluxbox (soh pra ficar mais leve) ta assim:

    total used free shared buffers cached
    Mem: 1029696 819992 209704 0 70832 369492
    -/+ buffers/cache: 379668 650028
    Swap: 522072 0 522072

  15. Jonas Says:

    Memory
    514.3 MiB (15.1%) of 3.3GiB

    Swap
    0 bytes (0.0%) of 9.8 GiB

  16. hamacker Says:

    No caso de notebooks, o tamanho do SWAP nunca pode ser inferior ao tamanho da RAM, e tamanho igual ainda poderá comprometer quando o notebook for hibernar.

  17. Mythus Says:

    Fedora Core 9 com uso regular de estação de trabalho e com alguns servidores (FTP/SSH/DHCP):
    $ uptime ; uname -a; free -m ;
    14:51:05 up 5 days, 4:54, 4 users, load average: 0.17, 0.39, 0.37
    Linux localhost.localdomain 2.6.26.6-79.fc9.i686 #1 SMP Fri Oct 17 14:52:14 EDT 2008 i686 athlon i386 GNU/Linux
    total used free shared buffers cached
    Mem: 1518 1442 76 0 51 636
    -/+ buffers/cache: 754 763
    Swap: 1027 2 1025

  18. Xisberto Says:

    Minha máquina de trabalho (Ubuntu), ligada o dia inteiro, com Firefox, Thunderbird, VLC tocando videostreaming, e abrindo e fechando o BrOffice de vez em quando:

    total used free shared buffers cached
    Mem: 2066216 1917568 148648 0 120832 828780
    -/+ buffers/cache: 967956 1098260
    Swap: 1052216 0 1052216

  19. ney frota Says:

    eu to a um mes sem swap no meu desktop.

    ubuntu 8.04, 2gbram, uso virtualbox com 512mb pra ter win+itunes+ie, rodo sempre firefox com mil tabs, komodo-edit, mysql-admin e client, varios nautilus conectados a servidores, photoshop no wine, gimp e mais umas meia duzias de penduricalhos, tudo junto

    percebi que nunca usava swap, ai resolvi tirar do fstab e do hd pra ver no que ia dar… ta tudo normal, so lembrei agora quando li a materia.

    nao uso hibernar (suspend to hd), so uso sleep (suspend to ram) quando fecho o lid mesmo… mais rapido

    se der galho, volto o swap, o espaco ta la…

  20. Flávio RB Says:

    Desde uma boa experiência que fiz em um servidor LTSP que tinha 8G de RAM e decidi colocar 16G de SWAP mas fiz uso do TMPFS, continuo com a política do 2x se a máquina tem mais de 2G (minimo de 4G de swap) e mantenho o /tmp com TMPFS.

    Atualmente em meu notebook que possui 4GB de RAM segui a regra do 2x e tenho 8GB de swap (um pouco a mais pois arredondei para cima no número de blocos). Na maior parte do tempo o swap está em 0, mas quando crio um CD/DVD usando o GnomeBaker (por exemplo) posso ter uso de swap pois meu TMP cresce muito e logo depois é liberado.

    Resumo pode-se ter um grande beneficio em usar swap grande e TMPFS. Em servidores LTSP, para mim, isso é requisito – muitos usuário gream muito temporário e acesso a temporário com latência de disco é igual a desempenho ruim.

  21. TonhaoSemAcento Says:

    uptime
    16:30:39 up 52 days, 20:52, 1 user, load average: 2.62, 2.56, 2.62

    free
    total used free shared buffers cached
    Mem: 254460 251376 3084 0 3068 90748
    -/+ buffers/cache: 157560 96900
    Swap: 1052216 32364 1019852

    Servidor (fedora 5) para 30 usuários, com samba + squid + dhcp + router e outras coisas mais

  22. Marcelo Minholi Says:

    É preciso atentar para o fato de que o Swap é usado para hibernação de laptops. Quanto menos usar o swap melhor, mas acho que se há necessidade de usar esse recurso o swap deve ser pelo menos do mesmo tamanho da RAM.

  23. zechim Says:

    [zechim@roma ~]$ free
    total used free shared buffers cached
    Mem: 3621748 1540896 2080852 0 137696 712456
    -/+ buffers/cache: 690744 2931004
    Swap: 2048248 0 2048248

  24. Carlos André Ferrari Says:

    O que venho fazendo e tem funcionado muito bem, sem nenhum problema é o seguinte:

    para 1gb de ram, tenha 1~2gb de swap
    para 2gb te ram, tenha 2gb de swap
    para 4gb+ não é necessário swap (O ganho de performance no Windows é enorme nessa situação).

    Essas configurações tanto para Windows quanto para Linux

    No momento a Swap aqui está em 0, Ubuntu 8.10 + Compiz + Firefox + Editor de Texto + Pidgin com 2gb de ram.

    []’s

  25. BrodocK Says:

    A recomendação é parcialmente correta.

    Se você está em um notebook, você precisa pelo menos da mesma quantidade de memória swap que a quantidade de memória ram, ou não conseguirá executar uma hibernação.

    Eu disse pelo menos, já que isso vai variar de acordo com a carga no momento. Exemplo, se você tem 2 Gb mas está realmente usando esses 2Gb e mais um pouco do Swap, da pra prever que não há milagre… não vai conseguir hibernar, já que ele precisaria de 2Gb pra memória mais o que tu tava no Swap…

    Pra PC esse tipo de recomendação não faz tanto sentido já que conheço poucas pessoas que colocariam um PC pra hibernar.

    Ainda assim, existem outras coisas que poderiam ser feitas. A exemplo desativar completamente o swappiness pra garantir que a partição de swap nao vai ser usada como memória extendida pro sistema, reservando apenas pra hibernação, ai poderia ser pau a pau

  26. Miguel Says:

    Como faço pra saber quanto de memoria swap está sendo usado? Eu tenho 2.5gb de RAM, mas colqouei apenas 500mb pra swap…

    Valeu!

  27. edmarcos Says:

    Bem, o que posso dizer deste assunto é o seguinte. Tudo depende… E depende de que ?
    Eu tinha um notebook com 1 gb e 2 gb de swap (dobro). Quando estive recentemente no latinoware aproveitei e comprei mais um pente de 2 gb. Eu achava que meu note tinha 2 pentes de 512 mb, mas para minha surpresa era apenas 1 de 1gb. Entao acabei ficando com 3 gb de memória. Nossa para que tanta memória, realmente é muito para mim. Mas vender não compensa, entao vamos usar.
    Só que com 3gb de memoria e 2 gb de swap meu notebook parou de ibernar porque eu tinha mais memória do que swap.

    Então minha dica é a seguinte: Se ainda tem possibilidade de vc fazer um upgrade na quantidade de memória de seu notebook então já formate seu note pensando nisto. Se não você vai ter problemas com ibernação visto que o linux usa o espaço da swap para isto.

  28. André Simões Says:

    Eu uso RAMx2, como uso sempre o modo suspender, tanto no notebook quanto no desktop, vou continuar usando.

    IMHO: Acho que essa regra só vai mudar quando os computadores passarem a usar memórias não voláteis como os dispositivos móveis, ai o modo suspender deve mudar e guardar o estado da memória na própria memória, neste dia acho que o swap deve se limitar a 1GiB.

  29. Says:

    Usei por mto tempo 512MB de RAM com 256SWAP e com 1GB não notei diferença nenhuma em vários testes…mas foi bem esclarecedor este tópico. Parabéns =)

  30. Rodolfo Yoshiki Says:

    PC 1GB Ram, com ubuntu, navegador e terminal, 0 de Swap

    Servidor antigo, 512 Ram, ubuntu server 6, apache, tomcat, mysql, postgres, firebird, postfix, etc… 3MB de Swap sendo utilizados

  31. Ian Castro Says:

    Não saquei uma coisa, a regra de aplica apenas a servidore?

    Meu notebook tem 2bg de memória RAM e eu uso apenas 512mb como swap e acho que deve ser mais do que o suficiente… na verdade, até hoje não vi meu Ubuntu usar a memória swap.
    O que me deixa meio paranóico pois tenho percebido uma pequena queda de performance da versão 7.10 para cá…

    Anyway, migrei de sistema fazem apenas alguns meses e ainda estou me acostumando.
    Me perdoe se a pergunta foi tola.

  32. Techfree » Swap com o dobro do valor da memoria principal? Says:

    [...] vi um texto que fala sobre algo que me intrigava [...]

  33. Gil Brandao Says:

    No meu eee-pc, com 1GB de RAM, nem tenho swap… nunca tive problemas sem os provocar (tarefas computacionais no âmbito da visão). Já tive o firefox aberto com MUITAS tabs + openoffice+ … sem qualquer problema.

    É claro que abusando… acontece aquilo que é suposto: o processo que consome mais memória, acaba por morrer.

  34. Rodrigo Says:

    Amigos, uso Ubuntu a aproximadamente 3 anos.
    A partir das versões 6.x quando comecei a monitorar e usar mais efetivamente os recursos de desenvolvimento, sempre utilizei em meu note que tem 2Gb a mesma quantidade de swap.
    Confesso que nunca vi meu notebook usando area de swap.
    Mesmo utilizando a máquina rodando, apache, php, mysql, eclipse essas coisas.
    Acho o gerenciamento de memória do linux fantástico, e mais de 2Gb em servidores comuns, e principalmente desktops totalmente desnecessário.

  35. stummjr Says:

    única ressalva é pra quem usa o recurso de hibernar do sistema. por padrão a hibernação grava o estado atual do sistema na partição de swap, logo, se você tiver muita memória principal disponível, a tendência é que use uma quantidade maior de memória do que a swap tem disponível e então quando for gravar o estado na swap, não haverá espaço suficiente. :)

  36. André Gondim Says:

    free
    total used free shared buffers cached
    Mem: 2063192 1944284 118908 0 55460 1206128
    -/+ buffers/cache: 682696 1380496
    Swap: 489972 4952 485020

  37. Vinícius Says:

    Depende do que se faz ma máquina, em casa a minha swap é do tamanho da RAM. Em servidores normalmente eu uso o recomendado pela Red Hat, servidores Oracle o que a Oracle recomenda.

  38. Jeronimo Zucco Says:

    A recomendação oficial da Oracle para os servidores que rodam o seu banco de dados é de que se a memória > 8GB, Swap = 1,5x a quantidade da RAM, que no caso 8GB x 1,5 = 12GB Swap. Se não a Oracle não homologa.

  39. Cainã Costa Says:

    sryche@paladin ~$ free -m
    total used free shared buffers cached
    Mem: 437 431 5 0 13 182
    -/+ buffers/cache: 235 202
    Swap: 0 0 0
    sryche@paladin ~$

  40. Irio Musskopf Says:

    RAM: 1GB
    Swap: 1GB
    Uso Swap atual: 27%
    Programas abertos: Transmission, Firefox (14 abas abertas)

  41. Ark Says:

    bash-3.1$ top -n 1
    top – 20:54:28 up 21:12, 3 users, load average: 0.28, 0.20, 0.25
    Tasks: 112 total, 2 running, 110 sleeping, 0 stopped, 0 zombie
    Cpu(s): 5.2%us, 6.7%sy, 0.0%ni, 86.9%id, 0.9%wa, 0.2%hi, 0.1%si, 0.0%st
    Mem: 1809572k total, 1763996k used, 45576k free, 68900k buffers
    Swap: 506008k total, 2612k used, 503396k free, 1080012k cached

  42. Rodrigo Gregori Says:

    Aqui no meu Ubuntu 8.10 que passou a noite toda baixando torrent (é um notebook)

    total used free shared buffers cached
    Mem: 2006932 1947148 59784 0 29208 1431368
    Swap: 1951888 752 1951136

  43. Swap do Linux « Marlon’s Weblog Says:

    [...] http://tarzxvf.com/voce-realmente-deve-usar-o-dobro-de-ram-como-swap [...]

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word