Aperfeiçoamento operacional na memória cache

A memória cache, ou memória escondida, armazena dados temporários no dispositivo mais rápido e melhora a operação do sistema.

 

Deve ter sido lá pelo meio da década de 1990 que eu comecei a ouvir falar insistentemente em memória “cache” ou memória escondida. O termo vem do francês “cachée” (escondido/escondida). O acúmulo parcial e temporário de memória em um dispositivo provou, ao longo dos anos, que os sistemas operacionais se beneficiam enormemente deste recurso.

A memória cache começou a ser usada durante o lançamento das CPUs 386DX, graças a um chipset usado na época, e quando a CPU Intel 486DX (considerada “revolucionária”) foi lançada, uma pequena quantidade de memória cache foi incluída dentro do processador, melhorando muito o seu desempenho. Hoje em dia, os níveis de cache da CPU são inúmeros, facilitando assim o multiprocessamento de dados.

A criação de memória cache não deixa de ser uma extrapolação da memória “buffer” (“tampão”), exceto que nesta o acúmulo e esvaziamento de conteúdo é imediato! A memória cache fica disponível o tempo que for necessário, e pode ser dinamicamente renovada.

A ideia por trás deste tipo de estratégia é muito inteligente: quando dados são repetidamente acessados pelo sistema (entre CPU e memória, por exemplo) esses dados são temporariamente armazenados no dispositivo mais rápido, e ficam prontamente disponíveis para o próximo acesso.

O Windows historicamente faz memória cache de várias formas! Eu posso apostar, sem querer prejulgar ninguém, que a grande maioria dos usuários de Windows nunca ouviu falar de “memória virtual”, por exemplo. Ela é feita em disco, e o sistema automaticamente escolhe o disco mais rápido e com espaço disponível para fazer ali o tampão de memória cache que o sistema necessita.

O usuário pode modificar a quantidade e o local deste tipo de memória, caso o sistema esteja lento demais. No passado distante, eu vi computadores com pouca memória RAM apresentar este tipo de problema, e a solução era modificar a memória virtual até o sistema rodar mais rápido, dentro do possível.

No Windows 10, isto pode ser verificado nas propriedades do sistema:

 

 

Aqui neste exemplo, o Windows automaticamente escolheu o drive do sistema, que é um M.2 de 500 GB. Note que a memória virtual propriamente dita é muito pequena, mas ela pode ser modificada temporariamente pelo sistema operacional ou então pelo usuário. Atualmente, com valores elevados de memória RAM e de disco, a memória virtual ficou relevada ao segundo plano.

Isto nos remete ao cache de RAM, muitíssimo mais generoso, apenas dependente do tamanho do banco de memória instalado. Neste ponto, um sistema com pelo menos 8 GB de RAM, rodando Windows 10, pode funcionar satisfatoriamente com a grande maioria dos aplicativos. Isto posto, eu creio que 16 GB de RAM de boa qualidade dará um resultado muito melhor, e 32 GB acaba sendo um desperdício financeiro na montagem!

O Windows faz dois tipos de tamponamento de memória cache: um deles é o da forma Ativa (ou “Active”), e o outro de Espera (ou “Standby”). A memória Ativa é indicada no Gerenciador de Tarefas do sistema (na figura, como “Cached”). A memória em espera e a memória livre restante disponível para o sistema é computada e o seu valor incluído como a memória Disponível (ou “Available”), pelo mesmo applet.

A memória Ativa é a memória em uso em um dado momento, enquanto a outra fica disponível para atualizar o cache, se algum dado for perdido. O processo como um todo é tão mais veloz quando o batimento (clock) da memória instalada. Este valor é expresso em Mega Hertz (MHz), quanto maior melhor, independente dos valores de latência.

 

 

Existem aqueles que são advogados de uma melhoria de velocidade no Windows pela desabilitação dos buffers de memória, mas a meu ver a limpeza de memória nunca deve ser desabilitada. Limpezas ocasionais de cache pelo usuário só devem ser feitas em circunstâncias onde não há outra solução para recuperar o sistema.

