Statistiken zu / proc / diskstats zeigen immer mehr Schreibvorgänge als Lesevorgänge

1364
Emilio Lazo

Ich habe folgende Werte aus / proc / diskstats entnommen:

9 0 md0 106989 0 _2923830_ 0 117988 0 _3448953_ 0 0 0 0 8 0 sda 33840 22299 _1143351_ 871132 87336 194804 _2003961_ 2201868 0 949992 3075508 8 32 sdc 34326 22412 _1147488_ 530856 85645 193714 _1981641_ 1147288 0 777236 1679364 8 16 sdb 34090 22044 _1145348_ 516996 87908 194091 _2002553_ 1160088 0 777432 1678168 253 0 dm-0 61416 0 _1474562_ 1089052 8671 0 _71664_ 2314824 0 152296 3403896 253 1 dm-1 16733 0 _321034_ 177216 39437 0 _1292056_ 2234284 0 366448 2411516 253 2 dm-2 27407 0 _1103562_ 301084 57436 0 _1918752_ 3595356 0 495024 3896452 253 3 dm-3 1223 0 _22904_ 16800 5373 0 _166481_ 537476 0 101444 554276 

md0 ist ein RAID5-Gerät mit sda3, sdb3 und sdc3. dm-0, dm-1, dm-2 und dm-3 sind /, / home, / var und squid-cache. Kernel 3.17-1-amd64, Debian sid.

Warum werden außer dm-0 immer mehr geschriebene Sektoren als gelesen? (beide hervorgehoben; 8 Stunden Betriebszeit)

Eine andere Maschine (Kernel 3.13.0-42-Generic, LinuxMint 17.1):

8 0 sda 348838 182021 _14285981_ 3994572 2220600 1291157 _179318400_ 150821584 0 6850872 154817944 

Eine andere (Kernel 3.11-1-amd64, Debian Wheezy):

8 16 sdb 5759214 809293 _345212787_ 20363500 6136587 7332680 528239577 _419346280_ 0 34343932 439745468 

Der letzte (RAID1, Kernel 3.2.0-4-amd64, Debian Wheezy):

9 0 md0 18465 0 _765758_ 0 1471467 0 _17892758_ 0 0 0 0 8 0 sda 127945 54619 _15162313_ 1237028 1342374 3413939 _41328777_ 35251952 0 9247532 36501996 8 16 sdb 123240 48371 _14849663_ 1225468 1342456 3413948 _41328777_ 35337212 0 9281520 36573484 

Gibt es wirklich mehr schreibt als liest oder mir fehlt etwas?

1
Auch `/ sys / block / sdx / stat` überprüft? Vielleicht hilfreich https://www.kernel.org/doc/Documentation/iostats.txt Xen2050 vor 9 Jahren 0
/ sys / block / sdx / stat gibt das gleiche an. Ich habe iostats.txt und die Textdatei procfs-diskstats gelesen. Ich betrachte die Felder, in denen die gelesenen und geschriebenen Sektoren vertreten sind. In derselben physischen Einheit, Partition und logischen Einheit sind die geschriebenen Sektoren höher als die gelesenen Sektoren. Das scheint unsinnig zu sein. Dies geschieht auch ohne Verwendung des Systems. Dateisysteme sind ext4 mit 'relatime'. Emilio Lazo vor 9 Jahren 0
Ich versuche, "noatime" zu verwenden, um zusätzliche Schreibvorgänge zu vermeiden ... Xen2050 vor 9 Jahren 0
Ich habe sie vor ein paar Stunden spontan mit "noatime" wieder montiert, und die Zunahme der Lese- / Schreibsektoren war im gleichen Verhältnis. Jetzt werde ich alle beteiligten Dateisysteme mit 'noatime' neu starten und mounten, um sicherzugehen. Später werde ich die Ergebnisse veröffentlichen. Vielen Dank! Emilio Lazo vor 9 Jahren 0

2 Antworten auf die Frage

0
Neosimago

Dies ist ein guter Ort zum Nachlesen:

http://www.linuxquestions.org/questions/suse-novell-60/interpreting-proc-diskstats-360350/

Und für einen md0 RAID1-Spiegel gibt es im Allgemeinen immer mehr Schreibvorgänge, da alle Daten zweimal geschrieben und einmal gelesen werden müssen. Welches Gerät zuerst die Daten liest :)

Dies ist das Konzept der Verwendung eines Spiegels, um die Daten im Falle eines Gerätefehlers zu verteilen.

Prost!

Vielen Dank! aber ich habe es noch gelesen. Wenn md0 RAID1 ist, sind die geschriebenen Sektoren auf beiden physischen Geräten gleich, aber sie sind mehr als die Lesesektoren, die auf demselben Gerät verglichen werden (physisch, partition, md oder logisch dm). Bei RAID5 ist die Situation ähnlich: dm devices zeigt mehr Schreibvorgänge als Lesevorgänge; ihre zugrunde liegenden Geräte (z. B. md0) verhalten sich auf dieselbe Weise (viel mehr Schreibvorgänge), und wiederum verhalten sich auch ihre zugrunde liegenden Geräte (z. B. sda2 und sdb2) und natürlich sd . Ich denke nicht über etwas Wichtiges nach oder ist dies ein Kernel-Fehler? Alle beteiligten Dateisysteme sind ext4 mit relatime oder noatime. Prost. Emilio Lazo vor 9 Jahren 0
0
Xen2050

Man denke nur daran, dass Ihr Festplatten-Lese-Cache (in RAM) sehr gut darin bestehen kann, häufig gelesene Dateien in RAM zu behalten, und nur die Plattenschreibvorgänge belassen, um die Festplatte tatsächlich zu verwenden.

Wenn Sie über viel RAM verfügen und nicht regelmäßig neue Daten von der Festplatte lesen, könnte der RAM-Cache eine Menge potenzieller Festplattenlesevorgänge ersetzen.

Mit der zuvor genannten Mount-Option können Sie noatimeauch zusätzliche Schreibvorgänge vermeiden, wenn Sie nicht " mutt oder andere Anwendungen verwenden, die wissen müssen, ob eine Datei seit der letzten Änderung gelesen wurde. "

Auch bei "noatime" haben wir grundsätzlich dasselbe. Tatsächlich kann ich mit 8 GB jedes Mal feststellen, wie die Verwendung von RAM als Festplatten-Lese-Cache die Leistung wirklich erhöht, daher denke ich, dass dies der Grund ist! Kann der Festplatten-Lese-Cache deaktiviert werden? Wäre hilfreich für mich, um neue Maßnahmen zu ergreifen und zu sehen, wie viel Lesestatistik erhöht wird. Ich habe mir die Optionen von procfs ohne Erfolg angesehen. Ich möchte nicht den gesamten RAM mit einer Datei in einem TMPFS füllen. Vielen Dank!! Emilio Lazo vor 9 Jahren 0
Ich habe über eine Möglichkeit zum Löschen des Festplatten-Caches gelesen, einschließlich des Schreibens von 1-3 in `/ proc / sys / vm / drop_caches`. [Hier beschrieben] (https://www.kernel.org/doc/Documentation/sysctl/ vm.txt) und hat auch "vfs_cache_pressure", aber es klingt nicht nach einem "Ein / Aus" -Schalter ... Ich bin sicher, dass eine Websuche fruchtbar sein wird Xen2050 vor 9 Jahren 0