Docker volume with Grunt file watch
Docker volume with Grunt file watch
我正在将带有 Grunt 文件监视的现有项目移植到 Docker 开发容器。源文件被绑定安装到容器中,Grunt 监视文件的变化(这可能会被优化,但我目前关心的是:简单地让当前设置在 Docker 内工作)。
在 Mac 上,我遇到了巨大的 CPU 使用情况,所以我阅读了 osxfs 的 performance tuning guide。该指南提到了 cached
和 delegated
音量模式。
delegated
的描述是:
the container’s view is authoritative
(permit delays before updates on the container appear in the host)
对于cached
:
[…] provides all the guarantees of the delegated configuration, and some additional guarantees around the visibility of writes performed by containers. As such, cached typically improves the performance of read-heavy workloads, at the cost of some temporary inconsistency between the host and the container.
与相比,哪个设置cached
提高了性能? "read-heavy workloads"是从容器的角度看的吗?
长话短说:对于使用文件监视的开发环境,减少 CPU 使用的最佳设置是什么? cached
或 delegated
?
好的,我做了一些测试,这是我的结果。设置:
- MacBook Air 11”,2014 年初
- macOS 10.12.6
- Docker 17.06.0-ce-mac19 (18663)
- 观看约 1,000 个文件的任务轮询
占用主机中 CPU 个周期的罪魁祸首进程是 hyperkit
和 com.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
模式。
我正在将带有 Grunt 文件监视的现有项目移植到 Docker 开发容器。源文件被绑定安装到容器中,Grunt 监视文件的变化(这可能会被优化,但我目前关心的是:简单地让当前设置在 Docker 内工作)。
在 Mac 上,我遇到了巨大的 CPU 使用情况,所以我阅读了 osxfs 的 performance tuning guide。该指南提到了 cached
和 delegated
音量模式。
delegated
的描述是:
the container’s view is authoritative (permit delays before updates on the container appear in the host)
对于cached
:
[…] provides all the guarantees of the delegated configuration, and some additional guarantees around the visibility of writes performed by containers. As such, cached typically improves the performance of read-heavy workloads, at the cost of some temporary inconsistency between the host and the container.
与相比,哪个设置cached
提高了性能? "read-heavy workloads"是从容器的角度看的吗?
长话短说:对于使用文件监视的开发环境,减少 CPU 使用的最佳设置是什么? cached
或 delegated
?
好的,我做了一些测试,这是我的结果。设置:
- MacBook Air 11”,2014 年初
- macOS 10.12.6
- Docker 17.06.0-ce-mac19 (18663)
- 观看约 1,000 个文件的任务轮询
占用主机中 CPU 个周期的罪魁祸首进程是 hyperkit
和 com.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
模式。