2016-11-16 74 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更改爲您的客戶端容器並在主機上執行此代碼。運行查詢,然後測量客戶端和數據庫之間傳輸的流量。一旦我們有了這些數字,我們就可以更好地理解如何改進 –

相關問題