2016-11-16 148 views
0

我有这个问题了,而我不知道如何解决它。我有一个使用应用程序运行PHP + Apache的Docker容器。 MySQL和MongoDB服务器与主机位于同一网络中。所以:可以将接口添加到Docker容器以加速连接?

  • MySQL数据库服务器IP: 192.168.1.98
  • 蒙戈DB服务器IP: 192.168.1.98
  • 主持人: 192.168.1.90

出于某种原因在容器上运行的应用程序与数据库服务器之间的连接速度非常慢,有时需要超过一分钟的时间才能运行长查询。

我可以说这个问题是不是DB服务器,因为运行在同一台服务器上同一应用程序的工作速度快,所以我认为是与网络相关的东西,但我不知道为什么。

任何能给我一些解决这个建议吗?

回答

0

您还没有给出太多信息,但根据你所描述

  1. 最简单的原因,可能是正被在网络上传输的数据量高的东西。即使主机位于同一个网络上,通过网络上的一对机器传输大文件所需的时间也会比从同一主机上复制文件慢得多。

  2. 因为它好像你在同一台主机上同时运行的MongoDB和MySQL数据库,他们可以很容易地相互执行干扰。虽然容器在操作系统级别提供它们之间的隔离,但硬件不会识别容器。当两个容器都尝试使用磁盘时,性能可能会降低。

我在不同的时间遇到​​过这两个问题,尽管看起来很简单,但他们可以对性能产生重大影响。如果你能提供一些额外的信息来帮助你更好地理解你的问题,那将会很好。

+0

*附加*信息,如....?你需要什么?我正在试验时间略有改善,不知道为什么或如何,但我可以看到一切工作更快 – ReynierPM

+0

作为第一步,尝试将mongo db和mysql移动到不同的机器。试着给出具体的数字,说明在不同的机器上执行查询需要多少时间。 之后,尝试在客户端容器上运行wireshark。 (查看https://medium.com/@chughtapan/running-wireshark-on-docker-ac90ebc4907b#.yu18xfpq4)将容器ID更改为您的客户端容器并在主机上执行此代码。运行查询,然后测量客户端和数据库之间传输的流量。一旦我们有了这些数字,我们就可以更好地理解如何改进 –