PowerScale OneFS: Troubleshooting bei Leistungsproblemen
Summary: Beheben Sie die langsame Leistung von PowerScale OneFS mit unserem umfassenden Leitfaden zur Netzwerkkonfiguration, zur Verarbeitung von Lasten und zum Monitoring mit InsightIQ für eine verbesserte Clustereffizienz. ...
Symptoms
Clientcomputer arbeiten langsam. Bestimmte Jobs, insbesondere solche, die auf dem Cluster ausgeführt werden, schlagen entweder fehl oder dauern länger als erwartet.
Cause
Performanceprobleme sind in der Regel auf Netzwerkdatenverkehr, Netzwerkkonfigurationsprobleme, Client- oder Clusterverarbeitungslast oder eine Kombination daraus zurückzuführen. In diesem Artikel werden verschiedene effektive Möglichkeiten zur Behebung von Leistungsproblemen beschrieben.
Resolution
Troubleshooting mit InsightIQ
Inhaltsverzeichnis:
- Verwenden von Isilon InsightIQ
- Troubleshooting ohne InsightIQ
- Netzwerkdurchsatz
- Verteilung von Clientverbindungen
- SmartConnect
- Clusterdurchsatz
- Clusterverarbeitung
- Vorgänge in der Warteschlange
- CPU
Verwenden von Isilon InsightIQ
Die Verwendung von Isilon InsightIQ ist die beste Möglichkeit, die Performance zu überwachen und Performanceprobleme zu beheben.
Mit der virtuellen Isilon InsightIQ-Appliance können Sie die Isilon-Clusteraktivität über flexible, anpassbare Diagrammansichten in der webbasierten InsightIQ-Anwendung überwachen und analysieren. Diese Diagramme bieten detaillierte Informationen über Hardware, Software sowie Dateisystem- und Protokollvorgänge des Clusters. InsightIQ wandelt Daten in visuelle Informationen um, die alle Leistungsausreißer hervorheben und so eine schnelle Diagnose von Engpässen oder die Optimierung von Workflows ermöglichen.
Weitere Informationen zur Verwendung von InsightIQ finden Sie im InsightIQ-Benutzerhandbuch.
Troubleshooting ohne InsightIQ
Wenn Sie InsightIQ nicht verwenden, können Sie verschiedene Befehle ausführen, um Performanceprobleme zu untersuchen. Das Troubleshooting für Performanceprobleme beginnt damit, den Netzwerk- und Clusterdurchsatz zu untersuchen, dann die Clusterverarbeitung und schließlich die CPU-Raten einzelner Nodes.
Netzwerkdurchsatz
Verwenden Sie ein Netzwerktesttool, z. B Iperf , um die Durchsatzfunktionen der Cluster- und Clientcomputer in Ihrem Netzwerk zu bestimmen.
Mit Iperfführen Sie die folgenden Befehle auf dem Cluster und Client aus. Diese Befehle definieren eine Fenstergröße, die groß genug ist, um zu erkennen, ob die Netzwerkverbindung eine mögliche Ursache für Latenzprobleme ist.
- Cluster:
iperf -s -w 262144
- Client:
iperf -c <cluster IP> -w 262144
Verteilung von Clientverbindungen
Überprüfen Sie, wie viele NFS- und SMB-Clients mit dem Cluster verbunden sind, um sicherzustellen, dass sie keinen Node bevorzugen.
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Führen Sie den folgenden Befehl aus, um NFS-Clients zu überprüfen:
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfs
Die Ausgabe zeigt die Anzahl der verbundenen Clients pro Node an und wie viele dieser Clients auf jedem Node aktiv sind. - Führen Sie den folgenden Befehl aus, um SMB-Clients zu überprüfen:
isi statistics query - nodes=all --stats=node.clientstats.connected.smb, node.clientstats.active.smb1,node.clientstats.active.smb2
Die Ausgabe zeigt die Anzahl der verbundenen Clients pro Node an und wie viele dieser Clients auf jedem Node aktiv sind.
SmartConnect
Stellen Sie sicher, dass der Node, auf dem SmartConnect ausgeführt wird, nicht mit Netzwerkdatenverkehr belastet ist.
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Führen Sie den folgenden Befehl aus:
isi_for_array -sq 'ifconfig|grep em -A3'
Die Ausgabe zeigt eine Liste aller IP-Adressen an, die an die externe Schnittstelle gebunden sind. - Suchen Sie nach Nodes, die eine zusätzliche IP-Adresse als der Rest haben.
- Überprüfen Sie den Status der Nodes, die Sie in Schritt 3 bemerkt haben, indem Sie den folgenden Befehl ausführen:
isi status
Überprüfen Sie die Spalte throughput der Ausgabe, um die Auslastung der in Schritt 3 festgestellten Nodes zu bestimmen.
Clusterdurchsatz
Bewerten Sie den Clusterdurchsatz, indem Sie Schreib- und Lesetests durchführen, die die Zeit messen, die zum Lesen und Schreiben in eine Datei benötigt wird. Führen Sie mindestens einen Schreibtest und einen Lesetest wie folgt durch.
Schreibtest
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Wechseln Sie in das Verzeichnis /ifs :
cd /ifs
- Verwenden Sie über die Befehlszeilenschnittstelle (CLI) auf dem Cluster oder auf einem UNIX- oder Linux-Clientcomputer den Befehl
ddzum Schreiben einer neuen Datei in das Cluster. Führen Sie den folgenden Befehl aus:dd if=/dev/zero of=1GBfile bs=1024k count=1024
Mit diesem Befehl wird eine 1-GB-Beispieldatei erstellt und die Zeit gemeldet, die für das Schreiben auf die Festplatte benötigt wurde. - Extrapolieren Sie aus der Ausgabe dieses Befehls, wie viele MB pro Sekunde in Single-Stream-Workflows auf die Festplatte geschrieben werden können.
- Wenn Sie einen MAC-Client haben und weitere Analysen durchführen möchten,
- Starten Sie die Aktivitätsüberwachung.
- Führen Sie den folgenden Befehl aus, wobei
pathToFileder Dateipfad zur Zieldatei ist:cat /dev/zero > /pathToFile
Mit diesem Befehl können Sie den Durchsatz von Schreibvorgängen auf dem Isilon-Cluster messen. (Obwohl es möglich ist, den BefehlddBefehl von einem MAC-Client aus, können die Ergebnisse inkonsistent sein.) - Überwachen Sie die Ergebnisse des Befehls auf der Registerkarte Netzwerk des Activity Monitor.
Test
lesenStellen Sie beim Messen des Durchsatzes von Lesevorgängen sicher, dass Sie keine Lesetests für die Datei durchführen, die Sie während des Schreibtests erstellt haben. Da diese Datei zwischengespeichert wurde, wären die Ergebnisse Ihrer Lesetests ungenau. Testen Sie stattdessen den Lesevorgang mit einer Datei, die nicht zwischengespeichert wurde. Suchen Sie eine Datei auf dem Cluster, die größer als 1 GB ist, und verwenden Sie diese Datei im Lesetest.
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Verwenden Sie über die CLI auf dem Cluster oder auf einem UNIX- oder Linux-Clientcomputer den Befehl
ddzum Lesen einer Datei auf dem Cluster. Führen Sie den folgenden Befehl aus, wobeipathToFileder Dateipfad zur Zieldatei ist:dd if=/pathToLargeFile of=/dev/null bs=1024k
Dieser Befehl liest die Zieldatei und meldet die Zeit, die zum Lesen der Datei benötigt wurde. - Wenn Sie einen MAC-Client haben und weitere Analysen durchführen möchten,
- Starten Sie die Aktivitätsüberwachung.
- Führen Sie den folgenden Befehl aus, wobei
pathToFileder Dateipfad zur Zieldatei ist:time cp /pathToLargeFile > /dev/null
Mit diesem Befehl können Sie den Durchsatz von Lesevorgängen auf dem Isilon-Cluster messen. (Obwohl es möglich ist, den BefehlddBefehl von einem MAC-Client aus, können die Ergebnisse inkonsistent sein.) - Überwachen Sie die Ergebnisse des Befehls auf der Registerkarte Netzwerk des Activity Monitor.
Clusterverarbeitung
Restriping-Jobs
Vor der Untersuchung der I/O-Vorgänge (Input/Output) (IOPS) des Clusters:
- Bestimmen Sie, welche Jobs auf dem Cluster ausgeführt werden. Wenn Restriping-Jobs wie Auto-Balance, Collect oder Multi-Scan ausgeführt werden, überlegen Sie, warum diese Jobs ausgeführt werden und ob sie weiterhin ausgeführt werden sollten.
- Berücksichtigen Sie den Typ der verbrauchten Daten. Wenn Clientcomputer mit großen Videodateien oder virtuellen Maschinen (VMs) arbeiten, erfordert der Restriping-Job eine höhere Menge an Festplatten-IOPS als normal.
- Erwägen Sie das vorübergehende Anhalten eines Restriping-Jobs. Dies kann die Performance erheblich verbessern und kann eine kurzfristige Lösung für ein Performanceproblem sein.
Festplatten-I/O
Durch die Untersuchung der Festplatten-I/O kann festgestellt werden, ob bestimmte Festplatten überbeansprucht werden.
Nach Cluster
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Führen Sie den folgenden Befehl aus, um die Festplatten-I/O zu ermitteln:
isi statistics pstat
- Teilen Sie die Festplatten-IOPS in der Ausgabe dieses Befehls durch die Gesamtzahl der Festplatten im Cluster. Beispiel: Bei einem Cluster mit 8 Nodes und Isilon IQ 12000x-Nodes, das 12 Laufwerke pro Node hostet, teilen Sie die Festplatten-IOPS durch 96.
Für Nodes der X-Serie und Nodes der NL-Serie sollten Festplatten-IOPS von 70 oder weniger für 100 % zufällige Workflows oder Festplatten-IOPS von 140 oder weniger für 100 % sequenzielle Workflows erwartet werden können. Da Nodes der NL-Serie weniger RAM und niedrigere CPU-Geschwindigkeiten als Nodes der X-Serie haben, können Nodes der X-Serie höhere Festplatten-IOPS verarbeiten.
Nach Node und nach Festplatte
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Führen Sie den folgenden Befehl aus, um die Festplatten-IOPS nach Node zu ermitteln. Dies kann bei der Erkennung von überbeanspruchten Festplatten helfen:
isi statistics query --nodes=all --stats=node.disk.xfers.rate.sum --top
- Führen Sie den folgenden Befehl aus, um zu bestimmen, wie Statistiken pro Festplatte abgefragt werden sollen:
isi statistics describe --stats=all | grep disk
Vorgänge in der Warteschlange
Eine weitere Möglichkeit, festzustellen, ob Festplatten überbeansprucht werden, besteht darin, zu bestimmen, wie viele Vorgänge für jede Festplatte im Cluster in die Warteschlange gestellt werden. Bei einem SMB-basierten Single-Stream-Workflow kann eine Warteschlange von 4 auf ein Problem hinweisen, während bei NFS-Namespace-Vorgängen mit hoher Parallelität die Warteschlange größer ist.
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Führen Sie den folgenden Befehl aus, um zu bestimmen, wie viele Vorgänge für jede Festplatte im Cluster in die Warteschlange eingereiht werden:
isi_for_array -s sysctl hw.iosched | grep total_inqueue
- Bestimmen Sie die Latenz, die durch die Warteschlangenvorgänge verursacht wird:
sysctl -aN hw.iosched|grep bios_inqueue|xargs sysctl -D
CPU
CPU-Probleme lassen sich häufig auf die Vorgänge zurückführen, die Clients auf dem Cluster ausführen. Mithilfe des Befehls isi statistics können Sie die auf dem Cluster ausgeführten Vorgänge bestimmen, katalogisiert nach Netzwerkprotokoll oder Clientcomputer.
- Öffnen Sie eine SSH-Verbindung auf einem beliebigen Node im Cluster und melden Sie sich mit dem Konto "root" an.
- Führen Sie den folgenden Befehl aus, um festzustellen, welche Vorgänge im Netzwerk durchgeführt werden, und um zu bewerten, welche dieser Vorgänge die meiste Zeit in Anspruch nehmen:
isi statistics protocol --orderby=TimeAvg --top
Diese Befehlsausgabe enthält detaillierte Statistiken für alle Netzwerkprotokolle, organisiert nach der Zeit, die der Cluster benötigt, um auf Clients zu reagieren. Obwohl die Ergebnisse dieses Befehls möglicherweise nicht erkennen, welcher Vorgang am langsamsten ist, kann er Sie in die richtige Richtung weisen. - Führen Sie den folgenden Befehl aus, um weitere Informationen zur CPU-Verarbeitung zu erhalten, z. B. welche CPUs der Nodes am häufigsten verwendet werden:
isi statistics system --top
- Führen Sie den folgenden Befehl aus, um die vier Prozesse auf jedem Node abzurufen, der die meisten CPU-Ressourcen verbraucht:
isi_for_array -sq 'top -d1|grep PID -A4'
Additional Information
Hier sind empfohlene Ressourcen zu diesem Thema, die möglicherweise von Interesse sind: