用語集:プロセス優先度・cgroups

実務で頻出する「プロセス優先度・cgroups」関連の用語を、一言定義+最小実例でサッと確認。
プロセスに割り当てられるCPU時間の優先度や、cgroupsによるリソース制御を理解し、安定したシステム運用を行えるようにします。

このページで達成できること

  • nice値と優先度の仕組みを理解
  • renice による優先度変更を習得
  • cgroupsによるCPU・メモリ制限を整理
  • 実務での落とし穴(root権限の必要性や制御範囲)を回避

すぐ引けるミニ索引

用語一言で代表コマンド/例
nice値プロセス優先度を表す整数(-20〜19)nice -n 10 cmd
デフォルトnice通常プロセスのnice値は0ps -o pid,ni,cmd
renice実行中プロセスの優先度変更renice 5 -p <PID>
スケジューラCPU実行順を決める仕組みCFS(Linux標準)
cgroups(control groups)プロセスにリソース制御を適用/sys/fs/cgroup
CPU制限プロセスのCPU使用割合を制御cpu.max
メモリ制限メモリ使用上限を設定memory.max
I/O制限ディスク帯域制御io.max
systemd slicecgroupsをsystemd単位で管理systemctl status

用語解説(繰り返しブロック)

nice値(niceness)

とは:プロセスの優先度を表す整数値。範囲は -20(最優先)〜19(最低)。
最小実例

nice -n 10 sleep 100 &
ps -o pid,ni,cmd -p $!

関連:renice / スケジューラ
落とし穴:負のnice値(高優先度)は root 権限が必要。

デフォルトnice

とは:通常のプロセスに割り当てられるnice値は0。
最小実例

ps -o pid,ni,cmd | grep bash

関連:nice値 / CFS
落とし穴:ユーザーごとにnice値の範囲が制限される場合がある。

renice

とは:実行中プロセスのnice値を変更するコマンド。
最小実例

renice 5 -p <PID>

関連:nice / スケジューラ
落とし穴:他ユーザーのプロセスを変更するには root が必要。

スケジューラ(scheduler)

とは:CPU時間をどのプロセスに与えるかを決定する仕組み。LinuxではCFS(Completely Fair Scheduler)が標準。
最小実例

chrt -p <PID>

関連:リアルタイムスケジューラ / nice
落とし穴:リアルタイム優先度は誤設定するとシステム全体が固まる。

cgroups(control groups)

とは:Linuxカーネルの機能で、プロセスグループにCPU・メモリ・I/Oなどのリソース制御を適用できる。
最小実例

# cgroup v2: プロセスを追加
echo <PID> >> /sys/fs/cgroup/mygroup/cgroup.procs

関連:systemd slice / リソース制御
落とし穴:直接操作は複雑。systemd経由で管理する方が安全。

CPU制限(cgroups)

とは:プロセスのCPU使用割合を制御する仕組み。
最小実例

echo "50000 100000" > /sys/fs/cgroup/mygroup/cpu.max

(= CPUの50%に制限)
関連:cgroups / systemd slice
落とし穴:単一コアかマルチコアかで挙動が変わる。

メモリ制限(cgroups)

とは:プロセスのメモリ使用上限を設定。超過すると OOM Killer が発動。
最小実例

echo "256M" > /sys/fs/cgroup/mygroup/memory.max

関連:cgroups / OOM Killer
落とし穴:制限が厳しすぎるとすぐ終了する。

I/O制限(cgroups)

とは:ディスク読み書きの帯域を制御する。
最小実例

echo "8:0 rbps=1048576" > /sys/fs/cgroup/mygroup/io.max

関連:cgroups / blkio
落とし穴:デバイス番号指定が必要で分かりにくい。

systemd slice

とは:systemdがcgroupsを単位管理する仕組み。ユーザーやサービスごとに分離。
最小実例

systemctl status user.slice

関連:cgroups / systemd
落とし穴:サービス単位での制御は便利だが、手動プロセスには適用されない。

運用の現場Tips

  • 優先度調整はniceで:一時的な調整なら nice / renice
  • 恒久的制御はcgroupsで:サービス単位なら systemd 経由が安定
  • CPU制限とメモリ制限を併用して暴走防止
  • 監視と併用:制御値だけでなく top, htop, systemd-cgtop で常時確認

関連リンク(学習ハブ内)

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする