Glusterfs
GlusterFS 直接 I/O 模式
您能幫我理解 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 卷:如果您使用的是自行處理記憶體的應用程序或數據庫,您將獲得一些提升(因為缺少第二個緩衝區的成本) )。如果您只是進行文件訪問,則可能禁用它會提高您的性能,因為本地文件記憶體導致網路訪問減少。