Glusterfs

GlusterFS 直接 I/O 模式

  • June 19, 2016

您能幫我理解 GlusterFS 中的“direct-io-mode”嗎?

我在禁用直接 I/O 模式的情況下獲得了更好的讀取結果——這是否意味著在禁用模式下它正在從記憶體中寫入/讀取——它是系統記憶體還是 GlusterFS 記憶體?推薦的方法是什麼?我正在使用具有分佈式複製卷的 4 個節點進行 Web 服務:

Write: dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
echo 3 > /proc/sys/vm/drop_caches
Read: dd if=tempfile of=/dev/null bs=1M count=1024
Read-Read: dd if=tempfile of=/dev/null bs=1M count=1024

Write           Read            Re-Read
67.5 MB/s       94.9 MB/s       94.6 MB/s   direct-io-mode=enabled
65.8 MB/s       230 MB/s        226 MB/s    direct-io-mode=disabled

經過長時間的搜尋,我找到了這篇文章。它不是 glusterfs 特定的,但它可能有助於更好地理解:簡而言之,直接 i/o 模式禁用作業系統為該掛載點實現的文件緩衝區。

看完之後我得出了這樣的結論:

啟用或禁用可能會為您提供更好的傳輸速率,具體取決於哪個應用程序正在使用您的 glusterfs 卷:如果您使用的是自行處理記憶體的應用程序或數據庫,您將獲得一些提升(因為缺少第二個緩衝區的成本) )。如果您只是進行文件訪問,則可能禁用它會提高您的性能,因為本地文件記憶體導致網路訪問減少。

引用自:https://serverfault.com/questions/517775