
Deixe-me dar sua opinião sobre os problemas de desempenho do servidor de terminal. O servidor hospeda em média 25 usuários que, após executarem alguns números, utilizam em média 600 MB de memória com seus principais aplicativos em execução (navegador, adobe reader, cliente de telefone IP). Todos os usuários estão na mesma LAN que o servidor. Constantemente experimentamos respostas lentas e bloqueios de sessão curtos. O uso combinado da CPU é em média de 10%. O que me parece estranho é que o sistema mostra 29 GB de memória física com 25 GB livres. O uso do arquivo de paginação é de cerca de 50%, com média de 9 GB usados.
Algumas especificações do servidor
SO: Server 2003 32bit Enterprise com sinalizador /PAE RAM: 32GB CPU: 2xQuad Core @ 2,27Ghz HD: RAID5 1,2GB
Depois de solucionar problemas básicos usando o monitor de desempenho, isso me leva a acreditar que os problemas de desempenho são causados pela limitação do sistema operacional de 32 bits no endereçamento de 32 GB completos de memória física, mesmo que o sinalizador /PAE seja usado.
Alguém pode sugerir algo, etapas de solução de problemas que possam levar a uma resposta mais conclusiva?
Obrigado
Responder1
Há um certo aborrecimento pouco documentado com o PAE no Windows. Apesar de o sistema operacional agora ser capaz de alocar toda a RAM do sistema, alguns aplicativos ainda não a utilizam.
Com o PAE habilitado, cada processo ainda está limitado aos limites de um ambiente de 32 bits (4GB)... a menos que seja construído especificamente para uso AWE
(Extensões de Janelas de Endereço).
Apesar de toda essa "informação"... não acho que esse seja o problema que você está enfrentando. (você tem processos que excedem 4 GB de RAM?) 9 GB de paginação para mim é muito excessivo. Duplamente quando você leva em conta que este é um servidor de terminal. Tanto disco-IO é ruim para o desempenho. Como mfinni disse, é mais provável que você esteja tendo problemas com o IO do disco do que com problemas de memória. Eu vi exatamente os mesmos sintomas que você descreve, apenas para descobrir que, de fato, minhas unidades de disco não conseguiam acompanhar a carga de trabalho. Há uma longa lista de motivos para o excesso de E/S de disco e tantas soluções para o problema.
No meu caso, descobri que o serviço de spooler de impressão estava alocando enormes quantidades de RAM (que era principalmente despejada no arquivo de paginação). Acontece que há um problema antigo no spooler de impressão sempre que impressoras são criadas/excluídas.
(quando as impressoras são criadas, a memória é alocada para o driver. Quando elas são excluídas, a memória não é desalocada. O resultado em um servidor de terminal com usuários efetuando login e logout o dia todo é um serviço de spooler de impressão com mais de 2 GB de RAM alocada... e a maior parte lançada no arquivo de paginação) Sempre que possível, não use RDP para compartilhar as impressoras.
Existem muitos outros truques ocultos quando se trata de serviços de terminal e memória.
Responder2
Memória insuficiente para sessões de usuário pode estar causando isso. Explique o que você fez no Perfmon que o leva a essa conclusão, por favor?
editar - OK, eu não me preocuparia tanto com o arquivo de paginação. É diferente de como o VM funciona em sistemas Unix antigos; O Windows paginará as coisas de forma mais agressiva para manter mais memória física livre.Como zerar a métrica de uso do arquivo de paginação?Se você está realmente preocupado com a paginação, observe a taxa de leitura de IO da página. Essa é a taxa de falha difícil.
Um problema comumente esquecido com servidores de terminal interativos é o IO de disco - que causa sérios problemas de experiência do usuário sem saltar imediatamente para você a partir dos dados de desempenho. A sua placa RAID tem um BBWC e você está fazendo cache de gravação? Caso contrário, você quase definitivamente está vendo problemas - usando o PerfMon, observe o comprimento da fila de disco no volume RAID. A regra prática (IIRC) é que um número maior que o número de fusos físicos na matriz é ruim.
Responder3
O Windows 2003 x86 é definitivamente desafiador em termos de desempenho no que diz respeito à memória do kernel. Por padrão, ele tem um máximo de pool paginado e um máximo de pool não paginável mais baixos do que o Windows XP. Costumávamos maximizar esses dois valores, mas mesmo assim é bastante fácil esgotar a memória do kernel.
Mais informações aqui: https://serverfault.com/a/389299/20701
29 GB são realmente desperdiçados em um servidor de terminal x86.
Para sua informação, eu não descartaria a rede, mesmo que eles estejam no mesmo segmento de LAN.