実務で頻出する「プロセス優先度・cgroups」関連の用語を、一言定義+最小実例でサッと確認。
プロセスに割り当てられるCPU時間の優先度や、cgroupsによるリソース制御を理解し、安定したシステム運用を行えるようにします。
このページで達成できること
- nice値と優先度の仕組みを理解
reniceによる優先度変更を習得- cgroupsによるCPU・メモリ制限を整理
- 実務での落とし穴(root権限の必要性や制御範囲)を回避
すぐ引けるミニ索引
| 用語 | 一言で | 代表コマンド/例 |
|---|---|---|
| nice値 | プロセス優先度を表す整数(-20〜19) | nice -n 10 cmd |
| デフォルトnice | 通常プロセスのnice値は0 | ps -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 slice | cgroupsを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で常時確認

