LXC CPU.sharesが機能しない

LXC CPU.sharesが機能しない

昨日から、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.sharessrv51dd 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で私が経験した唯一の問題です。必要ないからもう考えない:) 乾杯!

関連情報