架构师_程序员_码农网

ユーザー名 パスワード取得
会員登録

QQ登录

ワンステップ

検索
閲覧:3577|返信: 5
打印 上一主题 下一主题

DockerがコンテナのCPUやメモリなどのリソースを変更・制限する

[コピーリンク]
への直接リフト跳转到指定楼层
オーナー
要件:dockerコンテナを作成する際、-mパラメータを追加することで、コンテナの最大メモリ使用量を制限することができます。 コンテナがすでに作成されている場合、コンテナのCPU、メモリ、およびその他のリソースを動的に変更して制限するにはどうすればよいですか?

コンテナのメモリ制限の表示

ホスト・コンピューターには8Gのメモリー・スティックがインストールされており、3つのコンテナーが作成されている。このうち、itsvse-redisコンテナーは最大512Mのメモリーを使用するよう制限されており、残りの2つのコンテナーは制限されていない:



出力メッセージフォーマット詳細

[CONTAINER]: コンテナのIDを短いフォーマットで表示します。
[CPU %]:CPUの使用率。
[MEM USAGE / LIMIT]:現在の使用メモリと使用可能な最大メモリを表示します。
[MEM %]:メモリ使用量をパーセント形式で表示します。
[NET I/O]: ネットワーク I/O データ。
[BLOCK I/O]: ディスクI/Oデータ。
[PIDS]: PID番号。

Docker updateコマンド

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

OPTIONS 説明

コンテナ名
説明
--blkio-weight
ブロックIO(相対重み)、10〜1000の間、0は無効を意味する(デフォルトは無効)。
--cpu-period
CPU CFS (Completely Fair Scheduler) の期間を制限する。
--cpu-quota
CPU CFS(Completely Fair Scheduler)のクォータを制限する。
--cpu-rt-period
API 1.25+ で CPU リアルタイムをマイクロ秒単位に制限する。
--cpu-rt-runtime
API 1.25+で、CPUリアルタイム・ランタイムをマイクロ秒に制限する。
-cpu-shares、-c
CPUシェア(相対ウェイト)
-cpus
API 1.29+、CPU数
--cpuset-cpus
実行可能なCPU (0-3, 0,1)
--cpuset-mem
実行を許可するMEM (0-3, 0,1)
--kernel-memory
カーネル・メモリの上限
--メモリスワップ
メモリ+スワップに等しいスワップ制限、"-1 "で無制限スワップが有効になる
--memory-reservatio
メモリのソフトリミット
--メモリ、-m
メモリ制限
-pids-リミット
API 1.40+ でコンテナの pids 制限を調整する (-1 は制限なしを意味する)
--restart
コンテナ終了時に適用する再起動ポリシー

ドキュメント: https://docs.docker.com/engine/reference/commandline/update/

php5-fpm コンテナが最大 1024M (1G) のメモリを使用するように制限されているとすると、 コマンドは次のようになる:



(終了)




前の記事:HTML5 PostMessageのクロスウィンドウ通信
次の記事:[转一篇]一句Task.Resultのデッドロック、このコードはまだどのように書くか?
收藏转播分享コレクション0放送
コード農家のネットワークは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
uggのブーツ
楼主| 发表于2022-8-6 13:58:43只看该作者
メモリスワップ(-memory-swap)パラメータを設定しないと、エラーが発生することがあります:

Error response from daemon: Cannot update container ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: Memory limit should be smaller than already set memoryswap limit.メモリスワップリミットより小さいはずなので、同時にメモリスワップも更新してください。
コード農家のネットワークは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
uggのブーツ販売
ベンチ
楼主| 发表于2022-8-6 14:31:57只看该作者
|にできるようにあなたがそれをすることができます本当に出くわすことあなたは、実際には私たち約束、誰でも素早くはちょうど無視これらの一見正確にどのように{}人のことを忘れることができます。
https://www.itsvse.com/thread-10260-1-1.html
コード農家ネットワーク、唯一の練習の過程で公開、技術的な困難に遭遇した、他の人を誤解させないでください。
uggブーツ 販売
发表于2022-8-6 15:52:44|只看该作者
|にできるようにあなたがそれをすることができます本当に出くわすことあなたは、実際には私たち約束、誰でも素早くはちょうど無視これらの一見正確にどのように{}人のことを忘れることができます。
コード農家ネットワーク、唯一の練習の過程で公開、技術的な困難に遭遇した、他の人を誤解させないでください。
5#
楼主| 发表于2023-7-1 21:46:50只看该作者
Dockerのメモリ、CPU、GPUのランタイムオプション: https://docs.docker.com/config/containers/resource_constraints/

