Wie kann sichergestellt werden, dass die E/A-Anforderungsrate wieder auf den Normalwert zurückgekehrt ist?

Wie kann sichergestellt werden, dass die E/A-Anforderungsrate wieder auf den Normalwert zurückgekehrt ist?

AnAmazon Web ServicesIch verwende eint2.small EC2Instanz als VPS, der einige Websites auf einem LAMP (PHP)-Stack bedient. Ich wurde gerade mit einer Rechnung konfrontiert, die fast dreimal so hoch ist wie meine übliche Rechnung. Ich sehe, dass meineDie Nutzung von I/O-Anfragen war außergewöhnlich hoch. Ich habe mich beim Server angemeldet und festgestellt, dass die Festplatte voll war. Ich habe eine Reihe nicht kritischer Dateien und Protokolle entfernt und die Festplatte (EBS) ist jetzt zu <60 % ausgelastet, aber ich möchte zwei Dinge überprüfen.

  1. Wie kann ich feststellen, ob die hohe Anzahl der E/A-Anfragen auf eine volle Festplatte zurückzuführen ist?
  2. Wie kann ich feststellen, ob ich immer noch E/A-Anfragen bearbeite?

Ich hatte nicht die AWS-spezifischenCloudWatchÜberwachungsdienst aktiviert, daher werde ich wahrscheinlich keine Antwort auf Nr. 1 erhalten, wäre aber für jeden Rat dankbar.

Bezüglich Nr. 2 habe ich die beiden indieser Blog-Beitragum meine I/O-Rate zu ermitteln, und es scheint, dass sie sehr, sehr hoch ist. Hier sind einige Statistiken vom Server:

$ iostat
Linux 3.13.0-45-generic (dysphoria)     2015-10-08      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.74    0.01    0.69   16.83    0.43   79.30

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda            170.08     10039.29        32.52  843300857    2731428
xvdf              0.01         0.02         0.00       1308          0

$ cat /proc/diskstats
   1       0 ram0 0 0 0 0 0 0 0 0 0 0 0
   1       1 ram1 0 0 0 0 0 0 0 0 0 0 0
   1       2 ram2 0 0 0 0 0 0 0 0 0 0 0
   1       3 ram3 0 0 0 0 0 0 0 0 0 0 0
   1       4 ram4 0 0 0 0 0 0 0 0 0 0 0
   1       5 ram5 0 0 0 0 0 0 0 0 0 0 0
   1       6 ram6 0 0 0 0 0 0 0 0 0 0 0
   1       7 ram7 0 0 0 0 0 0 0 0 0 0 0
   1       8 ram8 0 0 0 0 0 0 0 0 0 0 0
   1       9 ram9 0 0 0 0 0 0 0 0 0 0 0
   1      10 ram10 0 0 0 0 0 0 0 0 0 0 0
   1      11 ram11 0 0 0 0 0 0 0 0 0 0 0
   1      12 ram12 0 0 0 0 0 0 0 0 0 0 0
   1      13 ram13 0 0 0 0 0 0 0 0 0 0 0
   1      14 ram14 0 0 0 0 0 0 0 0 0 0 0
   1      15 ram15 0 0 0 0 0 0 0 0 0 0 0
   7       0 loop0 0 0 0 0 0 0 0 0 0 0 0
   7       1 loop1 0 0 0 0 0 0 0 0 0 0 0
   7       2 loop2 0 0 0 0 0 0 0 0 0 0 0
   7       3 loop3 0 0 0 0 0 0 0 0 0 0 0
   7       4 loop4 0 0 0 0 0 0 0 0 0 0 0
   7       5 loop5 0 0 0 0 0 0 0 0 0 0 0
   7       6 loop6 0 0 0 0 0 0 0 0 0 0 0
   7       7 loop7 0 0 0 0 0 0 0 0 0 0 0
 202       0 xvda 14198708 1225 1686588426 26715600 87579 51756 5461696 11290600 0 16654328 38003076
 202       1 xvda1 14198527 1203 1686586802 26715376 87579 51756 5461696 11290600 0 16654236 38002848
 202      80 xvdf 447 6 2616 288 0 0 0 0 0 288 288

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2000       1910         89          6          6       1216
-/+ buffers/cache:        688       1312
Swap:            0          0          0

Obwohl die obigen Informationen kurz nach dem Booten erfasst wurden, iostatzeigt der Bericht einen anfänglichen TPS-Wert im Bereich von 50-80, selbst nachdem das System mehrere Stunden lang gelaufen ist. Der Server bedient etwa 20 Websites, von denen nur drei mehr als ein paar Zugriffe pro Tag erhalten. Diese verzeichnen etwa ein paar hundert Besucher pro Tag.Der Server und die Sites blieben jahrelang ohne Probleme in dieser Konfiguration.Erst vor Kurzem kam es zu einem sprunghaften Anstieg der E/A-Daten, ohne dass sich der Code, die Serverkonfiguration oder die Website-Auslastung entsprechend geändert hätten.

Beachten Sie, dass diese Frage ursprünglich gestellt wurde amdas offizielle Forum von Amazon Web Servicesdort konnte allerdings anscheinend niemand helfen. Vielleicht ist die Frage zu allgemein für dieses Forum.

Antwort1

Die Manpage von iostat enthält wichtige Informationen, die, wenn sie nicht verstanden werden, zu einem Missverständnis der dargestellten Daten führen können.

Der erste vom Befehl iostat generierte Bericht enthält Statistiken über die Zeit seit dem Systemstart. Jeder nachfolgende Bericht deckt die Zeit seit dem vorherigen Bericht ab. Alle Statistiken werden bei jeder Ausführung des Befehls iostat gemeldet.

Ihr einfacher Iostat oben meldet also Werte, die seit dem Systemstart erfasst wurden.

Es ist normaler, iostst mit einem Intervall auszuführen und den ersten Satz Statistiken zu verwerfen, z. B.

iostat 5

Dadurch werden alle 5 Sekunden die relevanten Statistiken gemeldet.

Sobald Sie die richtigen Daten erfassen, können Sie die Situation besser verstehen.


Schauen Sie sich dieoben aufBefehl. Insbesondere wenn Sie ihn mit Berechtigung ausführen und auswählen, dwerden die Festplatten-E/A-Statistiken pro Thread aktiviert.

verwandte Informationen