「CPU 시간을 어떻게 분배할지」 결정하는 게 우선순위.
모든 프로세스는 「nice 값」(-20~+19)을 가지고, 낮을수록 우선순위 높음.
「착할수록」(높은 값) CPU 양보.
nice 명령.
nice -n 10 ./long_task — nice 10으로 시작(낮은 우선순위, 다른 프로세스 양보).
백그라운드 빌드·인코딩 같은 「급하지 않은 무거운 작업」에 자주.
음수 nice — 우선순위 높이기.
nice -n -10 ./important — root만 가능.
일반 사용자는 0~19만(낮추기만).
시스템 데몬·실시간 작업에서.
renice — 실행 중인 프로세스.
sudo renice 10 -p 1234 — PID 1234를 nice 10으로.
top 안에서 r 키로도 가능.
「이미 실행 중인데 너무 무거우면」 우선순위 낮춰 다른 작업에 양보.
ionice — 디스크 IO 우선순위.
nice는 CPU만, ionice는 디스크 IO.
ionice -c 3 ./backup — "idle" 클래스, 다른 디스크 작업 없을 때만.
백업·인덱싱 같은 무거운 IO 작업에.
CPU·IO 둘 다 낮춰 「시스템 사용에 영향 안 주는」 백그라운드 작업 만들 수 있음.
한 줄 요약
nice는 -20~+19, 낮을수록 우선순위 높음.
nice -n 10으로 낮은 우선순위 시작, 음수는 root만.
renice로 실행 중 변경.
ionice로 디스크 IO 우선순위.
무거운 백그라운드 작업에.
더 알아볼 것
- scheduler — CFS·realtime
- cgroups로 자원 제한
- systemd CPUWeight·MemoryHigh