Linux
測試生產硬硬/調試高 I/O 負載
我最近在這台伺服器上得到了很多高負載,所以對於這個系統上的東西很少。似乎只是使用磁碟的最簡單的東西,比如 YUM 更新,當它執行在 1 以下時,它會在 10LA 中很好地使驅動器尖峰。
這可能是一個壞驅動器?
iostat -xdk 1 50 http://pastebin.com/hRxY50FC
出現問題時,您可以發布 iostat -xdk 1 50 嗎?請參閱 iostat 的手冊頁,了解您可以使用哪些開關來列出分區名稱)。將它與同時獲取的頂部 poutput 一起粘貼。
好的,所以當您的磁碟在您的工作負載中的某些時間似乎變得過於負載時。
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 85.00 5.00 249.00 11.00 6040.00 64.00 46.95 10.73 44.23 3.85 100.00 sda 3.00 0.00 275.00 0.00 7764.00 0.00 56.47 7.63 23.27 3.64 100.00 sda 125.00 29.00 221.00 3.00 5508.00 128.00 50.32 7.49 41.08 4.46 100.00 sda 14.00 65.00 224.00 28.00 5940.00 372.00 50.10 1.97 8.05 3.52 88.80
與其他迭代相比,讀取請求有時會變得過大。然後等待增加。但是,avgqu-sz 中記錄的平均隊列大小仍然很低。這意味著,大部分等待時間都花在了儲存為請求提供服務時。它不在 linux 端,我的意思是不在調度器端。
粗略地說,有兩個隊列。一個在調度程序中,另一個在硬體端。等待時間是根據每個 IO 從它命中 IO 調度程序到它被儲存(即磁碟)提供服務的時間來測量的。avgqu-sz 是 IO 調度程序和儲存 lun 隊列中包含的平均 IO 數。如果 avgqu-sz 遠小於儲存的隊列深度,則意味著在調度程序隊列中花費的時間很少。調度程序會將這些 IO 傳遞給儲存,直到它們被儲存提供服務,等待時間將不斷增加。
長話短說,在我看來,在特定時間,儲存變得緩慢,從而增加了延遲。