無法理解平均負載 (LA) 高的原因

無法理解平均負載 (LA) 高的原因

我的裸機伺服器具有 32 核心/64 個 CPU 和 64GB RAM。內建 Ubuntu 18.04。使用 python 運行 pgsql(低負載)、約 250 個 docker 容器進行網路工作。 htop 顯示 LA 120(1/5/15 分鐘),但我找不到原因。

  • htop 顯示所有核心的約 50% 負載
  • 獲得 12GB 可用 RAM
  • vnstat -l 顯示網路適配器上的 25% 負載(在雙方摘要中)
  • 頂級秀wa (iowait) 0.0
  • iostat 顯示 HDD 上沒有寫入任何內容,iotop 有時會顯示一秒寫入 10-20Kb/秒的進程。
  • 頂部不顯示紅線。全灰色(好)。
  • “ps -eo stat | grep -c D”和“ps -eo stat | grep -c D”顯示“1”

我想我檢查了所有 - CPU、RAM、HDD、網路。我了解大型 LA 的根源 - 使用 python 的容器。但我想找到優化的瓶頸。在哪裡可以看到高度洛杉磯的原因?

更新:一些額外的。我認為,CPU 的某個地方存在瓶頸,因為如果我在 conrainers 中使用 pypy,LA 就會下降,如果使用簡單的 pyhton - LA 就會增長。但我無法理解,因為 htop 總是顯示 CPU 負載 <100%。

答案1

Linux 平均負載是目前(主動)運行或等待執行的進程數。

您有 250 個 Docker 容器以及系統進程和監控工具。這簡直是一個巨大的過程。這在一定程度上取決於容器內運行的內容以及進程喚醒執行某些操作的頻率。如果你將 Docker 容器的數量減少了 50%,而且平均負載也下降了 50%,那麼罪魁禍首就是你了。

相關內容