Linuxプロセスのリソース使用量を制限する方法
Linuxでのプロセスのリソース使用量を制限するには、リソースタイプに従って適切なツールを選択する必要があります。1。ulimitを使用して、1つのプロセスのメモリ、ファイルサイズ、オープンファイルの数、CPU時間を制限しますが、CPUまたはI/O帯域幅の制限をサポートしていません。 2. CGROUPS(SystemD-Runまたは手動操作を介して)を使用して、最新のシステムに適しており、Dockerなどのコンテナテクノロジーに採用されているCPU、メモリ、I/O帯域幅の細かい制御を実現します。 3.プロセスCPUスケジューリングの優先順位を調整して、システムがビジーである場合にリソースの競争力を低下させるか、CPULIMITを使用してプロセスを動的に停止してCPUの使用を制限します。 4. IONICEを使用してI/Oの優先度を設定し、CGROUPS V2のIO.MAXを組み合わせて、I/O帯域幅の厳しい制限を実装します。要約すると、最も単純なリソース制限ソリューションとして、SystemD-runをCgroupsと組み合わせることをお勧めします。 Ulimitは単純なシナリオに適しており、CPulimitはCPU使用の迅速な制限に適しています。最終的な選択は、システムバージョンと制限的なストリンジェンシー要件に依存します。
Linuxのプロセスのリソース使用(CPU、メモリ、ディスクI/Oなど)を制限する必要がある場合、使用できるいくつかの組み込みツールとメカニズムがあります。最も実用的で広くサポートされている方法は次のとおりです。
1. ulimit
を使用して、プロセスごとのリソースを制限します
ulimit
、そのシェルから開始されたプロセスのリソースの制限を制御するシェルビルドインです。最大メモリ、ファイルサイズ、オープンファイルの数、CPU時間などの制限を設定するのに役立ちます。
一般的な使用法:
#仮想メモリを500 MBに制限します ulimit -v 512000 #CPU時間を60秒に制限します ulimit -t 60 #最大ファイルサイズを10 MBに制限します ulimit -f 10240 #オープンファイル記述子の数を制限します ulimit -n 256
例:
ulimit -v 512000 ./your_program
⚠⚠️注:
ulimit
、現在のシェルと子のプロセスにのみ影響します。 CPUまたはI/O帯域幅の制限をサポートしていません。
2。細粒コントロールのためにcgroups
(コントロールグループ)を使用します
より高度で柔軟なリソースの制限(特にCPUとメモリ)については、 CGROUPSを使用してください。最新のLinuxシステムは、 systemd
介してまたはファイルシステムを介して直接管理されるCgroups V2を使用します。
オプションA: systemd-run
を使用して(1回限りのプロセスで最も簡単)
#プロセスを50%CPUおよび500MBメモリに制限します systemd-run \ - スコープ\ -cpu-quota = 50000%\ --Memory-limit = 500m \ ./your_program
-
--cpu-quota=50000%
1つのCPUコアの50%を意味します(100%= 1フルコア、50000%= 50%)。 -
--memory-limit=500M
が500 MBを超えるとプロセスを殺します。
オプションB:マニュアルCGROUPS V2(その他のコントロール)
cgroupを作成します:
sudo mkdir/sys/fs/cgroup/limited
メモリ制限を設定します:
エコー536870912 | sudo tee /sys/fs/cgroup/limited/memory.max#512 MB
CPU制限を設定します(たとえば、1つのコアの20%):
エコー20000 | sudo tee /sys/fs/cgroup/limited/cpu.max #フォーマット:「最大期間」→「20000 100000」は20%CPUを意味します エコー「20000 100000」| sudo tee /sys/fs/cgroup/limited/cpu.max
CGROUPにプロセスを追加します:
./your_program& echo $! | sudo tee /sys/fs/cgroup/limited/cgroup.procs
この方法は強力であり、Dockerのようなコンテナランタイムで使用されます。
3. CPUコントロールにnice
およびcpulimit
使用します
nice
- プロセススケジューリングの優先順位を調整します
CPUの使用量を制限しませんが、優先度を減らすため、システムがビジーであるときにCPUが少なくなります。
nice -n 19 ./your_program
-
-n 19
最低の優先度です。
cpulimit
- CPUパーセンテージを積極的に制限します
インストール(利用できない場合):
sudo apt install cpulimit#debian/ubuntu
ランニングプロセスを名前またはPIDで制限します。
cpulimit -l 30 -p $(pgrep your_program)
または、制限付きのプロセスを起動します。
cpulimit -l 30 - ./your_program
cpulimit
、SIGSTOP
/SIGCONT
を使用してプロセスを一時停止することで機能するため、完全にスムーズではありませんが効果的です。
4. ionice
を使用したディスクI/Oの制限
ionice
使用してI/Oの優先度を制御します(最善の努力、厳しい制限ではありません)。
#IDLE I/O Priorityで実行する(アイドル時にディスクのみを使用する) Ionice -C 3 ./Your_Program #または低優先度(クラス2、レベル7) IONICE -C 2 -N 7 ./YOUR_Program
ハードI/Oレートの制限については、 io.max
でcgroups v2
を使用します(メモリ/CPU制限に似ています)。
例:
#10 mb/sの読み取り、5 Mb/sの書き込みに制限します echo "rbytes = 10485760 wbytes = 5242880" | sudo tee /sys/fs/cgroup/limited/io.max
概要:どのツールを使用しますか?
リソース | 推奨ツール |
---|---|
メモリ |
systemd-run --memory-limit またはcgroups |
CPU | systemd-run --cpu-quota 、 cgroups 、またはcpulimit
|
ファイルサイズ /オープンファイル | ulimit |
CPU優先度 | nice |
I/o優先度 | ionice |
I/O帯域幅 | cgroups v2 io.max |
ほとんどのユーザーにとって、 CGROUPSを使用したsystemd-run
CPUとメモリを制限する最もクリーンな方法です。スクリプトと簡単なケースでは、 ulimit
で十分です。古いシステムまたはクイックCPUキャップの場合、 cpulimit
が便利です。
基本的に、それはあなたのLinuxバージョンと、制限がどれほど厳格であるかに依存します。
以上がLinuxプロセスのリソース使用量を制限する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Linuxシステムの情報とバージョンを知りたい場合は、次の手順を使用できます。1。LSB_RELEASE-Aを使用して、配布情報を表示します。 2。 /etc /os-releaseファイルを表示して、バージョンの詳細を取得します。 3. uname-rまたはuname-mrsを使用して、カーネルバージョンとシステムアーキテクチャを確認します。 4.ハードウェア情報を取得するには、LSCPU、Free-H、またはDMIDECODE(ルートアクセス許可が必要)を実行します。上記の方法はさまざまな分布に適用でき、一部のコマンドにはインストールまたは許可調整が必要になる場合があります。

