Como havia antecipado retorno aos assuntos assimilados no WinHEC 2006. O título dessa coluna é o título da palestra que mais gostei deste evento. Apresenta os conceitos sendo desenvolvidos pela Microsoft para aprimorar o desempenho do novo Windows (VISTA) a ser lançado no final de 2006 ou início de 2007. [singlepic id=7305 w=320 h=240 float=] […]
Como havia antecipado retorno aos assuntos assimilados no WinHEC 2006. O título dessa coluna é o título da palestra que mais gostei deste evento. Apresenta os conceitos sendo desenvolvidos pela Microsoft para aprimorar o desempenho do novo Windows (VISTA) a ser lançado no final de 2006 ou início de 2007.
[singlepic id=7305 w=320 h=240 float=]
Algumas das inovações ou tecnologias são geniais. Outras até bizarras. Mas no fim eles provaram que com este cabedal de recursos novos têm conseguido subir um degrau na escala de desempenho. As principais diretrizes aplicadas são:
1) Como utilizar a memória de uma forma mais eficiente, tanto a memória real quanto a memória virtual?
2) Como eliminar ou diminuir a latência de acesso aos discos rígidos?
3) Como impedir que acessos a dispositivos rodando em segundo plano derrubem a performance percebida pelo usuário?
Existem ainda algumas situações que não versam exatamente sobre performance, mas afetam o bom comportamento do sistema operacional. As transições de estado como o retorno de “hibernação” ou troca de usuário (sem logoff) sempre deixam o computador catatônico por diversos segundos.Estes são exemplos nos quais provavelmente as causas sejam todas as citadas acima.
Um dos vilões sempre citados e que permanece é a operação de I/O (leitura e gravação nos discos). Houve muito avanço nessa área. Os discos rígidos tiveram suas taxas de transferência nominais da interface muito ampliadas (ATA 33, ATA 66, ATA 100, SATA), rotação (4200 , 5400, 7200 e 10000 rpm), áreas de buffer (1, 2, 8, 16 Mbytes). O resultado disso tudo é uma taxa de leitura seqüencial de informações muito alta, mais de 80 Mbytes/segundo, capaz de perfazer 1 Gbyte de I/O em menos de 13 segundos. Porém (sempre tem o porém), os tempos de seek (acesso) não evoluíram muito nos últimos anos. As taxas de 10 ms (milissegundos) permanecem como uma média há muito tempo. Isso faz com que acesso aleatórios aos discos tenham uma performance efetiva muito baixa, cerca de 1 Mbyte/segundo, ou seja, capaz de realizar uma operação de I/O de 1 Gbyte em mais de 1024 segundos (cerca de 17 minutos). Estes são dois extremos. Nenhum acesso é “puro aleatório” nem “puro seqüencial” e por isso na média ficam no meio deste caminho. Se a máquina tem “toneladas” de RAM (2 Gbytes por exemplo) estes problemas são muito atenuados pelo cache natural e nativo de qualquer Windows.Mas e se o sistema não tem toda esta memória (ou se o próprio sistema demanda mais memória como é o caso). Explicado isso tudo, este foi um dos principais problemas atacados pelo subsistema de performance do VISTA.
é uma dessa melhorias que consiste em antecipar a necessidade do usuário lendo do disco antes as informações que este algoritmo “deduz” que será necessário ao usuário. É um algoritmo que demanda “aprendizado”, ou seja, ele vai se ajustando com o tempo, na medida em que o usuário vai utilizando o sistema. Como o próprio nome sugere armazenando em memória aquilo que o usuário ainda não solicitou mas o fará em breve. Usa “I/O de baixa prioridade” (mais explicações mais adiante) para não impactar a performance.
ReadyBoost é uma tecnologia “quase bizarra” mas que (acreditem)prova seus benefícios. Na verdade é uma extensão do SuperFetch mas que aproveita cartões de memória (SD por exemplo), PenDrives USB, Compact Flash, que estiverem inseridos no PC para realizar o cacheamento das informações. Segundo as especificações um cartão de memória tem performance 10 vezes maior que um HD tradicional para operações de I/O mistos (aleatório e sequencial). Assim se estes cartões estiverem disponíveis, o VISTA os utiliza como área complementar do SuperFetch. Segundo a MS parte do ganho também se dá graças aos algoritmos avançados de gravação nas mídias removíveis pois estas têm as informações comprimidas a uma taxa de 1.8x a 2.3x. Finalmente se o usuário remover o dispositivo (cartão, pendrive, etc.) o cache é perdido, mas nada além disso acontece. Tinha que ser assim, senão nunca o usuário poderia retirar o cartão?!! Inteligente esse uso do recurso, se tem usa, se não tem não usa, de forma automática. Eu quis por isso a prova. Comprei nessa viagem um cartão SD de 1 Gbytes de baixo custo (US$ 30-Fry’s). Realizei diversos testes e pelo menos no meu caso este este cartão SD, sob Windows XP, teve tempos de acessos piores que o HD de meu notebook (Seagate Momentum 5400 rpm 120 gb).Acho que vou precisar de um SD mais “raçudo” e dos algoritmos de compressão do VISTA para perceber estes benefícios!
ReadyDrive é uma tecnologia baseada em uma evolução de hardware, discos rígidos mais “espertos”. A chegada desses discos foi noticiada há algumas semanas aqui mesmo no ForumPCs em uma nota . Mas segundo a Microsoft será o VISTA que extrairá toda a vantagem. Este tipo de drive tem uma grande quantidade de memória não volátil (FLASH). Assim o cache do disco rígido que hoje em dia tem no máximo 16 Mbytes pode crescer muito. Seria análogo ao cache L2 de uma CPU. O interessante é que mesmo com o disco desligado (ou mesmo com o PC desligado) este conteúdo permanece e pode ser lido posteriormente. Isso pode, por exemplo, acelerar bastante o tempo de inicialização do PC. Outros benefícios são também tempo bem menor para o PC entrar em hibernação, melhoria do “seek-time” e pelo fato de permitir o sistema de economia de energia do Windows desligar a força das partes mecânicas deste drive, diminuição do ruído e aumento da autonomia da bateria que segundo a MS pode resultar em ganhos de 6% a 12% no tempo de uso total desconectado da tomada.
[singlepic id=7303 w=320 h=240 float=]
Low-Priority I/O é um novo recurso há muito requerido, pelo menos por mim. Muitas aplicações rodam em segundo plano no PC e podem afetar o desempenho de forma crítica. Os desenvolvedores podem ativar este recurso em seus programas de forma que se a máquina está inativa as leituras e escritas se dão em velocidade plena. Mas se o usuário começa a usar a máquina a prioridade do I/O é instantaneamente reduzida. Aplicações como antivírus, desfragmentador de dicos, indexador de documentos e conteúdos (como o Copernic e MSN Desktop Search) e os recursos nativos SuperFetch e ReadyBoost podem se valer desse recurso. Eu assisti uma demonstração deste recurso e a diferença entre o recurso ligado e desligado com uma varredura de vírus em funcionamento foi dramática!
[singlepic id=7304 w=320 h=240 float=]
Os objetivos pretendidos com todas estas inovações são sistemas mais “responsivos”, menor pressão ou influência da quantidade de memória (SuperFetch), maior velocidade na leitura das informações dos discos rígidos menor consumo de bateria (ReadyDrive) e aumento da performance mesmo sem adição de memória mas usando dispositivos de armazenamento externos (ReadyBoost). Tudo isso gerenciado por um processo novo no núcleo do sistema operacional (kernel) chamado “Performance Diagnostics and Circular Kernel Context Logger” que monitora e ajusta os parâmetros do subsistema de performance em tempo real.
São ações interessantes, inovadoras e necessárias. Não se deve deixar de citar que o VISTA é um grande consumidor de recursos por conta de tantas outras inovações (a serem exploradas em futura coluna). Se a Microsoft não tivesse se preocupado com todas estas melhorias provavelmente o VISTA seria percebido com grande “peso” nas máquinas dos usuários.