2013-08-24 47 views
0

我一直在使用blktrace/blkparse最近和有一對夫婦的問題,並希望如果有人能幫助我了:blktrace輸出和塊大小Linux中的塊層

1)塊價值的blkparse輸出數量以扇區(512字節)表示。它是否正確?這是否仍然適用於沒有512字節扇區的SSD?

2)即使我運行提交數據大於1MB塊(使用libaio)的工作負載,此塊數值的值也不會超過2048(1MB)。是否有可以提交給Linux塊層的塊大小限制,以及塊層是否自動將較大的塊分割爲較小的塊?有人可以指向我的內核代碼路徑嗎?

非常感謝。

Terko

回答

0

Blktrace從Linux內核。它參考行業是512 bytes long獲取數據。所以我認爲,無論設備物理扇區大小如何,blktrace都會在512字節扇區中顯示偏移量和大小。

您可以使用dd進行測試以驗證會發生什麼並使用btrace記錄磁盤訪問。例如,

dd if=/dev/something of=/dev/null bs=512 count=1 skip=512 

對於第二個問題,塊層中發生了很多:I/O請求被緩衝,合併,調度。因此,如果內核使用與應用程序中指定的塊大小不同的塊大小訪問磁盤,請不要感到驚訝。