WebサーバーのリスンオーバーフローはLinuxカーネルのパフォーマンス問題に起因
2025-02-14
WebサーバーをCentOSからUbuntuにアップグレードしたところ、リスンオーバーフローエラーが発生しました。調査の結果、新しく起動したUbuntuホストで、起動後数分以内にシステムCPU使用率が急増し、Webリクエストの処理が遅くなり、その結果リスンオーバーフローが発生することがわかりました。原因は、Linuxカーネルのinode cgroupの切り替え機能でした。多くのファイルの書き込み後、カーネルはinodeをあるcgroupから別のcgroupに移動するのに多くの時間を費やしていました。systemdのioまたはmemoryコントローラーを無効にすることで、この問題は解決しました。CentOSは、Ubuntuのcgroups v2ではなくcgroups v1を使用しているため、影響を受けませんでした。問題を再現するための最小限の再現スクリプトが作成されました。
(dasl.cc)
開発
パフォーマンス問題