cronisusedusedusedusedusedusedulingonalways-ossystems、whileanacronuresuressuressursunsystystemstature n't continuouslylypowered、suthaslaptops;

choosepop!_os、ubuntu、nobaralinux、orarchlinuxforoptimalgamingminimaloverhead.2.installofficialnvidiaproprietarydriversfornvidiagpus、suseup to-datemesaandkernelverversionsionsionsionsionsipuspuspus

Linuxにソフトウェアをインストールする主な方法は3つあります。1。apt、dnf、またはpacmanなどのパッケージマネージャーを使用し、Sudoaptinintallcurlなどのソースを更新した後にインストールコマンドを実行します。 2。.DEBまたは.RPMファイルの場合、DPKGまたはRPMコマンドを使用してインストールし、必要に応じて依存関係を修復します。 3. SnapまたはFlatpakを使用して、バージョンの更新を追求しているユーザーに適したSudosnapInstallソフトウェア名など、プラットフォームにアプリケーションをインストールします。より良い互換性とパフォーマンスのために、システム独自のパッケージマネージャーを使用することをお勧めします。

Linuxは古いハードウェアに適しており、セキュリティが高く、カスタマイズ可能ですが、ソフトウェアの互換性が弱いです。 Windowsソフトウェアはリッチで使いやすいですが、リソースの利用率が高くなっています。 1。パフォーマンスの観点から、Linuxは軽量で効率的で、古いデバイスに適しています。 Windowsには高いハードウェア要件があります。 2。ソフトウェアの観点から、Windowsにはより広い互換性、特にプロフェッショナルなツールやゲームがあります。 Linuxは、ツールを使用してソフトウェアを実行する必要があります。 3。セキュリティの観点から、Linux Permission Managementはより厳しく、更新は便利です。 Windowsは保護されていますが、まだ攻撃に対して脆弱です。 4。使用が難しいという点では、Linux学習曲線は急です。 Windows操作は直感的です。要件に従って選択します。パフォーマンスとセキュリティを備えたLinuxを選択し、互換性と使いやすさのWindowsを選択します。

gitをインストール:サーバーのパッケージマネージャーからgitをインストールし、バージョンを確認します。 2。専用のgitユーザーを作成する:adduserを使用してGitユーザーを作成し、オプションでシェルアクセスを制限します。 3.開発者SSHアクセスを構成:GITユーザーに.SSHディレクトリと承認_Keysファイルを設定し、開発者の公開キーを追加します。 4.ベアリポジトリを作成する:サーバー上のベアリポジトリを初期化し、正しい所有権を設定します。 5.クライアントのクローニングとプッシュ:開発者は、SSHを介してリポジトリをクローニングし、変更を送信し、コードを正常にプッシュしてプライベートGitサーバーの構築を完了します。

raidimprovesstorageperformanceandreliability onlinuxserversurough configurations; raid0offersspeedbutnoredancy; raid1providesmirroringforcriticaldatawith50�pacityloss;
