Valeur de mémoire négative Powershell Get-Process

8

Je faisais des vérifications avec la cmdlet Powershell Get-Process et j'ai obtenu des valeurs étranges sur certains processus. J'ai testé sur un serveur avec une instance SQL Server exécutant et consommant 3 Go + RAM comme l'a signalé Resource Monitor, et lors de l'exécution de Get-Process, j'ai obtenu des valeurs négatives pour WorkingSet sur le processus serveur SQL, un autre processus consomme 2 Go + de PrivateMemorySize et a obtenu la même chose valeur négative sur PM.

Voici des captures d'écran des résultats.

Moniteur de ressources L'OS est en portugais, désolé.

Powershell:

entrez la description de l'image ici Vérifiez sqlservr et le dernier scvhost ...

Heureusement, mon script utilise WMI (classe Win32_Process) pour obtenir les informations sur les processus, les valeurs qui y sont correctes et tout correspond.

Est-ce un bug? Peut-être avec de grandes valeurs? J'utilise Powershell v3.

esserafael
la source

Réponses:

11

S'agit-il d'un serveur x64? Si c'est le cas, il est possible que cet article de blog explique votre problème. Apparemment, cela a à voir avec la façon dont le processus get lit la mémoire des systèmes x64:

La raison pour laquelle l'affiche voyait des nombres négatifs est assez simple: la propriété WS est liée à WorkingSet, mais WorkingSet est une valeur 32 bits. Dans le cas de l'affiche, la taille du jeu de travail a dépassé la valeur 32 bits, ce qui a pour résultat l'affichage d'un nombre négatif.

La solution selon le blog est finalement d'imposer la mise en forme du résultat de la requête:

$process = “*SQL"*” GPS $process | ft name, workingset64 –auto

Kate
la source
Merci, je soupçonnais qu'il y avait quelque chose avec des valeurs de tailles et ainsi de suite. De plus, je ne peux obtenir les résultats corrects qu'en exécutant la commande localement sur le serveur, si j'exécute à distance avec le paramètre -ComputerName, j'obtiens les mêmes résultats négatifs. L'exécution avec PSSession fonctionne très bien.
esserafael
0

La sélection de WorkingSet64 au lieu de WorkingSet a fait l'affaire pour moi sans formatage.

Jamie
la source