2017-08-17 76 views
2

我正在使用Grunt文件監視器將現有項目移植到Docker開發容器。源文件被綁定到容器中,Grunt監視文件以進行更改(這可能會進行優化,但我目前的擔心是:只需在Docker中使用當前設置即可)。使用Grunt文件觀察的Docker卷

在Mac上,我遇到了巨大的CPU使用,所以我讀了osxfs的performance tuning guide。該指南提到了cacheddelegated音量模式。

delegated描述說:

: (允許延遲之前在容器上更新顯示在主機)

對於cached

容器的觀點是權威[...]提供委託配置的所有保證,以及圍繞vi的一些額外保證容器執行寫操作的可靠性。因此,緩存通常會提高讀取繁重工作負載的性能,代價是主機和容器之間存在一些暫時的不一致。

相較於設置不cached提高性能?從容器的角度來看,「讀取繁重的工作負載」是什麼?

長話短說:在使用文件監視的開發環境中,減少CPU使用率的最佳設置是什麼? cacheddelegated

回答

1

好吧,所以我做了一些測試,這裏是我的結果。設置:

  • 的MacBook Air 11" ,早期的2014
  • MACOS 10.12.6
  • 多克爾17.06.0-CE-mac19(18663)
  • 手錶任務輪詢〜1000個文件

在主機中吃掉CPU週期的罪魁禍首進程是hyperkitcom.docker.osxfs。以下百分比值是超過五個樣本的中央CPU使用率:

  • delegated:18.7%hyperkit + 0.0%com.docker.osxfs = 18.7%
  • cached:24.3%hyperkit + 0.1%com.docker.osxfs = 24.4%
  • default又名。 consistent:152.0%hyperkit + 68.9%com.docker.osxfs = 220.9%

功能,聰明的我沒有看到任何差別(!)。在容器外更換文件時,三種情況下,手錶幾乎立即都會收到更改。所以我現在要使用delegated模式。

+0

很好的閱讀,因爲我有完全相同的設置,但完全無法讓Grunt觀看任何變化:/我在這個約5小時以來... – MrUpsidown

+1

@MrUpsidown在Mac上這工作超出了-box afair(不管我採取的三種設置中的哪一種......這只是關於CPU使用率優化)。但是,我的Windows同事必須運行一個名爲'docker-volume-watcher'的工具,否則Docker環境中的聰明咕嚕聲根本不會收到任何更改。 – qqilihq

+0

我的Grunt安裝出現問題。現在有了這個固定的,我也使用委託模式(爲Magento 2安裝我的自定義主題文件夾),因爲它絕對是最快的方法。 – MrUpsidown