Logo Hardware.com.br
Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas

Swap file, algo que já deveria ser amplamente usado

#1 Por Marcos FRM 01/10/2010 - 20:02
Estava eu refletindo sobre a real utilidade das partições swap hoje em dia, com tudo que é PCzinho de supermercado com 2GB ou mais de RAM.

Todos sabem que swap bom é swap não feito. Em PCs com bastante memória, depois de um uptime longo, mesmo com bastante memória livre, vemos parte da partição swap usada, mas geralmente pouca coisa. O kernel coloca alguma coisinha lá, mas não acredito que tenha impacto relevante (para melhor) no desempenho o fato de estar lá, afinal é um HD...

Nos casos onde a swap é requerida para valer, quando a memória RAM esgota-se, o desempenho vai para o vinagre e o usuário não tem outra coisa a fazer a não ser comprar mais RAM ou diminuir o uso dela.

Então, gente, swap é em boa parte inútil nos desktops. E o que acho pior é ter que existir uma partição para isso. Que possui problemas: não é facilmente redimensionável e adiciona complexidade desnecessária aos instaladores. Você tinha 2GB, ficou com 512MB, precisa de mais swap? Redimensione partições. É péssimo, não acham? Particionamento é algo que tem que se mexer o mínimo possível. Particionou uma vez, não mexe mais.

Aí que entram os arquivos de swap, que são muito mais flexíveis, pois você pode aumentar, diminuir a vontade. Perda de desempenho por estar sobre de uma sistema de arquivos com journaling? Deve existir. Mas quem se importa? Swap é usado para quase nada mesmo. Ele fica lá como um reserva, esquentando banco. Entra em cena só quando o kernel não tiver mais o que fazer, quando a memória acabar de fato.

O melhor é que os componentes do Linux hoje suportam o uso de arquivos de swap: kernel, util-linux-ng (mkswap, swapon, swapoff, mount).

É possível trocar a partição de swap por um arquivo de swap manualmente: [all variants] HOWTO: Use swapfile instead of partition and hibernate - Ubuntu Forums

Achei esse Blueprint do Ubuntu (ainda do Karmic), propondo a mudança, de autoria de Scott James Remnant, empregado da Canonical, desenvolvedor do Upstart:
Use Swap Files Instead of Swap Partitions


Em resumo, está tudo disponível. É só colocar a funcionar. Porém está bloqueado por esse bug, atribuído ao kernel: Bug #386554 in linux (Ubuntu): “System behaved as if OOM when it had plenty to spare”. Aparentemente o kernel não é tão esperto assim e começa, quando sem swap, a dar piti cedo demais. Suponho que o bug esteja bloqueando a implementação porque com o uso do arquivo de swap seria possível desativa-lo, ficando o sistema sem swap nenhum (o que é o recomendando para os netbooks com SSDs de quinta categoria). Daí nesse caso o sistema tornaria-se um 486 muito antes de acabar a memória. Outro bug talvez relacionado: Bug #131094 in linux (Ubuntu): “Heavy Disk I/O harms desktop responsiveness”

super.gif
Responder
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#2 Por TerraSkilll
01/10/2010 - 21:50
Marcos FRM
A parte técnica da coisa eu fico devendo comentar, mas concordo quanto ao uso do Swap file. Nunca entendi como criar uma partição inteira (que, como você mesmo disse, é interessante não ficar mexendo) só pra isso possa ser uma vantagem.

Lembro-me de quando fiz um trabalho sobre gerência de memória de Windows e Linux, e estudei mais a fundo essa situação. O ganho de desempenho pode ser interessante, mas somente nos raros casos em que o swap vá mesmo ser usado, o que pouco acontece nos desktops atuais, dotados de 2GB de ram em média. Claro, ter mais opções é bom, mas acho que o foco no uso de arquivos de swap seja mais interessante que o uso de partições para isso

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
angeloshimabuko
angeloshimab... Veterano Registrado
933 Mensagens 67 Curtidas
#4 Por angeloshimab...
03/10/2010 - 01:40
Marcos FRM disse:
Estava eu refletindo sobre a real utilidade das partições swap hoje em dia, com tudo que é PCzinho de supermercado com 2GB ou mais de RAM.

