在docker容器中运行数据库的性能问题

时间:2016-08-26 11:52:45

标签: mysql database postgresql docker

有没有人注意到在docker容器中运行数据库(MySQL或Postgres)的任何性能问题,我被告知严重的性能下降。

请告知。

2 个答案:

答案 0 :(得分:4)

Docker本身只需要很少的开销,它只是将进程与主机上的其他进程隔离开来。但是,您可以采取许多措施来降低容器的性能:

  1. 在Windows / MacOS中运行它,同时仅为嵌入式VM提供父OS的内存/ CPU的一小部分。
  2. 限制容器内的CPU或内存资源。
  3. 在您的主机上启动大量容器。 Docker并不神奇,如果10个Java实例使用2个ram实例让主机在容器外部爬行,它们将无法在容器内运行得更好。
  4. 网络并发症。默认情况下,每个容器都在隔离的网桥上进行旋转,其中IO可能会花费更长的时间来进行额外的跳跃。如果您的DNS配置不正确,您可能会发现查找失败会造成额外的延迟。
  5. Docker默认不允许直接磁盘访问等裸机要求。您可以授予对特定设备的访问权限,但是否则会故意隔离应用程序的容器化版本。
  6. 卷中的数据可能位于效率较低的位置。默认情况下,它是您的/ var / lib / docker文件系统,但您可以轻松地将其指向NFS安装,其性能会更差。
  7. 配置错误的数据库,例如忘记创建索引。
  8. 简而言之,容器不太可能成为问题本身,但请确保您正在进行苹果与苹果的比较。

答案 1 :(得分:0)

在WinDocks Windows容器中运行SQL Server时,我们看不到性能损失。

容器实例的执行方式与共享主机上的任何SQL Server实例一样。

披露:我是WinDocks的联合创始人