gildot

Topo
Sobre
FAQ
Tópicos
Autores
Preferências
Artigos
Sondagens
Propor artigo


8/3
gildicas
9/30
jobs
10/9
perguntas
10/25
press

 
Estratégias para dimensionar partições de swap
Contribuído por chbm em 03-08-00 22:33
do departamento mkswap
Linux bluenote escreve "Antigamente (ou seja até à 2 ou 3 anos ;) quando quase todos os PC's vinham com 8, 16 ou 32 MB de RAM, era costume dimensionar-se a partição de swap aplicando a regra intuitiva de esta ocupar pelo menos o tamanho da RAM ou o dobro deste. " [A pergunta continua no desenvolvimento :)]
bluenote continua: "
O objectivo final era conseguir capacidade de memória virtual adequada à memória RAM disponível, ou seja, para ter uma capacidade de memória virtual de, por exemplo, 64 MB, PC's com 8 MB de RAM necessitariam de 56 MB de swap, PC's com 16 MB de RAM ficariam com 48 MB de swap e PC's com 32 MB com outros 32 MB em swap.

Acontece que, com a vulgarização dos PC's com 128 e 256 MB de RAM parece estranho continuar a aplicar as mesmas estratégias. Parece algo estranho que um PC com 128 MB de RAM necessite de 128 MB de swap, esperar-se-ia era que o espaço de swap pudesse ser tanto menor quanto maior fosse a memória RAM. No entanto, em vários artigos e livros os autores continuam a falar nas tais regras de o tamanho da memória RAM ou o dobro, o que, para 128 MB de RAM daria 128 ou 256 MB de swap, o que parece um exagero para "workstations" ou PC de casa, além de um desperdício de espaço em disco.

Por isso lanço este tema para debate: quais as estratégias mais acertadas para dimensionar o espaço a atribuir às partições de swap num sistema moderno - quais os critérios, o que levar em conta, que peso atribuir a cada tipo de processos em termos de gasto de memória, etc. "

Bill Gates fala sobre Linux | União Europeia e a Microsoft  >

 

gildot Login
Login:

Password:

