Percebi que meu servidor de produção "svchost.exe -k netsvcs" está ocupando mais de 1 GB de memória ram, constantemente, o que acho um pouco excessivo.
Isto é o que tasklist / svc me fornecerá para este processo:
Appinfo, CertPropSvc, gpsvc, IKEEXT,
iphlpsvc, LanmanServer, ProfSvc, Schedule,
SENS, SessionEnv, ShellHWDetection,
Winmgmt, wuauserv
Eu queria saber o que pode ser o processo listado que é responsável por esse vazamento de memória e como corrigi-lo. Alguém já teve esse mesmo comportamento no passado?
O servidor está executando o Windows Server 2008 R2 (Build 7601: Service Pack 1) e sua principal função é executar os trabalhadores internos do processador de aplicativos.
windows-server-2008-r2
svchost
agentsvr
fonte
fonte
SC Config Servicename Type= own
. Veja serverfault.com/questions/12278/…Respostas:
A questão é: é um vazamento? Você está dizendo que o uso da memória é "constante".
Vazamento = o uso da memória aumenta com o tempo, nunca diminuindo, portanto, você precisa recarregar o servidor de vez em quando.
Se a tarefa ficar em ~ 1 GB por muito tempo (digamos, duas semanas), a situação é perfeitamente normal. O software moderno é feito para usar memória livre sempre que necessário, e eu conheço alguns programas que apenas pegam o que há para economizar tempo na alocação de memória.
Se isso não impedir a operação do sistema, não toque nele.
fonte
A alocação de memória é muito cara nos ciclos da CPU, em comparação com a reutilização da memória alocada existente. Muitas vezes, quando um programa é iniciado, até que sua função seja concluída, ele não "libera" essa memória.
Por exemplo, o Firefox mantém a memória por algum tempo. Se você deixar o computador ligado por uma semana com o Firefox aberto, notará que ele aumentará constantemente em tamanho de memória. Após o YouTubing, o Google Play Music e a navegação, o meu atinge de 2 a 4 GB de memória - que diminui para 300 MB depois que eu reinicio o processo. Isso ocorre por causa de seus recursos de armazenamento em cache e esse comportamento é por design.
Eu tenderia a acreditar que o processo SVCHost está fazendo exatamente como deveria. Quantos serviços seu servidor está executando? 1 GB Não parece preocupante - embora isso dependa de quais serviços você está executando.
fonte
Como a próxima etapa, se você quiser investigar mais, eu instalaria o Process Explorer (procexp.exe), que pode ser encontrado no site da Microsoft. Isso fornecerá quais serviços usam esse processo (consulte a captura de tela do procexp) e você poderá parar / iniciar serviços e verificar se um serviço específico está associado à liberação / aquisição de uma grande alocação de memória. Ele também informará se está alocado em Conjunto de trabalho ou Memória particular (= principalmente heap). Se estiver vinculado a um serviço específico, você terá um caminho mais claro para pesquisar mais.
Escusado será dizer que você precisaria fazer esse teste na janela de interrupção / manutenção acordada ou se reproduzir em um servidor de teste, pois você interromperá as operações normais. A reinicialização e a lista de verificação de serviços voltam ao seu conjunto de execução normal após a conclusão do teste.
Captura de tela:
fonte