Normalmente, a memória cache usada no sistema ou entre componentes não só tem influência em todos os processamentos de aplicativos, como também permite a realização de tarefas que, sem o uso de cache, ficaria bastante difícil de serem realizadas.

Existe um mito rondando nas cabeças de usuários exegetas, que se consideram experts neste assunto (eu certamente não sou nada disso, mas aprendi com os erros), que acham que o cache de disco ou da memória RAM do sistema é perigoso e deve ser evitado.

O cache inteligente para drives SSD da Samsung

Por acaso, eu esbarrei em algo deste tipo recentemente, um acerto que eu tinha visto há muito tempo, mas deixei de lado por motivos diversos. Uma vez me voltando novamente ao assunto, eu achei necessário testar esta hipótese de erro provocado por cache em memória RAM.

Um dos drives que estão rodando no meu sistema é um SSD Samsung modelo 850 EVO, com capacidade de 1 TB. A Samsung oferece um programa utilitário chamado de Samsung Magician, o qual examina todos os drives do sistema.

Dependendo do drive SSD os aperfeiçoamentos de performance podem ser executados. No caso, o meu SSD admite um modo operacional chamado de “Rapid Mode” (“Real-Time Accelerated Processing of I/O Data), com as opções Ligado (“On”) e Desligado (Off”). Ele consiste em fazer cache na memória RAM do computador, para a transição de leitura e escrita do drive.

Este modo de operação faz inicialmente uma análise do sistema, antes de ser ligado. Uma vez em operação, ele insere um driver com um filtro na pilha de armazenamento do Windows. Este driver monitora e analisa o uso dinâmico de aplicativos e o tráfego de dados, e finalmente usa algoritmos de inteligência artificial para usar os recursos do sistema (memória e CPU), para acelerar as operações do SSD.

Em drives contendo o sistema operacional este exame de tráfego pode ser bastante demorado, mas na partida seguinte do computador já se nota o aumento significativo no boot a frio do sistema. Com o tempo, os aplicativos mais usados são beneficiados com este tipo de processamento.

 

 

Com o Rapid Mode ativado (“On”) as velocidades de escrita e leitura subiram de maneira significativa. A figura acima mostra o antes (“Off”) e o depois (“On”) da ativação. Dados obtidos com outras ferramentas de verificação de velocidade de drives confirmaram os valores do programa da Samsung.

E se isso não fosse suficiente eu resolvi acessar diretamente o drive e provar para mim mesmo que as velocidades de acesso haviam de fato subido muito. Portanto, o uso do Rapid Mode compensou o seu acionamento. Se não desse certo, bastava desligar o recurso.

As regras de uso do Rapid Mode são governadas pelo driver instalado no sistema. E ele segue todas as regras do ambiente operacional, o que me permite afirmar que a chance de “perda de dados” como argumentada pelos críticos é pouco provável de causar qualquer problema na instabilidade do processamento de dados.

Lições do passado tiradas do uso de sistemas operacionais

Na minha concepção, como usuário diário do Windows 10, tirar recursos do sistema operacional é uma grande tolice. O impacto só é significativo se o sistema como um todo for lento, seja por conta da CPU, do banco de memória, do chipset e/ou do Bios da placa mãe.

Manda o bom senso manter o hardware e o Windows sempre atualizados, principalmente este último, porque a atualização de Bios nem sempre é radicalmente necessária.

Outro aspecto nem sempre levado em consideração pelo usuário de um desktop é a alimentação elétrica sem interrupção, com a ajuda de uma UPS (“No-break”). Este equipamento evita potenciais riscos de perda de dados no sistema, sem falar na perda do trabalho em andamento propriamente dito.

Problemas em informática nunca irão deixar de existir, o meu irmão anos atrás falava em “mistérios da informática” toda vez que a gente enfrentava algo que a gente não entendia como tinha aparecido e como havia sido resolvido.

Na minha visão, o Windows 10 foi, na prática, um grande avanço, em todos os sentidos e faz justiça ao investimento em máquinas de melhor qualidade. Em tempos remotos, problemas até pequenos nos compelia a zerar a máquina e reinstalar tudo outra vez. Agora, não me lembro mais da última vez que eu fiz isso! Outrolado_

