Windows XP verlangsamt sich, was ist daran schuld?

2225
ericslaw

Ich betreibe Windows XP und nach einer Weile scheint es sehr langsam zu werden. Ich vermute, es ist ein hoher Speicherbedarf von Firefox, aber ich habe festgestellt, dass einige andere Programme beim Neustart 'langsam' beendet werden.

Gibt es eine Möglichkeit, den gesamten Prozessspeicherverbrauch über die Zeit zu messen ? Process Explorer ist das, was ich will, aber für jeden Prozess, nicht nur für den, für den ich Eigenschaften geöffnet habe.

In Unix-Land führte ich pswiederholt Schnappschüsse aus und schaute RSS (und ignorierte die gemeinsamen Speicherseiten offensichtlich), was berechnet wurde

  • ist jetzt ein Schwein
  • wuchs am meisten (während ich nicht schaute).

Ich brauche ungefähr 8 bis 24 Stunden Geschichte pro Prozess, nicht nur was auf den Bildschirm passt.

Irgendwelche Ideen?

1

6 Antworten auf die Frage

5
user4197

Vor einiger Zeit schrieb ich Windows Perfmon: Die Top-Ten-Zähler in meinem alten Blog. Der Artikel enthält eine kurze Einführung in die Verwendung von Perfmon, um festzustellen, wo Hardware-Engpässe bestehen: Prozessor, Arbeitsspeicher, Datenträger oder Netzwerk (und zweitens, um die aktuellen Betriebslasten dieser Ressourcen zu ermitteln). Ich kann diesen Schritt nicht genug betonen: Stellen Sie zunächst sicher, dass Sie wissen, welche Hardware-Ressource überlastet ist . Dann gehen Sie auf die Jagd nach dem Ressourcenschwein.

Wenn Sie festgestellt haben, welche Ressource überlastet ist, haben Sie zwei Möglichkeiten: Fügen Sie weitere Ressourcen hinzu (schnellere CPU, Speicher hinzufügen, schnellere Festplatte oder NIC), ... oder suchen Sie nach den wichtigsten Benutzern dieser Ressource töten Sie sie entweder oder machen Sie Schritte, um sie weniger schweinisch zu machen.

Der einfachste Weg, die wichtigsten Ressourcen zu finden, ist der Process Explorer . Stellen Sie sicher, dass Sie es von einem Konto mit Administratorrechten ausführen. Hier ist eine schnelle und schmutzige Liste der Dinge, nach denen Sie suchen müssen:

  • Verwenden Sie für Speicherengpässe (den häufigsten Engpass) die Spalten Working Set, Virtual Size und Private Bytes History auf der Registerkarte Prozessspeicher . Sortieren Sie die Spalten nacheinander absteigend (größte Werte oben in der Spalte). Von diesen ist das Arbeitsset normalerweise das wertvollste.
  • Für CPU-Engpässe benötigen Sie natürlich die Spalte CPU-Auslastung . Die CPU-Historie ist auch praktisch. Diese befinden sich auf der Registerkarte Prozessleistung . Wieder absteigend sortieren. Dieser Wert tendiert dazu, viel mehr als die Speicherauslastungswerte herumzurechnen, machen Sie also keine Momententscheidungen. Beobachten Sie es eine Weile, um zu sehen, ob Ihr Hauptverdächtiger länger als ein paar Sekunden oben bleibt.
  • Bei Festplatten-Engpässen (häufig handelt es sich um Speicher-Engpässe, da das System dazu gezwungen wird, häufig zu häufig von der Festplatte zu blättern), haben Sie keine wirklich großen Möglichkeiten, da Windows keine E / A-Perfmon-Leistungsindikatoren pro Prozess hat. Sie können jedoch die Gesamt-E / A pro Prozess (einschließlich Festplatten-, Netzwerk- und Geräte-E / A) anzeigen. Sie können die E / A-Lesebytes und die E / A-Schreibbytes- Zähler als grobe Schätzung verwenden. Diese befinden sich auf der Registerkarte Prozessleistung .
  • Es ist unwahrscheinlich, dass Netzwerkengpässe Ihr Problem sein werden. Da jedoch prozessuale Netzwerkindikatoren in E / A zusammengefasst sind, können Sie auf die gleiche Weise eine grobe Idee erhalten, wie ich es oben für Festplattenengpässe beschrieben habe. Es liegt an Ihnen, zu bestimmen, ob die in diesen Spalten angezeigten E / As wahrscheinlicher Festplatten- oder Netzwerk-E / As sind. Wenn Sie unter Vista / 2008/7 waren, erhalten Sie eine kleine Hilfe von den Windows Performance Tools, die ich in meinem neueren Blog bespreche .

Viel Glück!

3
dlamblin

Es gibt perfmon.mscund gibt sysInternals ' Process Monitor, der protokolliert.

1
John Gardeniers

Sie können mit dem Task-Manager beginnen, der Ihnen einiges an Information vermittelt.

1
mhud

Eine robuste Alternative zum integrierten Task-Manager ( taskmgr.exe) ist Process Explorer ( procexp.exe). Process Explorer wurde von SysInternals erstellt und gehört nun Microsoft und wird von Microsoft vertrieben.

Wenn Sie in regelmäßigen Abständen Proben Ihres normalerweise fehlerfreien Systems zur Ermittlung der Basislinien-Nummern erstellen möchten Get-Process, können Sie eine geplante Aufgabe erstellen, die das PowerShell-Cmdlet verwendet, oder eine Batch-Datei, die den einfachen alten DOS- Befehl verwendet tasklist.exe.

1
Wayne

Sie können ps von sysinternals oder ps von cygwin verwenden. Wenn Sie einen Entwickler kennen, ist es einfach, ein Programm zu schreiben, das jeden Prozess durchläuft und bestimmte Statistiken extrahiert.

Dieser Code sollte sich wirklich auf stackoverflow befinden und die Overlords sagen vielleicht etwas aus, geben Ihnen aber eine Vorstellung davon, wie einfach diese Aufgabe sein kann:

public static string ListAllApplications() { StringBuilder sb = new StringBuilder();  foreach (Process p in Process.GetProcesses(".")) { try { if (p.MainWindowTitle.Length > 0) { sb.Append("Window Title:\t" + p.MainWindowTitle.ToString() + Environment.NewLine);  sb.Append("Process Name:\t" + p.ProcessName.ToString() + Environment.NewLine);  sb.Append("Window Handle:\t" + p.MainWindowHandle.ToString() + Environment.NewLine);  sb.Append("Memory Allocation:\t" + p.PrivateMemorySize64.ToString() + Environment.NewLine);  sb.Append(Environment.NewLine); } } catch { } }  return sb.ToString(); } 
Es gibt keinen guten Grund, dass der Code auf SF nicht angezeigt werden kann. vor 15 Jahren 0
0
Axxmasterr

Ich habe dieses Problem die ganze Zeit. Firefox ist in der Regel mein Hauptverantwortlicher, aber gelegentlich führe ich etwas mit einem Speicherverlust aus.

Ich weiß, dass es bereits gesagt wurde, aber ich werde es noch einmal sagen ... Der Prozess-Explorer verfügt über eine sehr praktische Funktion, mit der Sie ihn anpassen können, um einige zusätzliche Informationsspalten bereitzustellen. Die zusätzlichen Spalten, an denen Sie interessiert sind, sind "CPU History" und "Private Bytes History". Ich denke, dies sind die Informationen, die Sie aus dem System holen möchten. Es zeigt eine Grafik für jeden Prozess.

Alt-Text