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