-メモリスワップの詳細

-memory-swapは修飾フラグで、-memoryもセットしている場合にのみ意味を持ちます。use-swapは、コンテナが利用可能なRAMをすべて使い果たした場合に、過剰なメモリ要件をディスクに書き込むことを可能にします。頻繁にメモリをディスクにスワップするアプリケーションでは、パフォーマンスが低下する可能性がある。

この設定は、複雑な効果をもたらす可能性がある:

memory-swapが正の整数に設定されている場合、-memory-swapが設定されている必要がある。-memory-swapは使用可能なメモリーとスワップ領域の合計量を示し、-memoryはスワップ領域以外のメモリーの使用量を制御する。したがって、-memory="300m" かつ --memory-swap="1g" の場合、コンテナは 300m のメモリと 700m(1g - 300m)のスワップ領域を使用できる

-memory-swap="0 "に設定すると、設定は無視され、未設定とみなされる。

-memory-swapに-memoryと同じ値を設定し、-memoryに正の整数を設定した場合、コンテナはスワップにアクセスできない

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

明示的に --memory-swap を -1 に設定すると、コンテナは、ホスト・システムで利用可能な量まで、無制限にスワップを使用できる。

コンテナ内部では、free などのツールは、コンテナ内で利用可能なスワップではなく、ホストで利用可能なスワップを報告する。交換が存在するかどうかを判断するために、freeや同様のツールの出力に依存しないでください。
コーダーは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
6#
楼主| 发表于2024-2-16 04:07:22只看该作者

-memory-swapが設定されておらず、-memoryが値を設定する場合、-memory-swapのデフォルトでは、-memoryと同じメモリを使用できる。--最終的には、コンテナは2G(-memory 1G + --memory-swap 1G)のメモリを使用できる。

つまり、-memory が設定されている場合、-memory-swap はメモリの総量制限と解釈でき、使用可能なスワップ領域は memory-swap からメモリの値を引いた値に等しい。

コンテナの --memory-swap 設定を表示するには、以下のコマンドを使用する:



"Memory": 536870912, // 512M=536870912/1024/1024/1024/1024
"MemoryReservation": 0, // 512M=536870912/1024/1024/1024
"MemorySwap": 1073741824, // 1G=1073741824/1024/1024/1024
"MemorySwappiness": null, // 1G=1073741824/1024/1024/1024/1024

上記のコンフィギュレーションは、コンテナでメモリを --memory=512M に制限し、-memory-swap をアンセットしたものである。
コードファーマーネットワークは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
投稿するにはログインが必要です ログイン会員登録

このバージョンのインテグラルルール


免責事項:Code Farmerによって公開されたすべてのソフトウェア、プログラミング教材や記事は、学習と研究の目的のみに使用するために制限されています。上記のコンテンツは、商業的または違法な目的のために使用してはならない、そうでなければ、すべての結果は、ユーザー自身が負担するものとします。本サイトはネットワークからの情報であり、著作権紛争は本サイトとは関係ありません。上記のコンテンツはダウンロード後24時間以内にコンピュータから完全に削除する必要があります。もしあなたがこのプログラムを気に入ったら、正規のソフトウェアをサポートし、登録を購入し、より良い正規のサービスを受けてください。もし著作権侵害があれば、メールでご連絡ください。

メール To:help@itsvse.com

QQ|( 鲁ICP备14021824 号-2)|サイトマップ

GMT+8, 2024-9-19 04:56

クイック返信トップに戻る一覧に戻る