2016-08-01 32 views
8

Ich habe bemerkt, dass einige Cloud-Hosting-Lösungen wirklich schlechten Disk-IO haben. Dies führt zu einigen Problemen, die behoben werden können, indem das Skript wartet, bis der Datenträger weniger ausgelastet ist.Wie würde ich überprüfen, wie beschäftigt die Festplatte mit PHP ist?

Mit PHP ist es möglich, die besetzt ist (oder nicht so viel zu tun) Zustand des Dateisystems zu überwachen, ohne schlimmere Dinge zu machen?

+1

Nun, man kann sicher alle Arten von System-Utilities Feuer und bewerten ihre Leistung keine Informationen erhalten Sie auch als Mensch ziehen könnte. Ich bezweifle jedoch, dass dies in dem von Ihnen beschriebenen Szenario wirklich hilfreich ist. Die "Festplatte", die Sie in einem virtualisierten System sehen, wird nur simuliert. Die Dienstprogramme können also einige Informationen anzeigen, aber die Frage ist, wie viel Wahrheit darin steckt. Die schlechte Leistung in solchen Szenarien ist nicht innerhalb der Systemhardware (es virtuell ist sowieso), sondern innerhalb des gesamten vernetzten Cluster bietet alle Dienstleistungen, die ist etwas, das man nicht kontrollieren kann oder vorhersagen. – arkascha

+1

Ich würde sagen, einen besseren Anbieter oder ein besseres Angebot erhalten, wenn Probleme mit Ihrer aktuellen Lösung auftreten. Es gibt große Unterschiede zwischen verschiedenen Anbietern. Oft bieten die weniger bekannten Anbieter eine viel bessere Leistung als bekannte Unternehmen. – arkascha

+0

Ich sollte hinzufügen, dass ich nicht mehr am Projekt bin (und dankbar, nicht zu sein). Das System hatte eine ungnädige Verzögerung bei den HDD-Lesevorgängen. Das Caching auf der Festplatte anstelle der DB führte zu einer Zeitüberschreitung der Verbindungen. Es war die schlechteste Plattform, mit der ich je gearbeitet habe. Ich habe die Konfigurations-Vars in der Datenbank gespeichert, weil es schneller war, sie auf diese Weise zu bekommen. –

Antwort

17

Wenn dies ein Linux-System ist, können Sie Festplattennutzung selbst berechnen - die Sprache, die Sie wählen, um es umzusetzen in die gleichen Konzepte verwenden.

Ihr Kernel verwendet höchstwahrscheinlich sysfs, wodurch viele Informationen über Ihr System unter verfügbar sind; Wir können in regelmäßigen Abständen Informationen über unsere gewünschten Festplatten abrufen und die Nutzung anhand der Unterschiede zwischen ihnen berechnen.

Auf meinem System werde ich auf der Festplatte suchen, sda können Sie abweichen.

$ cat /sys/class/block/sda/stat 
    42632  25 2045318 247192 6956543 7362278 123236256 23878974  0 3703033 24119492 

Wenn wir nun bei the Kernel documentation für /sys/class/block/<dev>/stat aussehen können wir die folgenden Beschreibungen für jede Spalte der Ausgabe sehen.

Name   units   description 
----   -----   ----------- 
read I/Os  requests  number of read I/Os processed 
read merges  requests  number of read I/Os merged with in-queue I/O 
read sectors sectors  number of sectors read 
read ticks  milliseconds total wait time for read requests 
write I/Os  requests  number of write I/Os processed 
write merges requests  number of write I/Os merged with in-queue I/O 
write sectors sectors  number of sectors written 
write ticks  milliseconds total wait time for write requests 
in_flight  requests  number of I/Os currently in flight 
io_ticks  milliseconds total time this block device has been active 
time_in_queue milliseconds total wait time for all requests 

Wenn wir dies auf einem chronologischen Zeitplan laufen, und einige der Wartezeiten diff, können wir sehen, wie lange wir auf jeder Operation warten. Sie haben auch andere Statistiken über Gesamt-IOPS und RW-Bandbreite. Die Dokumentation geht detaillierter auf jedes Feld ein.

welcher Sprache auch immer gewählt wird, der Dateideskriptor öffnen Informationen über die Festplatte sein

/sys/class/block/<dev>/stat 

zu bekommen Wenn wir dies auf einen Zeitplan zu tun, können wir ausgefallene Grafiken zeichnen;)

enter image description here

+7

Diese Antwort ist so großartig, dass ich fast keine Chance hatte, es auszuprobieren. Dann erinnerte ich mich, wie froh ich war, dass ich nicht mehr bei diesem Projekt war. –

+3

Entschuldigung, um den Beitrag wieder zu beleben; sah es auf Meta und musste meine Graphen teilen: D Aber egal, das Projekt, Graphen sind immer eine gute Sache, um in der Lage zu sein, Probleme zu identifizieren! Viel Glück! (Ich benutze [Grafana] (https: // grafana.com /)) Leider habe ich den Beitrag nicht früher gesehen! –

+2

Hey, kein Problem. Du hast meine Sorge darüber, was mit der Frage zu tun ist, gelöst. Es ist jetzt nützlich, das ist ein Gewinn. –