Docker 啟用全新功能,文件共享時間大幅減少 98%
近日 Docker 更新了 macOS 端的桌面應用,在新版本中引入了一項名為 VirtioFS 的實驗性功能,根據(jù)官方介紹,開啟這項功能后可以使文件共享所花費的時間大幅減少 98%。
要了解這個功能為何帶來了大幅的性能提升,還得先了解常見的開發(fā)者工作流程。開發(fā)者在使用 Symfony 或 React 等技術時,常見的工作流程是編輯位于 macOS 主機上的源代碼,同時在 Docker 容器中運行應用程序本身,源代碼通過使用 Docker 數(shù)據(jù)卷在主機和容器之間共享。
因此對位于主機系統(tǒng)上的文件所做的修改必須快速、可靠地同步到容器文件系統(tǒng)中。當考慮到現(xiàn)代依賴項管理可以很容易地將數(shù)以萬計的文件帶入一個項目時,文件共享性能的優(yōu)劣將影響整個系統(tǒng)性能的發(fā)揮,而目前默認所采用的 gRPC-FUSE 就會導致性能不佳。
最近 Docker Desktop for Mac 的變化,尤其是新增了對 VirtioFS 的支持能夠緩解了這個問題,給文件系統(tǒng)性能帶來了巨大的改善。具體來說,在 Docker Desktop 4.6 上啟用 VirtioFS 之后,開發(fā)人員在測試中得出了以下結果:
- 完成 MariaDB 導入所需的時間縮短了 98% (從 33 分鐘降低至 42 秒)
- 完成 284MB 的 MySQL 導入所需的時間縮短了 90%(從 3 分 16 秒降低至 18 秒);
- 在一個大型代碼庫中運行 composer install 所需的時間縮短了 87%(從 1 分 27 秒降低至 11 秒);
- 啟動一個單體 Typescript 應用程序的時間縮短了 80%(從1 分 30 秒降低至 18 秒);
新版本的這個變化使完成文件系統(tǒng)操作的時間最高縮短了 98%,對于開發(fā)者來說,速度上的大幅提升意味著減少了等待文件系統(tǒng)操作完成的時間(或建立特定于項目的特殊方法來提高性能),而有更多的時間專注于項目的開發(fā)。
如何啟用 VirtioFS
注:VirtioFS 僅適用于使用以下 macOS 版本的用戶
- macOS 12.2 及以上版本(M1 系列處理器)
- macOS 12.3 及以上版本(英特爾處理器)
在 Docker Desktop 中啟用 VirtioFS:
- 將 Docker Desktop 升級至 4.6 版本,可在此下載;
- 導航到 “偏好” > “實驗性功能”
- 選擇 "啟用 VirtioFS 加速的目錄共享" 選項
- 點擊 "應用和重啟" 即可;
VirtioFS 目前還處于實驗性階段,因此在使用過程中難免會遇到一些問題,用戶可以將發(fā)現(xiàn)的任何問題上報至 Docker Mac 文件系統(tǒng)性能線程中。目前一個已知的問題就是啟用了 VirtioFS 的容器在運行時可能會因權限錯誤而失敗。
本文轉自OSCHINA
本文標題:Docker 啟用全新功能,文件共享時間大幅減少 98%
本文地址:https://www.oschina.net/news/187169/docker-virtiofs