Network-Share

如何通過網路加速記憶體映射文件?

  • August 27, 2011

在 SMB 文件共享上映射文件的記憶體會導致在呼叫返回之前將其全部傳輸。對於大文件,這會導致應用程序長時間鎖定。我該如何解決?

“使用 X 而不是 SMB”是一個有效的答案。

編輯:任何應用程序,任何文件。我不是想解決一個特定的案例。記憶體映射文件是一種打開文件的方式,以便它在應用程序中顯示為工作記憶體的一部分——您可以像訪問數組一樣訪問文件。

這是作業系統實現的工件,mmap與使用的網路協議無關(儘管我喜歡在 SMB 上胡扯…)。SMB 不僅能夠從文件中讀取隨機塊,因此沒有理由在請求時無法讀取塊。我目前沒有可訪問的 SMB 伺服器來驗證它,但我確實有一個 NFS 伺服器,我只是嘗試了mmap一個 1.7GB 的文件,它立即返回,所以至少它肯定不是一些固有的mmap 概念的局限性。

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