Wie kann ich feststellen, wo der Hardware-Engpass in meinem System liegt, wenn eine bestimmte Aufgabe ruiniert wird?

441
Roaders

Ich stelle fest, dass es bereits mehrere doppelte Fragen zu diesem Thema gibt, aber alle Fragen, die ich mir angeschaut habe, waren allgemeine Verlangsamungen der Computer. In meinem Fall habe ich eine sehr rechenintensive Aufgabe und möchte sehen, was ich tun kann, um das zu beschleunigen.

Die fragliche Aufgabe (aber ich suche nach allgemeinen Lösungen, die für diese Aufgabe nicht spezifisch sind) ist das Zusammenfügen von 2 4K-Videodateien, um ein 360-Video zu bilden.

Dazu gibt es zwei Phasen: Nähen und Optimieren.

Das Stitching ist sehr CPU-intensiv und ich habe kürzlich einen I9-Prozessor mit 28 Threads, der die Geschwindigkeit fast verdoppelte. Wenn Sie diesen Teil des Prozesses ausführen, läuft der Prozessor jetzt zu etwa 80% (zuvor waren es immer 100%), was bedeutet, dass etwas anderes den Prozess verlangsamt. Mein 32-GB-Speicher wird nur zu 30% genutzt, aber möglicherweise ist die Speichergeschwindigkeit?

Die Festplattennutzung scheint bei 1 - 2% zu liegen.

GPU-Nutzung liegt bei etwa 30%

Ich bezweifle, dass ich dies sehr beschleunigen kann (nur als Referenz dauert es derzeit ungefähr eine Stunde, um 1 Stunde Material zu nähen)

Die zweite Phase dauert etwa 1 Stunde für 1 Stunde Filmmaterial und erstellt im Grunde ein Video mit geringerer Auflösung, um die Bearbeitung zu erleichtern.

Während dieser Phase beträgt die CPU-Auslastung nur etwa 30%, und nichts anderes wird ebenfalls stark beansprucht (basierend auf Ressourcenmonitor). Es muss etwas Hardwarebasiertes geben, das es verlangsamt - wie kann ich was erkennen?

Danke vielmals

Einige Anmerkungen zu meinem System (die für die Beantwortung dieser Frage nicht relevant sind, aber ich habe sie der Vollständigkeit halber hier aufgeführt)

  • i9 7940X
  • 32 GB (2 x 16 GB) 2400 MHz
  • 2 separate M.2-Laufwerke (eines für das Lesen zum Schreiben)
  • Nvidia GTX 1080 Ti
  • ASUS ROG STRIX X299-E GAMING
1
Welche Software verwendest du? cybernard vor 6 Jahren 0

1 Antwort auf die Frage

2
TheNerdyNerd

Sie können noch viel tun, um Ihre Hardware zu überwachen und Dinge einzugrenzen.

Sie haben nicht gesagt, ob Sie eine Windows-Maschine oder welche Betriebssystemversion betreiben, aber ich gehe davon aus, dass es sich um eine Windows 10-Maschine handelt.

Sie können ein Werkzeug namens Performance Monitor (Perfmon) verwenden. Auf diese Weise können Sie die wichtigsten Kennzahlen für Ihr System überwachen und anhand der Werte bestimmen, wo sich der Engpass befinden kann.

Schauen Sie sich um, vielleicht finden Sie auch einige Kennzahlen für GPU und ähnliches.

Ihre Metriken tatsächlich zu finden, ist ein bisschen Kunst, und um ehrlich zu sein, habe ich nicht alle zur Hand, sondern probiere zunächst folgendes aus:

Speicher | Verwendete% festgelegte Bytes: Erfasst, wie viel Prozent Ihres Arbeitsspeichers derzeit festgeschrieben ist ("in use"). Dies sollte beim Öffnen und Schließen von Apps schwanken. Wenn sie jedoch stetig zunimmt, kann dies auf einen Speicherverlust hinweisen.

Netzwerkschnittstelle | Bytes Total / Sek: Zeigt an, wie viele Bytes über eine bestimmte Netzwerkschnittstelle (z. B. Wi-Fi oder Ethernet) gesendet und empfangen werden. Wenn dies jemals mehr als 70% der Bandbreite einer Schnittstelle erreicht, sollten Sie ein Upgrade in Betracht ziehen.

