Fragmentação do arquivo de swap: fato ou ficção?

5

Trata-se do Windows, mas tenho certeza de que também se aplica a outros sistemas operacionais.

Já ouvi pessoas dizerem que, se você deseja um melhor desempenho, deve evitar a fragmentação do arquivo de troca. Para fazer isso, você pode especificar manualmente um tamanho constante para o arquivo de troca ou até movê-lo para uma partição / disco dedicado.

Isso realmente proporcionará algum benefício no desempenho? Afinal de contas - o arquivo de troca é acessado de maneira aleatória, o que é um pouco mais aleatório? E se você está considerando um disco separado para o arquivo de swap, então seria melhor investir seu dinheiro em mais RAM. A menos que você tenha um disco livre, é claro.

Então - existe um ponto na luta contra a fragmentação do arquivo de troca ou não?

    
por Vilx- 30.07.2009 / 18:38

8 respostas

3

A fragmentação do arquivo de paginação será apenas um fator significativo em casos extremos. Fragmentação é um fator quando arquivos grandes são lidos em série, mas isso quase nunca acontece com o arquivo de paginação. O acesso ao arquivo de paginação está em pequenos blocos de não mais de 64K, e isso geralmente será misturado com o acesso a outros arquivos. Pouco importa se o arquivo de paginação estiver fragmentado ou não, as cabeças de disco estarão se movimentando em qualquer caso.

Nada disso importa, a menos que o desempenho do arquivo de paginação seja um fator limitante. E geralmente não é. A maior parte da paginação não usa o arquivo de paginação. Por design, o arquivo de paginação é usado para armazenar dados que não são acessados com freqüência. Na maioria dos casos, o arquivo de paginação não é acessado com frequência suficiente para que o desempenho seja importante.

Na maioria dos casos, isso é apenas muito adu sobre nada. As tentativas equivocadas de resolver o problema podem, e geralmente causam, sérios problemas.

    
por 19.08.2009 / 18:30
1

Isso certamente não é um problema nos sistemas Linux, em que a troca é sempre uma partição com um sistema de arquivos especial para arquivos de troca. É obviamente um problema possível no Windows, e eu acho que é um possível problema no Mac OS X também, já que parece usar arquivos para swap.

TBH, eu não tenho nenhuma hipótese para fazer backup do meu ponto de vista, mas eu tenho evidências que sugerem que é melhor ter seu swap não mudando de tamanho porque uma mudança no tamanho do swap parece realmente desacelerar as janelas enquanto está acontecendo. O tamanho de um disco que você deseja para a troca será sempre menor do que o que é atualmente considerado um disco médio, portanto, o disco antigo geralmente será maior que o suficiente para a troca. Assim, é possivelmente um bom uso para um disco antigo quando você atualiza para o disco mais recente de 1TB.

Quando executei máquinas Windows, sempre criei uma partição de permuta ou usei um disco separado e, em seguida, solicitei que o Windows usasse apenas esse disco para troca e configure-o para não alterar o tamanho. Gostaria de configurá-lo para usar 2,5 vezes a quantidade de RAM como o min e o max e deixar por isso mesmo. Não tenho como saber ao certo se realmente ajudou, mas certamente não teve efeitos colaterais negativos.

    
por 30.07.2009 / 18:46
1

Resumindo: Sim

A fragmentação do arquivo de swap é um problema real, é mais provável que ocorra quanto menos espaço livre você tiver em seu disco rígido, também há outros arquivos que podem acontecer com os arquivos db do registro. A Microsoft é muito clara em seus conselhos sobre deixar o windows controlar o tamanho do arquivo de swap, e fazê-lo manualmente é considerado ruim e só deve ser feito em poucos casos. Esse problema tem uma solução fácil de systeminternals chamado pagedefrag é um download gratuito que pode desfragmentar os arquivos bloqueados (incluindo o arquivo de paginação) na reinicialização do sistema. Ele também mostrará o status atual desses arquivos.

Também esteja ciente de que a fragmentação de arquivos é apenas um problema em discos rígidos giratórios, entendo que se um arquivo estiver fragmentado em um SSD, isso não é um problema de desempenho (um defrager em um SSD só fará durar mais tempo). A performance real perdida depende muito do tamanho do seu hardware fragmentado e do seu sistema (procure tempo no disco rígido e com que frequência o sistema precisa acessar o arquivo de paginação), mas considerando como é fácil remover esse problema, ele não deve ser um problema. .

