目次
2。細粒コントロールのためにcgroups (コントロールグループ)を使用します
オプションA: systemd-runを使用して(1回限りのプロセスで最も簡単)
オプションB:マニュアルCGROUPS V2(その他のコントロール)
3. CPUコントロールにniceおよびcpulimit使用します
nice - プロセススケジューリングの優先順位を調整します
cpulimit - CPUパーセンテージを積極的に制限します
4. ioniceを使用したディスクI/Oの制限
概要:どのツールを使用しますか?
ホームページ システムチュートリアル Linux Linuxプロセスのリソース使用量を制限する方法

Linuxプロセスのリソース使用量を制限する方法

Aug 16, 2025 pm 02:29 PM

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プロセスのリソース使用量を制限する方法

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(その他のコントロール)

  1. cgroupを作成します:

     sudo mkdir/sys/fs/cgroup/limited
  2. メモリ制限を設定します:

    エコー536870912 | sudo tee /sys/fs/cgroup/limited/memory.max#512 MB
  3. 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
  4. 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

cpulimitSIGSTOP / 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.maxcgroups 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-quotacgroups 、またはcpulimit
ファイルサイズ /オープンファイル ulimit
CPU優先度 nice
I/o優先度 ionice
I/O帯域幅 cgroups v2 io.max

ほとんどのユーザーにとって、 CGROUPSを使用したsystemd-run CPUとメモリを制限する最もクリーンな方法です。スクリプトと簡単なケースでは、 ulimitで十分です。古いシステムまたはクイックCPUキャップの場合、 cpulimitが便利です。

基本的に、それはあなたのLinuxバージョンと、制限がどれほど厳格であるかに依存します。

以上がLinuxプロセスのリソース使用量を制限する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ホットトピック

Linuxシステムの情報とバージョンを確認する方法は? Linuxシステムの情報とバージョンを確認する方法は? Jul 26, 2025 am 02:59 AM

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

CronとAnacronでLinuxのタスクをスケジュールする方法 CronとAnacronでLinuxのタスクをスケジュールする方法 Aug 01, 2025 am 06:11 AM

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

Linuxでの高性能ゲームの究極のガイド Linuxでの高性能ゲームの究極のガイド Aug 03, 2025 am 05:51 AM

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

端末を使用してLinuxにソフトウェアをインストールする方法は? 端末を使用してLinuxにソフトウェアをインストールする方法は? Aug 02, 2025 pm 12:58 PM

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

Linux対Windowsの主な長所と短所は何ですか? Linux対Windowsの主な長所と短所は何ですか? Aug 03, 2025 am 02:56 AM

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

NTPを使用したLinuxの時間同期の重要性 NTPを使用したLinuxの時間同期の重要性 Aug 01, 2025 am 06:00 AM

タイムインクロニゼーションは、システムを解放する可能性とセキュリティを検討してください

LinuxマシンでGitサーバーをセットアップします LinuxマシンでGitサーバーをセットアップします Jul 28, 2025 am 02:47 AM

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

LinuxサーバーでのRAID構成の理解 LinuxサーバーでのRAID構成の理解 Aug 05, 2025 am 11:50 AM

raidimprovesstorageperformanceandreliability onlinuxserversurough configurations; raid0offersspeedbutnoredancy; raid1providesmirroringforcriticaldatawith50�pacityloss;

See all articles