簡體   English   中英

在docker容器中運行數據庫的性能問題

[英]Performance issues running a database in a docker container

有沒有人注意到在docker容器中運行數據庫(MySQL或Postgres)的任何性能問題,我被告知會出現嚴重的性能下降。

請指教。

Docker本身只需要很少的開銷,它只是將進程與主機上的其他進程隔離開來。 但是,您可以做很多事情來降低容器的性能:

  1. 在Windows / MacOS中運行它,同時僅為嵌入式VM提供父OS的內存/ CPU的一小部分。
  2. 限制容器內的CPU或內存資源。
  3. 在主機上啟動大量容器。 Docker並不神奇,如果每個使用2 gig ram的10個Java實例使主機在容器外部進行爬行,它們將無法在容器內運行得更好。
  4. 網絡並發症。 默認情況下,每個容器都在隔離的網橋上進行旋轉,其中IO可能會花費更長的時間來進行額外的跳躍。 如果您的DNS配置不正確,您可能會發現查找失敗會造成額外的延遲。
  5. Docker中默認不允許直接磁盤訪問等裸機要求。 您可以授予對特定設備的訪問權限,但是應用程序的容器化版本是有意隔離的。
  6. 卷中的數據可能位於效率較低的位置。 默認情況下,它是您的/ var / lib / docker文件系統,但您可以輕松地將其指向NFS安裝,其中性能會更差。
  7. 配置錯誤的數據庫,例如忘記創建索引。

簡而言之,容器不太可能成為問題本身,但請確保您正在進行蘋果與蘋果的比較。

在WinDocks Windows容器中運行SQL Server時,我們看不到性能損失。

容器實例與共享主機上的任何SQL Server實例一樣執行。

披露:我是WinDocks的聯合創始人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM