Wie kann ich die Festplattenleistung von OS X Server protokollieren?

Ich weiß, dass Activity Monitor existiert, um Festplatten-E/A und andere Leistungsmetriken anzuzeigen. Hat Activity Monitor jedoch die Möglichkeit, diese Metriken zu protokollieren?

Wenn nicht, wie kann ich diese Metriken in einer Datenbank oder CSV-Datei protokollieren und wie oft sollten diese protokolliert werden? Jede Sekunde?

Ich möchte Berichte ausführen, um zu sehen, zu welchen Tageszeiten der Server viele Festplatten-E / A für die Kapazitätsverwaltung hat. Sie möchten auch alle 15 Minuten belegten und freien Speicherplatz protokollieren können.

Antworten (1)

Sie können jetzt traditionelle Unix-Tools verwenden, um mit der Überwachung zu beginnen.

iostat 60 | tee /tmp/iostat_60.log

Die Statistiken über freien Speicherplatz können mit dem Befehl generiert werden df, aber Sie können Ihre Warnstufen einfach in der Server-App festlegen und sich auf Warnungen verlassen, die Sie benachrichtigen, wenn der Speicherplatz voll ist. Ich kann mir nicht vorstellen, den Speicherplatz mehr als einmal am Tag zu verfolgen, um das Wachstum grafisch darzustellen oder Dinge zu verwalten, aber Ihre Anforderungen könnten ganz anders sein.

Ich würde sagen, dass 15-minütige (900 Sekunden für iostat) Snapshots der io-Aktivität ausreichen würden und stündliche oder tägliche Protokolle zum Speicherplatz für die meisten Server übertrieben wären. Sie würden wahrscheinlich das Überwachungsintervall während einer Untersuchungs-/Leistungsoptimierungsperiode verkürzen, aber Tag für Tag verbrauchen diese Statistiken normalerweise nur CPU- und Festplattenspeicher und helfen Ihnen nicht wirklich bei der Verwaltung des Servers.

Sobald Sie sich entschieden haben, wie oft Sie die Daten erfassen möchten, können Sie mit einem Wrapper ausgefallener werden, um das Skript zu starten und zu stoppen / die Protokolldateien täglich zu schneiden und zu verarbeiten usw.

Ich würde sagen, Sie sollten sich stattdessen die Tools ansehen, die Sie benötigen, um die Daten tatsächlich zu analysieren und darauf zu reagieren. Für einen Server könnten Sie wahrscheinlich mit einer kostenlosen Splunk- Instanz davonkommen und die Daten einfach in Syslog protokollieren.

Von dort aus können Sie die Daten auf sehr flexible Weise grafisch darstellen / in eine Tabelle extrahieren / auf sie reagieren. Sie können sich auch Elasticsearch , Logstash und Kibana ansehen .

Es gibt einen ausgezeichneten Artikel unter http://krypted.com/windows-server/stashbox-turning-a-mac-mini-into-a-logstash-server/ von Charles Edge, in dem erklärt wird, wie und warum Sie diese Tools verwenden würden um die Protokolle zu zähmen und Dinge zu zeichnen. Wenn Sie das hätten, könnte das Senden der Statistiken an das Systemprotokoll eine sehr einfache Möglichkeit sein, Ihr Problem der Überwachung von IO auf Ihrem Server zu lösen.

Ich stimme zu, dass 15-minütige Schnappschüsse der Festplattennutzung in meiner Situation übertrieben sind. Ich kann wahrscheinlich mit täglich durchkommen. Wenn ich den Befehl df ausführe, werden alle Partitionen gefüllt. Ist es möglich, einfach /dev/sda1 zu erfassen? Ich möchte auch, dass die Ausgabe in einer CSV-Datei als NAME_OF_DISK,Used,Available,Use% erfolgt und nichts anderes enthält.
Sie können fast alles damit machen grep, awk, and sedund Python hat eine wirklich schöne CSV-Eingabe und -Ausgabe. Es hängt davon ab, ob Sie gerne Skripte schreiben.df | grep disk0s2 | awk '{ print $2 "," $3 "," $4}'
Eindrucksvoll! Wie kann ich nun einfach die gesamten Festplatten-E / A erfassen und nicht pro laufender Anwendung / Prozess im selben CSV-Format?