在大多数Ubuntu系统上,Docker的默认文件系统是AUFS.
别用它,用Overlay吧,下来我告诉你为什么。
首先,补充一下背景,我在POWER服务器上测试基础的LAMP环境的性能(LAMP代表Linux+Apache+MySQL/MariaDB+PHP)。为了能做更可靠和重复性的测试,我在Docker容器里构建了这个环境。
每次测试会下载Apache , MariaDB和PHP的源码并且编译。这个过程应该很快,我使用的POWER 8服务器有160个硬线程以及128GB内存,但是我发现构建的速度和一个BlueMix云上的2核Intel虚拟机一样。
为什么?我第一件事就是在top
下观察编译的过程。top
的头部信息是以下这样:
显示超过70%的CPU时间都花在内核上了?那样非常奇怪,我们深入研究一下。
接下来我想到的是使用perf
来分析CPU的负载细节。perf top
结果显示说大量的时间花费在自旋锁上:
perf