我做了一个实验,运行一个python应用程序,将2000条记录写入mongoDB。
我的实验设置细节如下:
测试1:本地PC - Python应用程序运行在本地PC与mongoDB在本地PC(基线)测试2:Docker - Python应用程序在Linux容器上与mongoDB在Linux容器上使用持久化卷测试3:Docker - Python应用在Linux容器上,mongoDB在Linux容器上,没有持久化卷
我已经在图表中生成了结果-在本地PC上平均写入数据大约是30秒。在Docker的其他地方,大约需要80多秒。因此,在Docker上写代码比在本地PC上写代码要慢3倍。
我是否想提高mongoDB在docker容器中的写速度或性能,推荐的做法是什么?或者我应该把mongoDB作为一个没有docker的外部卷?
谢谢!
图
- 您的系统在许多方面不一致-动态存储和CPU性能,其他进程,动态系统设置等。有很多底层的东西只在存储下。
- 60秒的测试是不够的
- 简单的操作不足以进行基线比较
- 在容器的情况下,对存储和CPU的性能影响为零,对网络有影响,但我假设,这不适用于这里
- 数据库和数据库管理系统必须以特殊的方式进行优化,不存在"安装即运行"的问题。的方法。我们,系统管理员/数据库管理员通常需要几天的时间才能使它顺利运行。而且,性能会随着时间而变化。
经过几周的测试和故障排除。我终于得到了答案,我将与其他DevOps或任何与我面临相同问题的人分享我的发现
如果需要的话纠正这个说法,Docker容器是在Linux上开始的,微软加入容器的行列很晚,为了让容器工作(在Linux上),DevOps团队需要在Windows上安装Linux WSL2。这就造成了额外的开销,从而影响了处理速度。
因此,为了提高容器的性能速度,应该在Linux操作系统而不是Windows操作系统中进行设置。(是的,速度大大降低)