J'ai remarqué que mon serveur de production "svchost.exe -k netsvcs" occupe régulièrement> 1 Go de mémoire RAM, ce qui, je pense, est un peu excessif.
Voici ce que tasklist / svc me donnera pour ce processus:
Appinfo, CertPropSvc, gpsvc, IKEEXT,
iphlpsvc, LanmanServer, ProfSvc, Schedule,
SENS, SessionEnv, ShellHWDetection,
Winmgmt, wuauserv
Je me demandais quel pourrait être le processus répertorié responsable de cette fuite de mémoire et comment y remédier. Quelqu'un at-il eu ce même comportement dans le passé?
Le serveur exécute Windows Server 2008 R2 (Build 7601: Service Pack 1) et sa fonction principale est d'exécuter des travailleurs de processeur d'applications internes.
windows-server-2008-r2
svchost
agentsvr
la source
la source
SC Config Servicename Type= own
. Voir serverfault.com/questions/12278/…Réponses:
La question est, est-ce une fuite? Vous dites que l'utilisation de la mémoire est "régulière".
Fuite = l'utilisation de la mémoire augmente au fil du temps, sans jamais diminuer, vous devez donc recharger le serveur de temps en temps.
Si le taks reste à ~ 1 Go pendant longtemps (disons, deux semaines), la situation est parfaitement normale. Un logiciel moderne est conçu pour utiliser de la mémoire libre chaque fois que cela est nécessaire, et je connais quelques programmes qui captureront tout ce qui est juste pour gagner du temps sur l'allocation de mémoire.
Si cela n'entrave pas le fonctionnement du système, ne le touchez pas.
la source
L'allocation de mémoire coûte très cher sur les cycles du processeur par rapport à la réutilisation de la mémoire allouée existante. Il arrive souvent qu'une fois qu'un programme démarre, jusqu'à ce qu'il ait terminé sa fonction, il ne "lâche pas" cette mémoire.
Par exemple, Firefox conserve la mémoire pendant un certain temps. Si vous laissez votre ordinateur allumé pendant une semaine avec Firefox ouvert, vous remarquerez qu'il augmentera constamment la taille de la mémoire. Après YouTubing, Google Play Music-ing et la navigation, le mien atteint 2-4 Go en mémoire - qui se réduit à 300 Mo après le redémarrage du processus. Cela est dû à ses fonctionnalités de mise en cache et ce comportement est voulu par la conception même du produit.
J'aurais tendance à croire que le processus SVCHost fait exactement ce qu'il devrait. Combien de services votre serveur exécute-t-il? 1 Go ne semble pas inquiétant, bien que cela dépende des services que vous utilisez.
la source
À l'étape suivante, si vous souhaitez approfondir votre recherche, j'installerais l'explorateur de processus (procexp.exe) que vous pouvez trouver sur le site de Microsoft. Cela vous donnera quels services utilisent ce processus (voir capture d'écran de procexp), vous pouvez ensuite arrêter / démarrer des services et voir si un service particulier est associé à la libération / acquisition d'une grande allocation de mémoire. Il vous indiquera également s'il s'agit d'un ensemble de travail ou d'une mémoire allouée privée (= principalement un tas). S'il est lié à un service spécifique, vous aurez un chemin plus clair pour poursuivre vos recherches.
Il va sans dire que vous devrez effectuer ces tests dans une fenêtre de panne / maintenance convenue ou reproduire sur un serveur de test car vous interromprez les opérations normales. Le redémarrage et la liste de vérification des services sont de retour à votre jeu d’exécution normal une fois les tests terminés.
Capture d'écran:
la source