Todos sabem que swap bom é swap não feito. Em PCs com bastante memória, depois de um uptime longo, mesmo com bastante memória livre, vemos parte da partição swap usada, mas geralmente pouca coisa. O kernel coloca alguma coisinha lá, mas não acredito que tenha impacto relevante (para melhor) no desempenho o fato de estar lá, afinal é um HD...

Nos casos onde a swap é requerida para valer, quando a memória RAM esgota-se, o desempenho vai para o vinagre e o usuário não tem outra coisa a fazer a não ser comprar mais RAM ou diminuir o uso dela.

Então, gente, swap é em boa parte inútil nos desktops...


Veja o que o Mel Gorman (2004, p. 179) disse:

The casual reader may think that, with a sufficient amount of memory, swap is unnecessary, but this brings me to the second reason. A significant number of the pages referenced by a process early in its life may only be used for initialization and then never used again. It is better to swap out those pages and create more disk buffers than leave them resident and unused.
Marcos FRM disse:
... E o que acho pior é ter que existir uma partição para isso. Que possui problemas: não é facilmente redimensionável e adiciona complexidade desnecessária aos instaladores. Você tinha 2GB, ficou com 512MB, precisa de mais swap? Redimensione partições. É péssimo, não acham? Particionamento é algo que tem que se mexer o mínimo possível. Particionou uma vez, não mexe mais.

Aí que entram os arquivos de swap, que são muito mais flexíveis, pois você pode aumentar, diminuir a vontade. Perda de desempenho por estar sobre de uma sistema de arquivos com journaling? Deve existir. Mas quem se importa? Swap é usado para quase nada mesmo. Ele fica lá como um reserva, esquentando banco. Entra em cena só quando o kernel não tiver mais o que fazer, quando a memória acabar de fato.

O melhor é que os componentes do Linux hoje suportam o uso de arquivos de swap: kernel, util-linux-ng (mkswap, swapon, swapoff, mount).

É possível trocar a partição de swap por um arquivo de swap manualmente ...


Acho que há uma confusão aqui. O subsistema de paginação (swapping) é bastante flexível. Não é uma questão de partição ou arquivo. Pode-se usar os dois. O Linux permite até 32 espaços de paginação (ou troca -- swap spaces) -- pode-se até aumentar esse valor, recompilando-se o kernel. Então pode-se deixar configurada uma partição e, quando necessário, adicionar-se um arquivo ou outra partição, ou outro dispositivo qualquer -- p.ex., um compartilhamento de rede NFS; já usei a memória excedente de uma placa de vídeo.

A substituição de uma partição por um arquivo não é recomendado. V., p.ex., Werner Puschitz (2007). Um arquivo tem pelo menos duas desvantagens relevantes: (i) sobrecarga do sistema de arquivos -- para que o arquivo seja acessado, deve-se resolver o caminho, acessar os metadados e localizar os blocos de dados; (ii) fragmentação.

REFERÊNCIAS:

GORMAN, Mel. "Understanding the Linux virtual memory manager". Prentice Hall. 2004. Disponível em . Acesso em 02 out. 2010.

PUSCHITZ, Werner. "Tuning and optimizing Red Hat Enterprise Linux for Oracle 9i and 10g databases". 2007. Disponível em . Acesso em 02 out. 2010.
jo.cyber
jo.cyber Novo Membro Registrado
32 Mensagens 1 Curtida
#5 Por jo.cyber
03/10/2010 - 02:20
Marcos FRM disse:
Estava eu refletindo sobre a real utilidade das partições swap hoje em dia, com tudo que é PCzinho de supermercado com 2GB ou mais de RAM.


Gostei da discussão e gostaria de deixar o meu ponto de vista sobre o assunto que você levantou.
Bom, como já mencionaram de uma forma sucinta:
angeloshimabuko disse:
O subsistema de paginação (swapping)...


