LinuxでRAMとCPUの使用量を減らす方法
(tecmint.com)Linuxは効率的なOSですが、RAMやCPUの過剰使用はパフォーマンス低下やシステムの不安定化を招くことがあります。
この記事では、監視ツール、プロセス管理、カーネル調整など、実践的な最適化方法を説明します。
1. リソースを大量に消費するプロセスを見つける
top、htop、ps コマンドを使って、CPUおよびメモリ使用量が高いプロセスを確認します。
PIDを控えておき、後続の対処に活用します。
# top
top # P: CPUで並び替え、M: メモリで並び替え
# htop のインストールと実行
sudo apt install htop
htop # F6: 並び替え、F9: 終了
# ps コマンド
ps aux --sort=-%mem | head
ps aux --sort=-%cpu | head
2. 不要なプロセスを終了する
kill、kill -9、pkill コマンドで、リソースを過剰に消費するプロセスを終了できます。
応答しないプロセスは強制終了するか、名前で一括終了します。
kill PID
kill -9 PID
pkill process_name
3. 自動起動プログラムを最適化する
systemctl で起動時に自動実行されるサービスを確認し、不要な項目は無効化します。
GUI環境では、スタートアップアプリケーションマネージャーを使うこともできます。
systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable サービス名
4. swappiness を調整する
swappiness は、スワップメモリの使用頻度を調整する設定です。
デフォルト値の60から10に下げると、RAMの活用が優先され、パフォーマンス向上に役立ちます。
cat /proc/sys/vm/swappiness
sudo nano /etc/sysctl.conf # vm.swappiness=10 を追加
sudo sysctl -p
5. 軽量なデスクトップ環境を使う
GNOMEやKDEの代わりに、XFCE、LXDE、MATEのような軽量デスクトップ環境を使うと、リソースの節約が可能です。
アプリも同様に、軽量なエディタ、ブラウザ、ファイルマネージャーへ置き換えられます。
6. キャッシュとバッファを手動で整理する
Linuxはパフォーマンス向上のためにRAMをキャッシュとして使いますが、必要に応じて手動で整理することも可能です。
ただし、一時的にパフォーマンスが低下する場合があるため注意が必要です。
sudo sync; sudo sysctl -w vm.drop_caches=3
7. カーネルパラメータを最適化する
ディスク書き込み頻度やRAMの最小確保量などのカーネルパラメータを修正することで、リソース管理を効率化できます。
# /etc/sysctl.conf に追加する項目の例
vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0
8. ZRAM を使う
ZRAMは、メモリを圧縮して使う機能で、RAM節約に効果的です。
Zswapもあわせて設定すると、圧縮ベースのスワップが有効になります。
sudo apt install zram-config
sudo systemctl start zram-config
# GRUB 設定を追加
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"
sudo update-grub
sudo reboot
9. プロセスのCPU使用率を制限する
cpulimit コマンドを使うことで、特定プロセスのCPU使用率を制限できます。
systemd の設定を利用すれば、恒久的な制限も可能です。
sudo apt install cpulimit
sudo cpulimit -e firefox -l 30 # firefox を30%に制限
# systemd で設定
sudo systemctl set-property サービス名 CPUQuota=30%
10. システムを定期的に更新する
最新のアップデートはパフォーマンス改善やバグ修正に役立つため、定期的に実行する必要があります。
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # RHEL/CentOS
6件のコメント
Asahi Linux では zswap を使い、zram を無効化しています
https://web.archive.org/web/20241126234212/…
https://social.treehouse.systems/@AsahiLinux/113532720695827142
zramについては今回初めて知ったので、どんな欠点があるのか気になってqwq:32bに聞いてみました。なぜ Linux ディストリビューションはデフォルトで
zramを有効にしないのか?現代のシステムではメモリ不足の問題が減っているため: 現在、ほとんどの PC は標準で 4GB 以上の RAM を搭載しています。メモリ不足が起きにくい環境では、
zramの必要性は低くなります。CPU 負荷のリスク:
zramは CPU 使用率を増加させる可能性があるため、すべてのハードウェアで安全とは限りません。ディストリビューションは「一般的な環境」を優先するため、
zramの CPU オーバーヘッドを受け入れるだけの価値があるとは判断しにくい場合があります。スワップの基本的な利用形態の変化: SSD の普及により、従来のスワップディスクの速度は大きく向上しました。
zramの速度面での優位性は、以前ほど相対的に目立たなくなっています。ユーザー環境の多様性:
zramは 特定の環境(例: 低スペックなデバイス) でのみ効果的であり、一般ユーザーには特に大きな利点がありません。ディストリビューションは「最小限の設定で最大の互換性」を追求するため、
zramをデフォルトで有効化していません。設定の複雑さ:
zramのサイズや圧縮アルゴリズムなどは手動で調整して初めて最適化できるため、一般ユーザーにとっては理解が難しいです。mac osでもメモリ圧縮は積極的に使われています。
> なぜLinuxディストリビューションはデフォルトでzramを有効にしないのだろうか?
Fedora 33、openSUSEはAeonからZRAMを デフォルトで 有効にしています。
ベンチマークが常に先ですが、思ったよりは実用になるかもしれません。
zswap はかなり使えます。macOS では似た機能がデフォルトで有効になっているオプションでもありますし。ノートPCのようにリソースが限られた環境で、ブラウザを開いたりアプリをたくさん起動したりする場合にうまく動作します。ただし、言及されているように CPU とのトレードオフがあるので、バッテリーには影響しそうですね。
zramとzswapは違うものですか?
sudo apt install zram-toolssystemctl enable zramswapこのようにして使っていますが、zswapというのがこれのことなのかよく分かりません..
技術名がかなり紛らわしいです。
zramはカーネル機能で、自動圧縮機能を持つブロックデバイス、つまり一種のストレージを作る機能をします。そしてそのストレージ上に、私たちが知っている一般的なswapファイルを作成して使うと、それが一種の RAM ベースのswap+ 圧縮機能を備えることになるわけです。zramswapサービスはその役割を果たしてくれるように見えます。ところが、後にこの仕組みが有用だと考えられたため、zram+swapが丸ごとカーネル機能として統合されます。それがzswapです。zswapは大半の Linux で別途インストールなしにコマンドだけで有効化できます。(参照 https://wiki.archlinux.org/title/Zswap)