Kodama's home / tips.
CPU の不足と考えて, 割り当てる仮想CPU数を増やすと, より状況が悪化してしまう. CPU を増やすことで, SMP 管理のためのコストが増え, 応答性が悪くなる. カーネルのタイマー割り込みが 1000×(CPU数+1)回/秒 であるため.
例: カーネル オプションの例. kernel /vmlinuz ro root=/dev/sda1 ro divider=10 clocksource=acpi_pm clock=pit nosmp noapic nolapic
割り込み処理に能力を食われるので, 処理効率とタスク切替えのトレードオフになるが, 最近のCPUの処理能力を考慮すると, 科学技術計算を目的とするような場合以外は, カーネルの Preemption を有効にする方が良いと思われる. 上記のタイマー割り込み回数を減らす対策と併用してバランスをとる.
(make menuconfig の操作画面より Linux2.6.27.2の例) Preemption Model ( ) No Forced Preemption (Server) ( ) Voluntary Kernel Preemption (Desktop) (X) Preemptible Kernel (Low-Latency Desktop)
Kodama's home / tips.