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

a3k*_*tik 3 mysql database postgresql docker

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

请指教。

BMi*_*tch 5

Docker 本身的开销很小,它只是将进程与主机上的其他进程隔离开来。但是,您可以做很多事情来降低容器的性能:

  1. 在 Windows/MacOS 中运行它,同时只为嵌入式 VM 提供父操作系统内存/CPU 的一小部分。
  2. 限制容器内的 CPU 或内存资源。
  3. 在您的主机上启动大量容器。Docker 不是魔术,如果 10 个 Java 实例每个使用 2 g ram 使主机在容器外爬行,它们在容器内运行将不会更好。
  4. 网络并发症。默认情况下,每个容器都在隔离的网桥上启动,其中 IO 可能会因额外的跃点而花费更长的时间。如果您的 DNS 配置不正确,您可能会因失败的查找而看到额外的延迟。
  5. 默认情况下,Docker 中不允许直接访问磁盘等裸机要求。您可以授予对特定设备的访问权限,但否则会有意隔离应用程序的容器化版本。
  6. 卷中的数据可能驻留在效率较低的位置。默认情况下,它是您的 /var/lib/docker 文件系统,但您可以轻松地将其指向性能更差的 NFS 挂载。
  7. 错误配置的数据库,例如忘记创建索引。

简而言之,容器本身不太可能是问题,但请确保您进行的是苹果与苹果的比较。