圧縮スワップzram
zramの導入
OllamaをCPUモードで動かす際にスワップ領域を大量に使用していたため、圧縮スワップのzramを導入する。
GPUがない場合はCPUでの実行となり計算効率が著しく落ちる。さらにモデルは大量のメモリを消費するため、搭載メモリが小さい環境ではすぐに物理メモリが枯渇し、スワップ領域が利用される。しかしスワップはディスクI/Oに依存するため極めて遅く、実用的な速度を保つことが難しい。
AlmaLinux 9.6では、圧縮メモリスワップであるzramは標準では有効になっていなかった。zramを活用することで、物理メモリ上に圧縮されたスワップ領域を作成でき、ディスクスワップより高速に動作するため、メモリ効率の改善やパフォーマンスの向上が期待できる。
dnf install zram-generator
cat << EOF > /etc/systemd/zram-generator.conf
[zram0]
zram-size = min(ram / 2, 4096)
compression-algorithm = zstd
EOF
systemctl daemon-reload
swapon -s
systemctl daemon-reloadで、再起動せずに設定を適用する。
zramなし
swapoff /dev/zram0
swapon -s
time ollama run gemma3:12b "hello. response in 10 words"
user@y ~$ time ollama run gemma3:12b "hello. response in 10 words"
Hello! Happy to chat – what can I do for you?
real 5m12.222s
user 0m0.047s
sys 0m0.137s
user@y ~$
zramあり
systemctl daemon-reload
swapon -s
time ollama run gemma3:12b "hello. response in 10 words"
user@y ~$ time ollama run gemma3:12b "hello. response in 10 words"
Hello! Ready to assist you – what can I do?
real 3m49.738s
user 0m0.064s
sys 0m0.098s
user@y ~$
※計測は一度のみ実施のため、偶然の可能性有り。
◀︎ 実験 | Future work ▶︎