Wie erhalte ich einen Windows-Befehlszeilenbericht über den gesamten zugesagten Speicher (Festschreibungsgebühr)?

2749
Alexander Bird

Ich möchte ein kleines Batch-Skript haben, das auf einem Server läuft und jede Stunde Speicherstatistiken protokolliert. Ich habe das Skript bereits die prozessspezifischen Informationen protokolliert, die ich über andere Tools möchte, aber ich möchte einen Weg wissen (entweder direkt auf cmd oder über ein Programm), der den gesamten festgeschriebenen Speicher des Systems ausgibt. Mit anderen Worten, ich denke, dass die Statistik der Commit-Charge-Summe im Task-Manager das ist, was ich wissen möchte, aber über die Befehlszeile:

1

2

2 Antworten auf die Frage

3
Karan

Sie können die Win32_PerfFormattedData_PerfOS_Memory- Klasse hierfür über VBScript instanziieren und verwenden :

Set wmiObject = GetObject("winmgmts:\\.\root\cimv2:Win32_PerfFormattedData_PerfOS_Memory=@") Wscript.Echo "CommitLimit (B): " & wmiObject.CommitLimit Wscript.Echo "CommitLimit (MB): " & (wmiObject.CommitLimit / 1048576) Wscript.Echo "CommittedBytes (B): " & wmiObject.CommittedBytes Wscript.Echo "CommittedBytes (MB): " & (wmiObject.CommittedBytes / 1048576) 

Speichern Sie unter einem Namen wie GetMem.vbs und rufen Sie using auf cscript //Nologo GetMem.vbs. Die Klasse kann auch wmicwie unten erwähnt über den Befehl verwendet werden, obwohl ein Skript natürlich viel mehr Flexibilität bietet.

Hallo!). "CommitLimit" ist kein "Commit Charge Peak" STTR vor 11 Jahren 0
@STTR: Er möchte Commit Charge Total. Ist das nicht dasselbe wie CommittedBytes? Die Werte scheinen auf meinem PC zu stimmen. Karan vor 11 Jahren 1
http://blog.whatsupduck.net/2010/05/querying-peak-commit-bytes-with.html es nicht: `WM-Pfad Win32_PerfFormattedData_PerfOS_Memory get CommittedBytes, CommitLimit` STTR vor 11 Jahren 1
@STTR: Der Blog-Post, mit dem Sie verlinkt haben, stimmt mir zu. CommittedBytes * ist * Commit Charge Total. Weder das OP noch ich erwähnte Commit Charge Peak, also sehe ich ehrlich nicht, was das Problem ist. Karan vor 11 Jahren 0
Bitte siehe Test-Skript. STTR vor 11 Jahren 0
@STTR: Vielen Dank, dass Sie mich an den Befehl 'wmic' erinnert haben. Irgendwie wende ich mich immer zuerst an VBS / WSH und vergesse das. Karan vor 11 Jahren 0
0
STTR
wmic path Win32_PerfFormattedData_PerfOS_Memory get CommittedBytes, CommitLimit 

Skript testen ...

Diese Werte können so lang sein, bis der RAM erschöpft ist (CommitLimit und PeakCommitment * (Seitengröße)).

Gipfel ...

Abfragen von Peak Commit-Bytes mit Powershell (über NtQuerySystemInformation)

Das OP wünscht * Total *, nicht * Peak *. Ich muss gestehen, ich sehe immer noch nicht, worauf Sie fahren. Karan vor 11 Jahren 1
@Karan Nun, OP wollte Peak). Verwenden Sie am besten "perfmon" und speichern Sie die Ergebnisse in einer Datenbank. Lass das OP die Frage klären. STTR vor 11 Jahren 0
Karan hat recht. Es ist derzeit der Gesamtwert (nicht der Höchststand), an dem ich interessiert bin. Außerdem würde ich diesem Artikel in Ihrer Antwort einen Link hinzufügen, damit andere wissen, worauf Sie sich beziehen, wenn Sie den Befehl "PeakCommitment.ps1" in Ihren Screenshots verwenden Alexander Bird vor 11 Jahren 1
@AlexanderBird-Skript im Artikel "Peak Commit Bytes mit Powershell abfragen" (über NtQuerySystemInformation) STTR vor 11 Jahren 0