Docker の基盤技術: Docker の基盤となる 2 つのコア テクノロジーは、名前空間とコントロール グループです。 名前空間: コンテナ仮想化のコア技術であり、コンテナを分離し、コンテナ間の競合を解決するために使用されます。 これは主に次の 6 つの分離技術によって実現されます。
これら 6 つの項目が分離されている限り、他のシステム リソースが共有されている場合でも、コンピューターはそれらを 2 つの異なるシステムにあると見なします。 cgroup (プログラムのリソース使用量を制御する) cgroup を実装する主な目的は、さまざまなユーザー レベルでのリソース管理のための統一されたインターフェイスを提供することです。単一プロセスのリソース制御からオペレーティング システム レベルでの仮想化まで。 cgroup の役割: 1) リソース制限: cgroup はプロセス グループが使用するリソースの合計量を制限できます。 cgroup の適用: 1) メモリとスワップパーティションの制限: コンテナは物理メモリとスワップの2つの部分から構成されます。 Docker では、パラメータを使用してコンテナ メモリの使用量を制御できます。 -m または --memory: メモリ使用量の制限を設定する --memory-swap: スワップ(スワップパーティション)の使用制限を設定します // CentOS イメージに基づくと、メモリ制限は 200M で、スワップ パーティションのメモリは 300M です。 [root@sqm-docker01 ~]# docker run -it -m 200M --memory-swap 300M centos 制限されたメモリを表示するには、コンテナーに入ります。 [root@05a0be7b870a /]# cat /sys/fs/cgroup/memory/memory.limit_in_bytes 209715200 #バイト数を表示 [root@05a0be7b870a /]# cat /sys/fs/cgroup/memory/memory.memsw.limit_in_bytes 314572800 2) コンテナのCPU制限: コンテナ実験の CPU 重みを設定するには、-c または --cpu-shares を使用します。設定されていない場合、デフォルトは 1024 です。 // CentOS イメージに基づいて、CPU の重み制限が 512 の containerB という名前のコンテナを実行します。 [root@sqm-docker01 ~]# docker run -it --name containerB -c 512 centos [root@b2cf9f28ce1d /]# cat /sys/fs/cgroup/cpu/cpu.shares 512 3) コンテナのブロック io (ディスクの読み取りと書き込み) を制限します。
//testA という名前のコンテナを作成し、1 秒あたりのディスク書き込み量を 30 MB に制限します。 [root@sqm-docker01 ~]# docker run -it --name testA --device-write-bps /dev/sda:30MB centos テスト用のデータを書き込みます:
1秒あたりの書き込み量は80Mで、約26秒かかることがわかります。 通常ディスクに書き込む場合: 以上が今回ご紹介したDocker基盤技術に関するナレッジポイントの全てです。123WORDPRESS.COMをご活用いただき、誠にありがとうございました。 以下もご興味があるかもしれません:
|
<<: JavaScriptエンジンV8の実行プロセスの詳細な説明
Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...
この記事では、参考までにMySQL8.0.11のインストールと設定方法、およびMySQL8.0の新し...
1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...
1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...
MySQL を長い間使用してきた多くの人は、これら 2 つのフィールド属性の概念をまだよく理解して...
Ubuntu 20.04はnetplanを通じてネットワークを管理するため、以前のバージョンとは少...
目次基本的なHTTPリクエストの設定async/await を使用した Axios Axios によ...
シャドウスタイルにおけるフラッターとCSSの対応UIによって指定されたCSSスタイル 幅: 75px...
「開発とは、単にコードを書くだけではない」というのは、3EV の Dan Frost 氏の言葉です。...
[LeetCode] 183.注文しない顧客Web サイトに、Customers テーブルと Or...
Macでデータベースを操作する際に個人が遭遇するデータベース起動の問題の簡単な記録1. Apple-...
序文Ahhang が Springboot プロジェクトを開発していたとき、フロントエンドから検証コ...
この記事では、ファイルのアップロードとダウンロード機能を実装するためのVueの具体的なコードを例とし...
背景アジャイル モデルは広く使用されており、テストは特に重要です。新しいバージョンは頻繁にリリースす...
LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...