O swap é um mecanismo utilizado pela memória virtual(técnica de uso de memória), a qual só deveria ser utilizada quando se esgotasse os recursos da memória principal...
Tirando quando o S.O. utilizado é o Windows, não vejo problema no swap. Afinal, ele é um mecanismo de "emergência". Imagine o seguinte: Um usuário iniciante liga o PC(ou qualquer outra arquitetura) e sai abrindo tudo que tem e não tem direito. E logo em seguida ele vai jogar um jogo super pesado - sem fechar os programas e aplicativos anteriores. Se ele tiver uma memória de 1GB ou até mesmo 2 GB e não existisse o swap(subtenda-se Memória Virtual também) o que aconteceria?(Nem preciso dizer que apareceria um erro de falta de memória...)
Portanto não vejo problema em ainda existir esse mecanismo. Mesmo que o desempenho caia drasticamente, pelo menos não interrompe a execução do programa.
"A vida é como uma caixinha de surpresas..."

Bacharelando em Ciência da Computação - UFF (3° Período)

Ubuntu 12.04 32-bit (mais estável que o 64-bit) piscadela.png
Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas
#6 Por Marcos FRM
03/10/2010 - 10:04
angeloshimabuko disse:
Veja o que o Mel Gorman (2004, p. 179) disse:

Obrigado por aparecer, angeloshimabuko. piscadela.png

Bom, era o que suspeitava. Mesmo com bastante memória, a swap contina tendo (certa) utilidade num desktop.

angeloshimabuko disse:
Acho que há uma confusão aqui. O subsistema de paginação (swapping) é bastante flexível. Não é uma questão de partição ou arquivo. Pode-se usar os dois. O Linux permite até 32 espaços de paginação (ou troca -- swap spaces) -- pode-se até aumentar esse valor, recompilando-se o kernel. Então pode-se deixar configurada uma partição e, quando necessário, adicionar-se um arquivo ou outra partição, ou outro dispositivo qualquer -- p.ex., um compartilhamento de rede NFS; já usei a memória excedente de uma placa de vídeo.

A substituição de uma partição por um arquivo não é recomendado. V., p.ex., Werner Puschitz (2007). Um arquivo tem pelo menos duas desvantagens relevantes: (i) sobrecarga do sistema de arquivos -- para que o arquivo seja acessado, deve-se resolver o caminho, acessar os metadados e localizar os blocos de dados; (ii) fragmentação.

REFERÊNCIAS:

GORMAN, Mel. "Understanding the Linux virtual memory manager". Prentice Hall. 2004. Disponível em . Acesso em 02 out. 2010.

PUSCHITZ, Werner. "Tuning and optimizing Red Hat Enterprise Linux for Oracle 9i and 10g databases". 2007. Disponível em . Acesso em 02 out. 2010.

Sim, pode-se usar os dois, partição swap e arquivo de swap, ao mesmo tempo.

No uso típico de um desktop, o impacto de ter swap num arquivo ao invés de uma partição é significativo? Afeta com fragmentação o arquivo de swap ou o sistema de arquivos como um todo?

A simplicidade que falo é poder instalar um Linux com apenas uma partição /, sem preocupar-se com partição swap.
...
JAPICHIN
JAPICHIN Cyber Highlander Registrado
18.3K Mensagens 5.2K Curtidas
#7 Por JAPICHIN
03/10/2010 - 10:45
Marcos FRM disse:

No uso típico de um desktop, o impacto de ter swap num arquivo ao invés de uma partição é significativo? Afeta com fragmentação o arquivo de swap ou o sistema de arquivos como um todo?

...eu vou falar a impressão que tenho, uma vez criada a swap como partição o sistema deve acabar acessando com maior facilidade uma vez que ele vai estar na raiz do disco. De outra forma como uma swap num arquivo, poderá custar um certo tempo maior, uma vez que o sistema deverá achar todos os caminhos onde esse arquivo esteja.
...imagino que a fragmentação deva ser pouco ou pelo menos não são sempre os mesmos fragmentos, por estar sendo escrito (repetidos) outros fragmentos.
...a partição swap ou até o arquivo tal, no aspecto segurança pode trazer certos subsídios para averiguação de dados que eventualmente foram excluídos. E nesse aspecto é que acho as vezes perigoso ou proveitoso a existência dele.