Auslagerungsdatei | % Usage: Erfasst, wie viel Auslagerungsdatei Ihres Systems verwendet wird. Wenn dies konstant hoch ist, sollten Sie erwägen, Ihren physischen Arbeitsspeicher zu vergrößern oder zumindest die Größe Ihrer Auslagerungsdatei zu erhöhen.

Physikalische Festplatte | % Disk Time: Erfasst, wie viel Zeit der Festplatte für die Bearbeitung von Lese- und / oder Schreibanforderungen aufgewendet wird. Wenn dieser Wert konstant hoch ist, sollten Sie ein Upgrade auf ein Solid-State-Laufwerk in Betracht ziehen.

Physikalische Festplatte | % Disk Read Time: Wie oben, außer für Leseanfragen.

Physikalische Festplatte | % Disk Write Time: Wie oben, außer für Schreibanforderungen.

Prozessor | % Interrupt-Zeit: Zeigt an, wie viel Zeit Ihre CPU für die Verarbeitung von Hardware-Interrupts aufwenden muss. Wenn dieser Wert konstant über 10-20% liegt, kann dies auf ein mögliches Problem in einer Ihrer Hardwarekomponenten hinweisen.

Thread | % Prozessorzeit: Erfasst, wie viele Funktionen Ihres Prozessors von einem einzelnen Prozessthread genutzt werden (eine App kann mehrere Threads haben). Nur nützlich, wenn Sie feststellen können, welcher Thread überwacht werden soll.

Einige SQL-Dateien, die ich verwendet habe:

PhysicalDisk (_Total) \ Durchschn. Disk sec / Read PhysicalDisk (_Total) \ Durchschn. Disk sec / Write Diese beiden Zähler zeigen an, wie schnell Ihr E / A-Subsystem auf Datenanforderungen des Betriebssystems reagiert. Mit anderen Worten: Latenz. Die zurückgegebenen Latenzwerte sind unabhängig von der Art des verwendeten E / A-Subsystems gültig, unabhängig davon, ob es sich um lokale physische Magnetplatten, SAN-Laufwerke, NAS-Laufwerke oder Solid-State-Laufwerke handelt. Ihre Latenzwerte sollten normalerweise nicht mehr als 20 ms betragen. wenn Sie SSD verwenden, wahrscheinlich nicht mehr als 5 ms. Wenn Sie Latenzwerte von einer Sekunde oder mehr sehen, hat Ihr E / A-Subsystem Probleme, die behoben werden müssen, um die Leistung auf einem akzeptablen Niveau zu halten.

System \ Prozessor-Warteschlangenlänge Die Prozessor-Warteschlangenlängecounter gibt die Anzahl der Threads an, die auf dem Systemprozessor auf Zeit warten. Wenn diese Anzahl größer als 0 ist, bedeutet dies, dass pro Kern mehr Anforderungen vorhanden sind, als das System verarbeiten kann. Dies kann zu erheblichen Leistungsproblemen führen. Ich hatte einmal einen Kunden, der einen Monatsendeprozess hatte, der während des Arbeitstages ausgeführt werden musste, was 2,5 bis 3 Stunden dauern würde. Wenn es lief, wäre die Leistung für alle anderen auf diesem System furchtbar langsam. Ich habe mir den Prozessor-Warteschlangenlängen-Zähler angesehen - normalerweise würde er tagsüber nicht höher als 3 oder 4 werden, aber am Monatsende sprang er auf irgendwo zwischen 30 und 50. Der Client wurde auf einer virtuellen Maschine mit 4 Prozessoren ausgeführt. und ich fragte, ob sie das verdoppeln könnten. Sie taten dies und das nächste Monatsende wurde in 45 Minuten beendet.

Danke dafür. Ich habe Perfmon nicht probiert. Hier scheint mir nichts zu sagen, wenn der Prozessor auf Speicher wartet (außer dem Paging-Dateibit). Speicher ist so ziemlich der einzige Teil, den ich verbessern kann. Roaders vor 6 Jahren 0