Ich versuche, die Festplatten-E/A-Vorgänge auf einem Server zu überwachen.
Ich muss zwei Messwerte abrufen:
- Lese-E/A/Sek.
- Schreib-E/A/Sek.
Mithilfe von iotop
kann ich die Messwerte ( DISK READ
und DISK WRITE
) ablesen.Mein Hauptproblem besteht darin, dass ich keine nicht integrierten Befehle verwenden kann.
Wie kann ich eine Momentaufnahme der gelesenenIO/Sek.UndSchreib-E/A/Sek.ohne Dienstprogramme von Drittanbietern?
Antwort1
Schauen Sie in der Datei nach /proc/diskstats
. Sie enthält die benötigten Informationen. Lesenhttp://www.kernel.org/doc/Documentation/iostats.txt
Bei den darin enthaltenen Dateien /proc
handelt es sich nicht um echte Dateien, sondern um dynamische Pseudodateien.
Wenn es nicht von nicht vorhandenen dynamischen Bibliotheken abhängt, können Sie pstop dorthin kopieren ~/bin
. chmod +x ~/bin/pstop
Wenn dies der Fall ist, müssen Sie eine statisch verknüpfte Version kompilieren.
Antwort2
Ich habe endlich eine gute Möglichkeit gefunden, die E/A-Metriken zu lesen:
- Holen Sie sich die ID aller Prozesse,
/proc/
indem Sie das Verzeichnis auflisten - Extrahieren Sie die Metriken aus
cat /proc/[pid]/io
- Rechnen Sie nach