Como descobrir o que está causando um servidor de terminal para usar toda a RAM?

1

Eu tenho 4 servidores de terminal (ou seja, Server1, Server2, Server3, Server4) em um ambiente de cluster. por alguma razão, o Server1 está sempre usando até 90-100% da RAM disponível. Os outros servidores têm uma média de 40% de sua RAM. O total de usuários é de cerca de 27 sessões por servidor.

Como posso saber por que um servidor está usando toda a RAM, mas não o outro. Espero que o uso da RAM flutue, pois alguns usuários podem usar mais ferramentas e recursos. No entanto, o Server1 tem atingido o pico durante o horário comercial de forma consistente.

Uma coisa que percebo quando RDP no server1 ao navegar para "Gerenciador de Tarefas do Windows > Desempenho > Monitor de Recursos" Então, na guia "Memória", vejo muitos processos do chrome.exe em execução no Server1. No entanto, nos outros servidores, não vejo o mesmo comportamento, embora todos os usuários estejam usando o chrome.exe para usar o sistema para fazer seu trabalho diário.

Parece que há uma configuração errada neste servidor em algum lugar ao longo das linhas. Tanto quanto eu sei que todos os 4 servidores de terminal devem ter a mesma configuração "Eu não configurá-los", então eu não estou 100% "

aqui está uma captura de tela do Server1: Monitor de Recursos Server1:GerenciadordeTarefas

E aqui está uma captura de tela do Server2: Resource Monitor Server2:GerenciadordeTarefas

    
por Mike 15.10.2014 / 18:59

1 resposta

1

Você tem 3 GB de RAM usados na primeira tela para SERVER1 e muitas outras páginas para percorrer. Você tem muito de algo, mas o que? Tente usar as seguintes ferramentas CLI para resumir algumas dessas figuras. Você tem um usuário ruim que está fazendo algo estranho? Você tem um aplicativo ruim que está sendo executado por muitos usuários?

Isso lhe dará o SessionID para cada nome de usuário. Eu ainda uso o "query.exe" para isso, não sei como obter do WMI.
query user /server:SERVER1

Isso lhe dará um subtotal para o número de processos iniciados por cada SessionID (a coluna de nome é o SessionID). Existe uma sessão com muito mais processos do que outros?
gwmi win32_process -comp SERVER1 | select name,workingsetsize,sessionid | group-object -prop sessionid | sort -desc count

Subtotal pelo nome do processo, independentemente de quem o iniciou. Você parece ter um monte de instâncias de "InteractionClient.exe". Deveria haver tantos?
gwmi win32_process -comp SERVER1 | select name,workingsetsize,sessionid | group-object -prop name | sort -desc count

Subtotal de WorkingSetSize para o SessionID selecionado. Substitua 99 por IDs de sessão suspeitas do CMD2. Substitua InteractionClient por nomes de usuário suspeitos do CMD3. Eu teria gostado de medir o objeto -sum após o agrupamento por sessionid, mas não consegui descobrir como fazer isso.
(gwmi win32_process -comp SERVER1 | where {$_.sessionid -eq 99} | measure-object workingsetsize -sum).sum/1mb (gwmi win32_process -comp SERVER1 | where {$_.name -eq "InteractionClient.exe"} | measure-object workingsetsize -sum).sum/1mb

Grande tabela de SessionID, ExeName, WorkingSetSize. Você pode colocar isso no Excel e obter subtotais de RAM inserindo manualmente algumas instruções = SUM (A1: A99).
gwmi win32_process -comp SERVER1 | select sessionid,name,workingsetsize | sort sessionid,name,workingsetsize

    
por 15.10.2014 / 23:15