昨日から、LXCコンテナの問題とコンテナあたりのCPUリソース制限の問題が困難になりました。私の場合、次のコマンドはlxc-cgroup -n srv50 cpu.shares 100
結果を取得しません。コンテナは依然として同じCPUを使用します。
私はCentos 7とLXC 1.0.8を使用しています。私が確認したすべてのマシンは同じ効果を持っていました。設定はcpu.shares
何もしませんでした。
これは私の2コアVMのsystemd-cgtop画面です。
Path Tasks %CPU Memory Input/s Output/s
/ 178 199.7 360.8M - -
/lxc - 198.0 16.8M - -
/lxc/srv51 7 99.8 8.4M - -
/lxc/srv50 7 98.2 8.4M - -
/system.slice/NetworkManager.service 2 - - - -
/system.slice/auditd.service 1 - - - -
コンテナは100にsrv50
設定され、50に設定されます。両方のコンテナがコマンドを実行します。あるコンテナは66%を占め、他のコンテナは133%(または同様のレベル)を占めると予想していましたが、どちらも100%を使用していました。cpu.shares
srv51
dd if=/dev/urandom | bzip2 -9 >> /dev/null
ヒント。どのコンテナが最も多くのCPUを使用しているかを調べようとすると、ツールはhtop
すべてのコンテナが同じcgroupを持っていることを発見しました。:name=systemd:/user.slice/user-0.slice/session-1.scope?
- これが正しいかどうかはわかりません。 - ちょうどこれを発見しました。
メモリ制限は機能しますが、CPUは機能しません。
ちょうどcgroupでテストを終えて、どのプロセスも設定できなかったのでcpu.share
(グループに移動して)一貫性があります。一部のカーネルスイッチが欠落しているようです。
2:私の例にはバグがあります。 2コアマシンで負荷差を確認するには、各コンテナに100%で実行されるプロセスが2つ以上必要です。とにかくこれは問題ではありません。
答え1
はい、この場合の問題はこの機能をテストすることです。期待どおりに動作します。コアが2つの異なるクラウドVMで私が経験した唯一の問題です。必要ないからもう考えない:) 乾杯!