Referências
  • Mais acerca Linux
  • Também por chbm
  • Perguntas
  • Como se pode ter o seu próprio host ?
  • Linux preparado para 'enterprise'?
  • Produtividade: linha de comando vs IDE
  • Sistemas operativos: O que são?
  • linux distribuído nas revistas, sim ou não ?
  • Pergunte ao Gildot: qual o melhor codificador de mp3?
  • staroffice
  • Esta discussão foi arquivada. Não se pode acrescentar nenhum comentário.
    486 antigo (Pontos:1)
    por mlopes em 04-08-00 1:42 GMT (#1)
    (Utilizador Info)
    Por acaso tenho estado a pensar em montar um 486 antigo que tenho em casa para fazer de firewall, mas o problema é que só lhe vou poder pôr não sei se 8 ou 12 MB e o disco é de 212 MB, e não sei quanto é que devo ter na partição de swap. Sugestões??? Agradecia....
    Swap = RAM*2 (Pontos:1, Informativo)
    por Anonimo Cobarde em 04-08-00 7:19 GMT (#2)

        Tudo depende do tipo de uso que se faz da maquina -- se fores apenas correr uma shell nem precisas de swap. Se fores correr Oracle precisas de 4xRAM.

    --Nuno.
    Re:Swap = RAM*2 (Pontos:1)
    por pedro em 04-08-00 10:54 GMT (#3)
    (Utilizador Info)
    por acaso noutro dia estive a falar sobre isto com algumas pessoas. e se todas as tuas máquinas standard 1 gb de ram? parece-me que 2gb de swap são ligeiramente exagerados :)
    -- bgp is for those who can't keep it static long enough
    Wrong approach? (Pontos:1, Informativo)
    por Anonimo Cobarde em 04-08-00 12:31 GMT (#4)
    Eu tenho uma outra maneira de ver as coisas. Normalmente o que se ve em todo o lado e' sempre um factor multiplicativo sobre a RAM existente, ao passo que o _meu_ metodo consiste no seguinte:

    Primeiro ver o uso que se vai dar ao computador, quer em termos presentes, quer em termos futuros e pensar sempre no Worst Case Cenario, o mesmo e' dizer o maximo de memoria necessaria num dado momento.

    Depois pensar na Memoria como um todo - RAM + Swap

    E pensar na Swap como o ultimo recurso, do genero se eu tenho 32 Mega e gostava mas nao tenho $$ para mais 32 ou 64, colocar isso como swapsize, se de facto o maximo que vou precisar sao 64 ou 128.

    Para grandes servidores ja com um Giga ou mais pode nem fazer sentido ter swap, uma vez que muitas vezes ficam coisas na swap quando a RAM ja esta liberta.

    Alem disso nao pensem na escolha como problematica porque pode-se sempre fazer swap de um ficheiro em disco devidamente preparado para o efeito (nao e' a mesma coisa mas pode servir para "desenrascar")

    Para os utilizadores caseiros com multi-boot ate se pode utilizar/aproveitar o swap-file do Winblows.

    Acima de tudo, have fun!

    Daniel
    Quanto de Swap (Pontos:1)
    por js em 04-08-00 13:23 GMT (#5)
    (Utilizador Info)

    A resposta óbvia é: Depende do uso que o computador tiver! Todavia nem sempre é possível prever o uso que o computador vai ter, e quase nunca é possível prever quanta memória é que as futuras versões do software que se usa vão gostar de comer. Por isso penso que continua a fazer sentido planear valores típicos de swap pensando em valores típicos de RAM (ou seja, fazer um swap com uma percentagem mais ou menos constante da RAM).

    Dizendo de outra forma: Os programas são feitos para os computadores que há. Quando os computadores vierem com o dobro da RAM, os programas serão feitos a consumir o dobro da memória (isto é uma abordagem estatística de informação mínima, claro que não é assim com todo o software!) e a melhor forma de reagir é fazer os recursos do sistema crescer proporcionalmente (swap incluído).

    Swap = 2 * RAM é passado. (Pontos:2)
    por chbm em 04-08-00 13:40 GMT (#6)
    (Utilizador Info) http://chbm.nu/
    Antigamente (Linux 2.0 ou 1.2) era uma boa medida ter o dobro do swap. Isto é um motivo histórico que tem a ver com a estratégia tipica de alocação de memória e de swapping em UNIX. Entretanto os algoritmos foram reescritos e agora é perfeitamente seguro ter uma maquina com 64M RAM e 12M de swap (lento, mas seguro :)). Antigamente estas configurações podiam levar a situações estranhas de falta de memória.
    Re:Swap = 2 * RAM é passado. (Pontos:3, Engraçado)
    por fog em 04-08-00 14:00 GMT (#7)
    (Utilizador Info) http://www.fog.nu/
    Ou 128M de RAM sem swap á lá Macintosh ;)
    Out of memory (Pontos:1)
    por NeVErMinD em 04-08-00 16:24 GMT (#8)
    (Utilizador Info)
    Boas,

    "esperar-se-ia era que o espaço de swap pudesse ser tanto menor quanto maior fosse a memória RAM"

    Esta afirmaçao estaria correcta se os programas que utilizas hoje, ocupassem tanta memoria como os de ontem, o que nao se verifica. Se presentemente pensas que tens memoria suficiente para correr qualquer tipo de programa, futuramente virás que nao, é por isso que a "regra" de pores de swap no minimo a RAM que tens, continua actualizada.Eu penso na swap como a compensacao do desfazamento tecnologico que irá surgir entre a minha maquina e a evolucao dos programas durante o tempo que nao fizer um update á mesma, e nao para fins imediaticos.Nao ha duvidas que os programas cada vez exigem mais das maquinas, e que evoluem mais rapidamente que o hardware das mesmas, tens o exemplo dos Jogos


    "No entanto, em vários artigos e livros os autores continuam a falar nas tais regras de o tamanho da memória RAM ou o dobro, o que, para 128 MB de RAM daria 128 ou 256 MB de swap"

    Nao sei se é de conhecimento geral (para uns será trivial ;) mas quando queremos de swap mais que 127 MB, teremos que fazer mais que uma particao de swap, visto que "the largest useable swap partition is roughly 127 MB, so making a swap partition larger than that will result in wasted space" -- retirado da documentacao de um Redhat 5.0, mas penso que ainda é isto que subsiste

    cya
    Re:Out of memory (Pontos:2)
    por chbm em 04-08-00 16:52 GMT (#9)
    (Utilizador Info) http://chbm.nu/
    "No entanto, em vários artigos e livros os autores continuam a falar nas tais regras de o tamanho da memória RAM ou o dobro, o que, para 128 MB de RAM daria 128 ou 256 MB de swap" Nao sei se é de conhecimento geral (para uns será trivial ;) mas quando queremos de swap mais que 127 MB, teremos que fazer mais que uma particao de swap, visto que "the largest useable swap partition is roughly 127 MB, so making a swap partition larger than that will result in wasted space" -- retirado da documentacao de um Redhat 5.0, mas penso que ainda é isto que subsiste"

    Isto foi mudado no 2.2. Agora o máximo é 2G. (o redhat5.0 é velhoooo).
    Re:Out of memory (Pontos:2)
    por chbm em 04-08-00 16:54 GMT (#10)
    (Utilizador Info) http://chbm.nu/
    PS: Além de cada zona de swap poder ser de 2G podes ter 8 zonas de swap.
    Re:Out of memory (Pontos:1)
    por NeVErMinD em 04-08-00 20:20 GMT (#12)
    (Utilizador Info)
    Obrigado pela noticia, tambem estava um pouco ceptico por isso afirmei logo que tinha visto num Redhat 5.0, old stuff eu sei, mas muito updated, excepto nos Docs ;)
    dicas (Pontos:2, Interessante)
    por cgd em 04-08-00 17:00 GMT (#11)
    (Utilizador Info) http://cgd.teleweb.pt

    bom, eu fiz um setup ha uns tempos de uma maquina com 1GB e de facto meti os 2GB para swap (bom, 2GB menos uns piquinhos, porque actualmente o linux nao swapa >= 2GB).

    em relacao a dimensao do swap, como ja foi dito, depende muito daquilo para que se usa na maquina, e como se usa.

    em primeiro lugar, convem estabelecer que ter swap é SEMPRE bom, seja pouco ou muito, porque os processos que nao sao usados, ou que estao idle durante muito tempo, vao parar ao swap, o que liberta mais mem para os programas que estao sempre a correr.

    ou seja, a ideia de dimensionar swap, parte sempre por determinar duas coisas:
    1. quantos processos é que vao estar lancados na maquina (e a mem que precisam)
    2. quantos processos é que vao correr activamente (e a mem que precisam)


    se 1 for grande, o swap tem de ser grande.
    se 2 for grande, a mem fisica tem de ser grande.

    alguns casos tipicos:

    1. servidores dedicados (a correr apenas um serviço-- so bases de dados, ou *so* servidores web): nao precisam de muito swap, este pode ser apenas 1/2 ou 2/3 da mem fisica. o problema aqui, é que a maior parte dos sys-adms nao se dao ao trabalho de desligar os processos que nao interessam (innd, amds,...) .

    2. servidores completos ou maquinas de desenvolvimento (servem um ou mais motores de bases de dados, ftp,web,samba servers, login para fazer testes, ...): precisam de muito swap (2*fisica), porque normalmente apenas uma parte dos processos vai estar a correr, e a outra fica sossegadinha em swap (por exemplo, se estiver a desenvolver em mysql, se calhar o motor sybase vai estar swapado).

    3. workstations,maquinas pessoais: depende dos processos que as pessoas la usem. Se for uma workstation apenas para ter X com algumas aplicacoes basicas, fazer algumas compilacoes, scripts... pouco swap é suficiente (1/2 da mem fisica). Se for uma workstation em que se usem memory-pig programs, como o netscape, entao deve-se ter muito swap.

    caso real: no meu portatil tenho 96MB de mem fisica, e no inicio, sendo isto uma workstation do primeiro tipo de cima, pus apenas 16MB de swap (aprx). com o tempo, vi que o netscape sacava muita da mem principal, e alguns xterms a mais, sybase dataengines, etc... nao cabiam todos no swap e vinham-me poluir a mem fisica. entao tive que adicionar + 32 MB de swap via swap-files, que quase nunca sao usados, mas de vez em quando sao precisos para albergar progs que nao estejam a ser usados, para deixar mais mem fisica livre para o netscape (ou outros).

    ainda de encontro ao post inicial, a ideia a reter é que hoje em dia, o swap mudou um pouco de posicionamento: em vez de ser uma zonede onde (e para onde) se fazem transferencias de mem para a extender virtualmente, passou a ser quase como que um armazem de memoria, para deixar la os progs que nao estejam a ser precisos, mas estejam lancados.

    coisas a experimentar:
    cat /proc/meminfo
    cat /proc/swaps
    vmstat
    free
    ps auwx | grep W
    # total em swap, reportado pelo PS
    ps aux | awk '$8~/W/{s+=$5}END{print s}'
    -- carlos

    Re:dicas (e o buffering do FS?) (Pontos:1)
    por ajpalace em 04-08-00 21:08 GMT (#13)
    (Utilizador Info)
    Faltou só mencionar ainda mais um dos benefícios de libertar memória por swapping. Mais importante até do que disponibilizar a RAM para as aplicações (a RAM ou chega para as aplicações ou, então, há que comprar mais), é disponibilizar RAM para buffering dos filesystems. Quando mais RAM livre houver, melhor.

     

     

    [ Topo | Sugerir artigo | Artigos anteriores | Sondagens passadas | FAQ | Editores | Preferências | Contacto ]