Como posso limitar ou até desativar o cache de arquivos no Windows Server 2008R2?

9

Há uma máquina com uma matriz RAID muito rápida e uma conexão rápida à Internet. Mas ele só tem 8 GB de mem, o que acaba muito rápido quando o upload aumenta.

Alguma idéia de como eu poderia desativar ou limitar o cache?
(Tentei desativar o cache de gravação no Gerenciador de dispositivos. Mas isso é apenas cache de gravação e não ajudou.)

Apache
fonte
Alguma relação com isso? superuser.com/questions/415140/…
Der Hochstapler
@OliverSalzburg Infelizmente, não está em modo de espera agora. O modo de espera é excelente e deve estar sempre ativado. É uma coisa boa. Mas agora, por alguma razão, este carneiro é usado como "Ativo". (Estou usando o uTorrent para testar as velocidades, e sob uma transferência rápida, ele começa a acontecer.)
Apache

Respostas:

4

O ponto principal do cache é que ele usa ram não utilizado e o desiste assim que um aplicativo solicita mais. Portanto, você não deseja limitar seu tamanho, pois isso deixaria o carneiro livre completamente desperdiçado.

psusi
fonte
9
Diga isso ao meu Windows 7, que trocou todos os programas apenas para inserir um arquivo de vídeo no cache enquanto o codifica - um arquivo que será lido exatamente uma vez - e trava a caixa inteira.
Jan Schejbal
Isso pode depender da opção LargeSystemCache. Por qualquer motivo, eu o configurei (provavelmente desde o momento em que a RAM que eu tinha era mais do que suficiente para tudo o que fiz).
precisa saber é o seguinte
@ JanSchejbal, essa é a configuração que eu não conseguia mais lembrar devido ao fato de ter desistido do Windows há alguns anos. Normalmente, o kernel tenta trocar páginas de processos que estão ociosos por algum tempo, porque essa memória pode ser melhor utilizada para usar arquivos de cache para processos ativos. Essa configuração torna mais agressivo com isso.
Psusi
@JanSchejbal a chave de registro LargeSystemCache não é mais usado como de 2008r2 acordo com blogs.technet.com/b/askperf/archive/2008/02/01/...
BeowulfNode42
3

É necessário chamar a API do sistema SetSystemFileCacheSize ()
documentada aqui: http://msdn.microsoft.com/en-us/library/aa965240.aspx

Alguns programas GUI permitem: http://technet.microsoft.com/en-us/sysinternals/bb897561
Mas você pode preferir o CLI, para executá-lo automaticamente na inicialização do sistema: http://www.uwe-sieber.de/ntcacheset_e .html (procure no meio da página, funciona para 2k8)

Ou apenas escreva um script do PowerShell chamado SetSystemFileCacheSize ()

Observe que é altamente desencorajado desativar o cache para uso em produção.
É frequente limitar o tamanho do cache a um valor pequeno para máquinas virtualizadas, não para desabilitá-lo.

Gregory MOUSSAT
fonte
hmm ... até agora, tudo bem! Vou relatar em breve.
Apache
Isso é estranho. Eu configurei o tamanho de trabalho MÁXIMO para 1 gigabyte, e ele só consegue passar. Vai muito mais alto, não se importa com o valor ou limite. Por quê?
Apache
Você deve ter certeza de monitorar o valor certo. Use o utilitário cacheset para isso.
Gregory MOUSSAT
2

Também tivemos esse problema no Windows Server 2008 R2 em nossa empresa. No nosso caso, a máquina ficou totalmente presa. Parece ser um bug nesta versão do servidor do Windows, porque não ocorreu nas mesmas circunstâncias, na minha máquina Windows 7 muito menor em execução no VirtualBox ou no Linux.

Você pode definir o cache para um determinado limite com uma API, como já foram publicados por outros, mas pode encontrar aplicativos para usá-lo diretamente, como SetSystemFileCacheSize.exe ou NT Cache Setter .

A desvantagem é que você precisa definir o cache após cada reinicialização. Você também pode liberar todo o cache de uma só vez.

Definimos o cache de arquivos em nossa VM com 14 GB de RAM para 4 GB e funciona. A descarga também funciona bem e você pode vê-lo diretamente no Gerenciador de Tarefas.

Amostras de linha de comando:

  • Mostre as configurações atuais do Windows:

    SetSystemFileCacheSize.exe
    
  • Mostre ajuda:

    SetSystemFileCacheSize.exe /?
    
  • Defina o tamanho mínimo para 8 MB e o tamanho máximo para 128 MB:

    SetSystemFileCacheSize.exe 8 128
    
  • Desative o tamanho mínimo e defina o tamanho máximo para 128 MB:

    SetSystemFileCacheSize.exe off 128
    
  • Desativar tamanho mínimo e máximo:

    SetSystemFileCacheSize.exe off off
    
  • Lave o cache do arquivo:

    SetSystemFileCacheSize.exe flush
    

Nota: A ferramenta deve ser iniciada com privilégios de administrador.

Josef Klotzner
fonte
0

Para limitar o cache de arquivos, verifique se a opção Máximo de desempenho de compartilhamento de arquivos não está ativada e você pode especificar a quantidade mínima de cache de arquivos de memória selecionando Minimizar memória usada ou Equilíbrio.

Para verificar a configuração atual, vá para: Iniciar-> Painel de Controle-> Conexões de Rede-> Conexão Local-> Na guia Geral, Propriedades-> Selecionar Arquivo e Impressora-> Propriedades .. se a opção Maximizar estiver selecionada, escolha qualquer outra opção.

user630653
fonte
A opção de propriedades não está disponível para o compartilhamento de impressoras e arquivos. :) Enfim, está desligado, o cache é. No entanto, no Rammap, todos os arquivos estão entrando na lista de arquivos e a memória ativa continua crescendo e crescendo.
Apache