この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 7160|答える: 5

DockerはコンテナのCPU、メモリ、その他のリソースを変更・制限します

[リンクをコピー]
掲載地 2022/08/06 13:55:37 | | | |
要件:Dockerコンテナを作成する際には、-mパラメータを追加することでコンテナの最大メモリ使用量を制限できます。

コンテナメモリ制限のレビュー

ホストマシンは8Gメモリースティックをインストールし、3つのコンテナを作成します。そのうちitsvse-redisコンテナの最大メモリは512Mに制限され、残りの2つのコンテナは制限されていません。以下の図に示されています。



出力情報フォーマットの詳細な説明

[CONTAINER]:コンテナのIDを短縮形で表示します。
CPU使用率:CPU使用率。
[メモリ使用量/制限]:現在使用されているメモリと最大使用可能なメモリ。
[MEM %]:メモリ使用率をパーセンテージで表示します。
[NET I/O]: ネットワークI/Oデータ。
[BLOCK I/O]: ディスクI/Oデータ。
[PIDS]:P ID番号。

Docker updateコマンド

docker updateコマンドはコンテナの設定を動的に更新します。 このコマンドを使って、コンテナがDockerホストから過剰に多くのリソースを消費するのを防ぐことができます。 単一のコマンドで、1つのコンテナまたは複数のコンテナに制限を設定できます。 複数のコンテナを指定するには、コンテナ名やIDのリストをスペースで区切ってください。

オプションの説明

名前
形容
--ブラックウェイト
IO(相対重み)をブロックし、10から1000の間で0は無効化(デフォルトは抑制)
--CPU時代
CPU CFS(Totally Fair Scheduler)の持続時間を制限する
--CPU-クォータ
CPU CFS(完全公正スケジューラ)のクォータを制限する
--CPU-RTの期間
API 1.25+は、CPUのリアルタイム時間をマイクロ秒に制限します
--CPU-RT-ランタイム
API 1.25+は、CPUのリアルタイムランタイムをマイクロ秒に制限します
--CPU-shares, -c
CPUシェア(相対的な重み)
--CPU
API 1.29+、CPU数
--cpuset-cpus
許可CPU(0-3,0,1)
--cpuset-mem
許可されたMEM(0-3,0,1)
--カーネルメモリ
カーネルメモリの制限
--メモリスワップ
スワップの上限はメモリとスワップの合計で、「-1」で無制限スワップが可能になります
--メモリー・リザーバティオ
メモリソフトリミット
--メモリ、-m
メモリ制限
--ピッズリミット
API 1.40+、コンテナPIDの制限を調整(-1は無制限)
--再起動
コンテナが終了したときにポリシーを再起動して適用してください

ドキュメンテーション:ハイパーリンクのログインが見えます。

php5-fpmコンテナを制限するとします最大メモリ使用量:1024M(1G)、命令は以下の通りです:



(終わり)




先の:HTML5 PostMessage クロスウィンドウ通信
次に:[ターン] 文のタスク。結果はロックされます。他にどうやってこのコードを書くのですか?
 地主| 掲載地 2022/08/06 13:58:43 |
--memory-swapパラメータを設定しないとエラーが出るかもしれません:

デーモンからのエラー応答:コンテナae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3:メモリ制限は既に設定されたメモリスワップ制限より小さいはずです。 同時にメモリスワップを更新する
 地主| 掲載地 2022/08/06 14:31:57 |
Linuxはlookbusyを使ってCPU使用量をシミュレートしています
https://www.itsvse.com/thread-10260-1-1.html
掲載地 2022/08/06 15:52:44 |
学ぶために
 地主| 掲載地 2023/07/01 21:46:50 |
Dockerメモリ、CPU、GPUのランタイムオプション:ハイパーリンクのログインが見えます。

--メモリスワップの詳細

--memory-swapは、--memoryも設定されている場合にしか意味をなさない修飾フラグです。 コンテナが利用可能なRAMをすべて使い切った場合、スワップを使うことで余剰メモリ要件をディスクに書き込むことができます。 頻繁にメモリをディスクにスワップするアプリケーションでは、パフォーマンスが低下します。

その設定は複雑な影響を及ぼすことがあります:

もし --memory-swap が正の整数に設定されている場合、両方の --memory は --memory swap に設定されなければなりません。 --メモリ-スワップは使用可能なメモリおよびスワップゾーンの総量を表し、--メモリは非スワップゾーンで使用されるメモリ量を制御します。 そこで--memory="300m"および--memory-swap="1g"の場合、コンテナは300mメモリと700m(1g - 300m)のスペースを交換できます。

--memory-swapが0に設定されている場合、その設定は無視され、値は未設定とみなされます。

--memory-swapが--memoryと同じ値に設定され、--memoryが正の整数に設定されている場合、コンテナはスワップにアクセスできません。 「コンテナがスワップを使うことを防ぐ」を参照してください。

--memory-swapが設定されておらず--memoryが設定されている場合、ホストコンテナがスワップメモリで設定されている場合、コンテナは設定されただけのスワップ--メモリを使用できます。 例えば、--memory="300m"と--memory-swapが設定されていない場合、コンテナは合計600mのメモリとスワップ空間を使用できます。

--memory-swapが明示的に-1に設定されている場合、コンテナはホストシステムで利用可能な回数まで無制限のスワップを使用できます。

コンテナ内では、無料のツールなどのツールがホストの利用可能な交換を報告し、コンテナ内で利用可能な交換を報告するのではなく、 無料や類似のツールの出力だけで取引所が存在するかどうかを判断しないでください。
 地主| 掲載地 2024/02/16 4:07:22 |

--メモリスワップが設定されていない場合,--メモリは次の値に設定されます。--memory-swapのデフォルトは---memoryと同じメモリを使用できます例えば、メモリスワップ=1Gと,--した場合、1Gのスワップ空間を使い、最後にコンテナは2Gのメモリ(--メモリ1G空間+--メモリスワップ1G空間)を使用できます。

つまり、--メモリが設定された場合,--メモリスワップは総メモリの上限として理解でき、利用可能なスワップ空間はメモリスワップの値からメモリを引いた値に等しいということです。

コンテナの--memory-swap設定を次のコマンドで確認してください:



「メモリ」:536870912、// 512M=536870912/1024/1024/1024
「メモリーリザベーション」:0、
「メモリスワップ」:1073741824、// 1G=1073741824/1024/1024/1024
「メモリスワップネス」:null、

上記の構成は、コンテナがメモリを制限し、--memory-swapが設定されていないというものです。
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com