. . .

Leia também

 

As falhas notórias das super caras placas-mãe de hoje

Ryzen: CPUs a caminho da computação de alta performance otimizada

 

Os tubos de calor nos nossos computadores e sistemas

Vida e glória dos processadores de texto

Paulo Roberto Elias é professor e pesquisador em ciências da saúde, Mestre em Ciência (M.Sc.) pelo Departamento de Bioquímica, do Instituto de Química da UFRJ, e Ph.D. em Bioquímica, pela Cardiff University, no Reino Unido.

4 comentários sobre “Aperfeiçoamento operacional na memória cache

  1. Olá Paulo tema muito relevante nos dias atuais, não só se tratando de computação de PC’s, como também de dispositivos móveis, que alias a Microsoft (leia-se Windows), deveria seguir o exemplo da Google, que no últimos anos tem lançado versões (variantes) mais enxutas de seu S.O. Android, desenvolvido para dispositivos que ocupam pouca memória Ram, como Android Go e Android One. Fato este que remete ao seguinte raciocínio, se nada for feito pela Microsoft, em breve os PC’s terão que possuir no mínimo 4 Gb ou mais para rodar o Windows 10, que nas últimas atualizações virou um vilão de recursos tantos nos desktop’s e notebook’s.

    • Oi, Rogerio, eu reconheço essa sua crítica ao observar o tamanho do Windows, mas as coisas vão caminhando, a próxima atualização do Windows, ainda este mês, está focando na melhoria do funcionamento das CPUs Ryzen, em parceria com a AMD. Não sei ainda em que nível isso vai se dar, mas espero ser uma melhoria de qualidade, porque as Ryzen foram desenhadas para interagir com os sistemas operacionais de forma a render o máximo possível no que tange à performance e estabilidade do sistema. A AMD divulgou que está fazendo o mesmo esforço junto com desenvolvedores de Linux e até de Android. Vamos ver.

      Pessoalmente, eu acho 4 GB muito pouco. Existe memória de tudo quanto é preço, se alguém quiser montar uma máquina pelo menos razoável não deve se esquivar na escoolha de componentes, sob pena de ver o sistema claudicante nos momentos em que ele precisa do hardware.

      • Só para me expressar melhor Paulo, eu citei essa quantidade de 4Gb. que é a mínima que o Windows 10 exige, para ser instalado na máquina. Só a nível de comparação o Linux (tanto do desktop quando em dispositivos móveis com Android) esse sistema sabe administrar inteligentemente a memória. Pois só carrega na memória os recursos que vão usar, ao contrário do Windows que carrega o S.O. do Hard Disk para a memória Ram, além de alguns aplicativos que vai usar ou não (que podem ser conferidos no “gerenciador de tarefas”). Ou seja, nesse particular essas duas plataformas diferem e muito no uso e no gerenciamento de memória. Mas isso eu creio que não há o que fazer para corrigir isso (no caso do Windows), pois os dois S.O. partem de plataformas distintas, com claro ganho de performance, para sistemas baseados em Linux (tanto em desktop’s ou celular).

        • Oi, Rogério,

          Eu entendi. A propósito de Linux eu fui usuário do Ubuntu, enquanto aguardava peças para montar um micro, e eu notei de cara que o Linux é muito leve e me impressionava a velocidade do Firefox (vinha com o sistema), duzentas vezes mais rápido que a versão Windows. Eu fiquei meses tentando entender por quê. Em contrapartida, acho essa coisa de comandos dentro do ambiente uma tremenda regressão. O pessoal que gosta de Linux parece que adora isso, mas eu que já larguei programação e DOS séculos atrás, não achei nada engraçado.

          O Paulo Rebelo, jornalista que inicialmente me convidou para fazer parte do Webinsider, fazia muitas críticas ao peso que o Windows trazia para a máquina, e com razão. O Windows Vista, por exemplo, neste particular, foi um verdadeiro desastre.

          Na minha avaliação como usuário o Windows 10 deu vários passos à frente, e hoje em dia, eu sinceramente não abriria mão de rodar o meu trabalho com ele, mas reconheço que algumas queixas são justas.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *