27 ポイント 投稿者 baeba 2025-05-13 | 6件のコメント | WhatsAppで共有

Linuxは効率的なOSですが、RAMやCPUの過剰使用はパフォーマンス低下やシステムの不安定化を招くことがあります。
この記事では、監視ツール、プロセス管理、カーネル調整など、実践的な最適化方法を説明します。


1. リソースを大量に消費するプロセスを見つける

tophtopps コマンドを使って、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. 不要なプロセスを終了する

killkill -9pkill コマンドで、リソースを過剰に消費するプロセスを終了できます。
応答しないプロセスは強制終了するか、名前で一括終了します。

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件のコメント

 
guesswhat 2025-05-14

Asahi Linux では zswap を使い、zram を無効化しています
https://web.archive.org/web/20241126234212/…
https://social.treehouse.systems/@AsahiLinux/113532720695827142

 
wls52 2025-05-13

zram については今回初めて知ったので、どんな欠点があるのか気になって qwq:32b に聞いてみました。

なぜ Linux ディストリビューションはデフォルトで zram を有効にしないのか?

現代のシステムではメモリ不足の問題が減っているため: 現在、ほとんどの PC は標準で 4GB 以上の RAM を搭載しています。メモリ不足が起きにくい環境では、zram の必要性は低くなります。

CPU 負荷のリスク: zram は CPU 使用率を増加させる可能性があるため、すべてのハードウェアで安全とは限りません。
ディストリビューションは「一般的な環境」を優先するため、zram の CPU オーバーヘッドを受け入れるだけの価値があるとは判断しにくい場合があります。

スワップの基本的な利用形態の変化: SSD の普及により、従来のスワップディスクの速度は大きく向上しました。
zram の速度面での優位性は、以前ほど相対的に目立たなくなっています。

ユーザー環境の多様性: zram特定の環境(例: 低スペックなデバイス) でのみ効果的であり、一般ユーザーには特に大きな利点がありません。
ディストリビューションは「最小限の設定で最大の互換性」を追求するため、zram をデフォルトで有効化していません。

設定の複雑さ: zram のサイズや圧縮アルゴリズムなどは手動で調整して初めて最適化できるため、一般ユーザーにとっては理解が難しいです。

 
secret3056 2025-05-13

mac osでもメモリ圧縮は積極的に使われています。

> なぜLinuxディストリビューションはデフォルトでzramを有効にしないのだろうか?

Fedora 33、openSUSEはAeonからZRAMを デフォルトで 有効にしています。
ベンチマークが常に先ですが、思ったよりは実用になるかもしれません。

 
hoonix 2025-05-13

zswap はかなり使えます。macOS では似た機能がデフォルトで有効になっているオプションでもありますし。ノートPCのようにリソースが限られた環境で、ブラウザを開いたりアプリをたくさん起動したりする場合にうまく動作します。ただし、言及されているように CPU とのトレードオフがあるので、バッテリーには影響しそうですね。

 
fanotify 2025-05-13

zramとzswapは違うものですか?
sudo apt install zram-tools
systemctl enable zramswap
このようにして使っていますが、zswapというのがこれのことなのかよく分かりません..

 
hoonix 2025-05-13

技術名がかなり紛らわしいです。zram はカーネル機能で、自動圧縮機能を持つブロックデバイス、つまり一種のストレージを作る機能をします。そしてそのストレージ上に、私たちが知っている一般的な swap ファイルを作成して使うと、それが一種の RAM ベースの swap + 圧縮機能を備えることになるわけです。zramswap サービスはその役割を果たしてくれるように見えます。ところが、後にこの仕組みが有用だと考えられたため、zram + swap が丸ごとカーネル機能として統合されます。それが zswap です。zswap は大半の Linux で別途インストールなしにコマンドだけで有効化できます。(参照 https://wiki.archlinux.org/title/Zswap)