linux cifs windows 慢,windows上使用dockerIO特别慢有没有更优的解决方案?
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                linux cifs windows 慢,windows上使用dockerIO特别慢有没有更优的解决方案?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                復制一個大佬的回答
Docker for Windows是在Hyper-V虛擬機上跑Linux,文件掛載是通過SMB協議從Windows掛載到Linux,文件讀寫都經過網絡,遇到Laravel這種每次啟動就要加載幾百個文件的框架,文件性能問題就尤其明顯。
最好的驗證方法就是進到容器里,strace一下php-fpm進程,看下系統調用的耗時,你就會發現大部分時間都是在stat或read,所以解決的思路就是減少網絡文件系統的讀寫。
方案0: 開opcache,減少read調用
方案1:不使用SMB協議掛載文件,通過union、rsync之類的工具同步文件修改。
方案2: 用WSL2
方案3:修改cifs內核模塊,單獨加大vendor目錄的緩存時間,因為vendor目錄下的文件很少變更,加大文件信息的緩存時間可以減少大量網絡調用。加上方案0,響應時間從1秒減少到0.1秒。(現在我就在用這個方案,自己在Hyper-V跑Arch Linux + 修改過的cifs模塊化 + docker)
Github有相關的討論:Shared Volumes Slow ,基本都是方案0-2。
總結
以上是生活随笔為你收集整理的linux cifs windows 慢,windows上使用dockerIO特别慢有没有更优的解决方案?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 010 使用list和tuple
- 下一篇: Java中回调函数详解
