2007/12/03

Optimizar o uso de SSD no Windows

Enquanto não organizo as fotos todas para a review do Eee PC, vou deixar aqui algumas considerações relativamente à optimização do uso de discos SSD, especialmente no que respeita ao Windows XP (e possivelmente no Vista - mas como não o uso, não posso garantir.)

Muita gente tem instalado o Windows XP no Eee PC. Ora, ambora isso possa parecer um cenário atraente... tem como principal inconveniente o facto do Windows XP não estar minimamente preparado para o uso de "discos" Flash de estado sólido. A ficheiro de paginação temporária do windows, com as suas constantes escritas, arruinará qualquer disco de estado sólido numa questão de meses.

No Eee PC, com Linux, podem dar-se ao luxo de não usar uma partição de ficheiros "temporários" com apenas 512Mb de Ram - no Windows isso seria impossível.

Por isso, se pretenderem usar algum disco SSD aconselho a que façam upgrade ao dispositivo para que tenha o máximo de RAM possível.
No Windows XP, com 2Gb de RAM já é perfeitamente possível desactivar o sistema de paginação - foi o que fiz no meu PC há varios anos, e só muito raramente me deparo com erros de "falta de memória" (e isto em situações exageradas e facilmente evitáveis.)

Isto evita o constante acesso ao disco, lendo e escrevendo o paging file. No entanto, não chega.
Muitos outros programas usam o disco como "buffer" temporário: particularmente os Browsers. Estes programas que usamos incessantemente são reponsáveis por milhares de escritas que não são adequadas aos SSD.
Até que estes programas aprendam a usar a memória de forma mais eficiente, a solução é um pouco ilógica... mas eficaz: o uso de um RAM-disk.

Basicamente, usa-se uma parte da memória RAM do sistema para simular um disco virtual. Depois basta definir que os vários programas usem esse disco como espaço para cache. Para além do aumento de performance, poupam-se todos os writes que seriam feitos no SSD.

Outra opção passa pela utilização do EWF (Enhanced Write Filter) que foi originalmente concebido para o XP Embedded, mas que pode trazer algumas vantagens interessantes.
Este filtro permite usar o XP a partir de um suporte "read-only", emulando as escritas em RAM. Um pouco o que acontece num "live-CD" como o Ubuntu, que permite arrancar do CD, mas que permite "gravar ficheiros" mesmo sem disco.
Este seria o método ideal, uma vez que seria possível fazer a maioria dos writes para a memória, e apenas as efectuaria para o disco SSD quando fosse absolutamente necessário (eventualmente só quando fosse feito um "shutdown/suspend", ou fosse necessário libertar memória.) No entanto obriga a que se tenha um profundo conhecimento técnico do sistema, e não é vocacionado para ser facilmente usado pelo utilizador comum.

Quando se trata de Linux - embora não seja um especialista - prevejo que todas estas "alterações" sejam bem mais fáceis de implementar (ou que até já existam e seja apenas uma questão de as configurar.)

Para o Windows, mesmo não se podendo mudar o código fonte, é possivel usar estes pequenos truques para maximizar a performance e fiabilidade dos SSD (assim como a de todos os discos rígidos em geral):

  • Instalar o máximo de RAM possível (de preferência 3 ou 4Gb)
  • Desactivar o paging file
  • Usar 128-512Mb para RAM disk (dependendo das vossas necessidades) e redireccionar as caches dos vários programas para o usarem.

5 comentários:

  1. @Carlos
    Mais uma vez e como sempre, ganda Post! (à moda do norte :D)
    Muito bom, muito informativo... Tens jeito para a coisa ;)

    Vou aprendendo umas coisas contigo :)

    ResponderEliminar
  2. Obrigado Toni.

    Por acaso foi o Eee PC e os SSD que me fizeram pensar que era interessante falar sobre isto.

    Porque de resto, é algo que já estou tao habituado a configurar nos meus PCs, que nem me tinha passado pela cabeça menciona-lo.

    ResponderEliminar
  3. É bem, é bem... Nem sabia que essa potencialidade era possível no windows!
    Dedico tanto tempo ao meu hobby satélico que nem tenho tempo para explorar o meu outro hobby que é a informática. Vou lendo e vendo umas cenas para não ser muito estúpido, mas as coisas mais hardcore não domino. Regra geral tenho uma noção, mas fico-me por aí...
    Já agora carlos, tu és programador de quê? Em que linguagem?

    ResponderEliminar
  4. Como costumo dizer: "Sou *programador* e pronto!"

    Já corri quase todas as linguagens que existem. Quando se sabe programar, a linguagem utilizada é apenas uma ferramente. E dependendo da aplicação há ferramentas mais/menos apropriadas e que facilitam ou complicam a coisa.

    Nestes últimos tempos tenho trabalhado principalmente com Assembler (para PICs e H8S) e C# em Windows.
    No entanto estou bastante à vontade com tudo do .net, asp, delphi, C++ (excepto C++ no Windows!), e ASM do Z80 e Motorola 68000.
    E não falando daquelas linguas mortas que nunca mais ouvi falar... :)

    ResponderEliminar
  5. É bem!
    Eu ainda mando uns bitaites em algumas, mas ainda tenho mt para andar...
    Quando tiver um tempito livre vou-me dedicar a aprender java (talvez no verão). Andei a olhar para isso à umas semanas atrás, mas não é nada semelhante a nenhuma das que sei, portanto vai demorar um bocado a aprender e por agora não tenho grande tempo...

    Quando precisar de umas dicas tuas mando-te o bitaite :D

    ResponderEliminar