Marcos FRM disse:

A simplicidade que falo é poder instalar um Linux com apenas uma partição /, sem preocupar-se com partição swap.

ah, sim é mais simples

abs
Propague boas ações e cultive o senso crítico e de justiça
os 4 males: Álcool, Tabaco, Obesidade, Sedentarismo
boa.gif Feliz Ano Novo Chinês 2019 Ano do Porco!!!
comemorando.gif

巴西 日本国 中國 廣州 Ni Hao 北少林
Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas
#8 Por Marcos FRM
04/10/2010 - 08:33
japichin disse:
...eu vou falar a impressão que tenho, uma vez criada a swap como partição o sistema deve acabar acessando com maior facilidade uma vez que ele vai estar na raiz do disco. De outra forma como uma swap num arquivo, poderá custar um certo tempo maior, uma vez que o sistema deverá achar todos os caminhos onde esse arquivo esteja.

A pergunta é: que diferença faz esse "certo tempo maior" num dektop com 1GB, 2GB, ou mais de RAM?

Não estou pregando o fim do uso de swap. Apenas acho que a exigência de uma partição de swap é muita coisa para desktops.

Se num servidor rodando um banco Oracle com uma base de dados de 1TB uma partição swap é muito melhor, ok. Porém aqui é aquela velha discussão levantada por Con Kolivas, o que é bom para servidores nem sempre é bom para desktops.

japichin disse:
...a partição swap ou até o arquivo tal, no aspecto segurança pode trazer certos subsídios para averiguação de dados que eventualmente foram excluídos. E nesse aspecto é que acho as vezes perigoso ou proveitoso a existência dele.

Quanto a isso, o uso de arquivo de swap ao invés de partição não deve mudar nada.
...
ivoaudio
ivoaudio Cyber Highlander Registrado
7K Mensagens 2.2K Curtidas
#9 Por ivoaudio
04/10/2010 - 11:59
Marcos FRM disse:
A simplicidade que falo é poder instalar um Linux com apenas uma partição /, sem preocupar-se com partição swap.


japichin disse:
ah, sim é mais simples


O que digo agora foge do assunto, mas mesmo assim...

Essa simplicidade é o que amaldiçoa os usuários de Windows: a perda dos dados pessoais quando o sistema operacional entra em colapso e necessita ser reinstalado, com formatação do disco. Suspeito que pouca gente possua backups atualizados dos dados.

Ainda prefiro ter várias partições.
Jazz rocks!
---
Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas
#10 Por Marcos FRM
04/10/2010 - 12:19
ivoaudio disse:
O que digo agora foge do assunto, mas mesmo assim...

Essa simplicidade é o que amaldiçoa os usuários de Windows: a perda dos dados pessoais quando o sistema operacional entra em colapso e necessita ser reinstalado, com formatação do disco. Suspeito que pouca gente possua backups atualizados dos dados.

Ainda prefiro ter várias partições.

Peguemos a instalação padrão do Ubuntu hoje: uma partição / em EXT4 e uma partição swap.

Caso o Blueprint citado seja implementado: uma partição / em EXT4.

Não mudaria nada nesse sentido. Quem quer separar o /home, continuaria tendo que fazer manualmente. E, mesmo que passe a ser disponibilizada uma opção de instalação automática com /home separado, como existe no alternate install, o fato de não ser usada uma partição swap também não alteraria nada no processo de instalação. Apenas teríamos uma partição a menos em todos os casos -- o que, na opinião deste que vos fala, é uma vantagem.
...
Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas
#11 Por Marcos FRM
21/11/2010 - 20:50
Desenterrando um pouquinho o tópico...

Desde os primórdios, sempre que instalo algum Linux sempre crio a partição swap. Mesmo com aquela impressão que não servirá para nada -- afinal é o que mandam as Escrituras desde 25 de agosto de 1991. Há alguns dias eu fiz uma dança das cadeiras aqui e o meu desktop passou a rodar o Ubuntu 10.10. E desta vez resolvi tentar: instalei sem partição swap nenhuma. O instalador deu um aviso que a falta de partição swap pode causar dores na coluna e blablabla, mas foi tudo que é uma maravilha.