Links: MSDN no arquivo de paginação Mark Falando sobre memória virtual (arquivo de paginação)

    
por 03.08.2009 / 15:55
0

O seu HD precisaria ser muito fragmentado para qualquer perda de perceptível realmente observável aqui, mas a teoria ainda é sólida. O raciocínio é que você coloca seu arquivo de troca em seu disco mais rápido (por razões óbvias) e mantém tudo em um local físico contíguo, de modo que os tempos de busca não entram muito em jogo. Para um servidor ou uma estação de trabalho entusiasta, isso faz todo o sentido; para um típico PC de escritório com uma única configuração de disco / partição única, você não tem a opção "disco mais rápido" e sempre terá tempos de busca à medida que as cabeças se movem entre os arquivos reais e o arquivo de troca, então é mais mito lá.

    
por 30.07.2009 / 19:22
0

Você tem que discriminar entre fragmentação interna e externa:

A fragmentação externa ocorre ao fazer a troca (isso significa colocar um processo inteiro no disco), porque cada processo tem um tamanho diferente. Como nem o Linux nem o Windows realmente trocam mais nada, mas paginam (colocando um quadro de memória de tamanho fixo no disco), não há realmente o problema da fragmentação externa.

A fragmentação interna ocorre ao fazer paginação, porque o tamanho de cada quadro é igual, mas nem toda página está cheia, algumas páginas não são usadas para o seu limite (= fragmentação interna). Esse problema sempre existirá ao usar paginação.

Mas eu acho que você quer dizer a ocorrência de fragmentação interna no sistema de arquivos (os blocos do sistema de arquivos não são totalmente usados) que contém os quadros de página. Isso pode ser evitado escolhendo o tamanho do bloco no sistema de arquivos como igual ao tamanho de um quadro de página.

    
por 30.07.2009 / 19:50
0

Eu sei que ter seu arquivo de swap em um disco físico separado melhora o desempenho em virtude do fato de que, quando você está trocando, provavelmente também está fazendo IO a partir do seu disco de dados e, assim, reduzindo o desempenho de ambas as operações. Então essa é a melhor opção ao redor.

Quanto aos "discos grátis", o que você acha que fazemos com todos os discos rígidos antigos de 8 GB espalhados pelo escritório? ;) Caso contrário, sim, a RAM é barata (para desktops) hoje em dia e é a melhor opção possível.

    
por 30.07.2009 / 20:08
0

Não, não faz sentido combater a fragmentação do arquivo de troca, a menos que não envolva tempo, dinheiro ou esforço.

Eu criei algumas analogias longas, mas decidi poupá-lo - a menos que eu mude de ideia:)

Acredito que a fragmentação do arquivo de troca, embora seja real e acontece, não faz tanta diferença na vida real quanto as empresas de ferramentas de desfragmentação acreditavam.

Eu sempre disse ao windows para criar o arquivo de swap em uma unidade diferente, que foi simplesmente desfragmentada (assim um novo arquivo será criado) e não posso dizer que notei alguma diferença nas operações do dia a dia.

Para o respondente que recomendou que "os usuários terão que" fechar algumas aplicações: Bzzzzzt !! Resposta errada em qualquer contexto.

Se uma máquina tiver RAM "suficiente", ela será executada muito mais rapidamente com "milhões" de janelas abertas do que uma máquina com memória RAM, se o arquivo de permuta estiver fragmentado, monolítico, decafeinado ou branqueado.

Qualquer dinheiro gasto em um desfragmentador que possa manipular arquivos de swap é melhor gasto na RAM. É incrível como o arquivo de swap torna-se irrelevante quando você atualiza uma máquina de 256MB de RAM para 2 GB!

    
por 30.07.2009 / 21:47
-1

A fragmentação do arquivo de troca só tem muita chance de ocorrer se você permitir que o arquivo de troca mude de tamanho. Configurá-lo para um tamanho fixo interromperá a fragmentação ao longo do tempo conforme o arquivo cresce e diminui ...

No entanto, sugiro que os arquivos de swap não sejam mais úteis. É melhor fazê-lo sem a "memória extra" fornecida pelos arquivos de permuta e aceitando que eles precisem fechar alguns aplicativos. Você não terá mais essa pausa de 10 a 30 segundos quando um aplicativo precisar ser carregado a partir da troca e escrever outra memória de aplicativos para trocar ...

    
por 30.07.2009 / 19:02