Com 4GB de RAM, sabe de uma coisa? O kernel que se vire. Eu é que não vou manter uma partição a mais para nada. Se em algum uso extremo o kernel pedir água, apelo para um arquivo de swap temporário, dd/mkswap/swapon... :nao_sei_de_nada: cap_feceiro.png:
...
m45t3r
m45t3r Veterano Registrado
986 Mensagens 57 Curtidas
#12 Por m45t3r
21/11/2010 - 21:08
O Arch deixa tudo na mão do usuário. Quer criar uma partição de swap, não quer criar? Você que escolhe, o usuário que deve saber o que é melhor para ele e não o sistema.

Tinha uma partição swap de cerca de 1GB por causa que era uma partição que ficou por erro do particionador de discos, que calculou o tamanho errado (não, não era o Gparted). Depois que resolvi arrumar minhas partições, aumentei o tamanho para 2GB.

Considerando os preços do HDD hoje em dia, 2GB realmente não faz diferença nenhuma. Hoje tenho 4GB de RAM, então quase nunca vou precisar desse swap. Se por algum motivo precisar diminuir, esse tamanho é ótimo para o funcionamento do sistema.

Poderia remover ele e ganhar 2GB, mas no final não faz muita diferença.
Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas
#13 Por Marcos FRM
21/11/2010 - 21:16
m45t3r disse:
O Arch deixa tudo na mão do usuário. Quer criar uma partição de swap, não quer criar? Você que escolhe, o usuário que deve saber o que é melhor para ele e não o sistema.

Mas as distribuições fáceis precisam decidir pelo usuário.

Fiz um teste com o particionamento automático do Ubuntu, aquela opção "Apagar o disco inteiro". Ele criaria uma partição de swap de 5,1 ou 6,1 GB (agora não lembro, memória fraca é dose) no meu HD de 160GB... :nao_sei_de_nada: Andei fazendo uma faxina no /home, mas daqui a pouco estará abarrotado novamente. Qualquer giginha a mais é lucro. super.gif
...
MaxRaven
MaxRaven General de Pijama Registrado
4.2K Mensagens 111 Curtidas
#14 Por MaxRaven
21/11/2010 - 21:17
Mandriva tbm deixa vc escolher, embora indique o uso. Eu crio swap, pois, como disse o Marcos, está nas escrituras sagradas, enfim, habito mesmo, acabo criando sem nem me dar conta. Isso pq faço o particionamento em separado, com um live cd de ferramentas (outro habito) e mesmo com 4gb de memoria já usei swap no meu desktop, estava convertendo uns vídeos e reparei que por algum tempo ela foi usada, depois disso nunca mais vi em uso. Mas deixa lá, vai que uma hora precisa.
m45t3r
m45t3r Veterano Registrado
986 Mensagens 57 Curtidas
#15 Por m45t3r
21/11/2010 - 21:31
Marcos FRM disse:
Mas as distribuições fáceis precisam decidir pelo usuário.

Não necessariamente, talvez recomendar o uso do Swap e não obrigar. Mas a última palavra sempre tem que ser do usuário.

MaxRaven disse:
Mandriva tbm deixa vc escolher, embora indique o uso. Eu crio swap, pois, como disse o Marcos, está nas escrituras sagradas, enfim, habito mesmo, acabo criando sem nem me dar conta. Isso pq faço o particionamento em separado, com um live cd de ferramentas (outro habito) e mesmo com 4gb de memoria já usei swap no meu desktop, estava convertendo uns vídeos e reparei que por algum tempo ela foi usada, depois disso nunca mais vi em uso. Mas deixa lá, vai que uma hora precisa.

O Chromium aqui tem sérios leaks de memória (não tenho ideia porque, falaram que é um bug na biblioteca libjpeg do Arch x64 mas por algum motivo isso só acontece no Chromium) e já vi ele ocupar mais de 4GB, invadindo o swap junto.

Fora isso, máquinas virtuais geralmente acabam com a tua memória RAM fácil. Tava até pesando em colocar mais 4GB de RAM para poder usar máquina virtual do jeito que quiser, mas desisti.
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal