Linuxでの高いRAMとCPU使用率を削減する方法
Linuxは強力で効率的なオペレーティングシステムですが、高いRAMおよびCPU使用率はパフォーマンスを低下させ、アプリケーションを遅くし、サーバー、ワークステーション、または組み込みシステムを実行しているときにシステムのクラッシュを引き起こす可能性があります。そのため、リソースの使用を最適化することはスムーズな操作にとって不可欠です。
このガイドでは、LinuxでのRAMとCPU使用量を減らすための実践的な方法を探ります。モニタリングツール、プロセス管理、カーネルの調整、システム最適化技術を取り上げて、システムが効率的に動作し続けるようにします。
1. リソースを大量に消費するプロセスを特定する
RAMとCPUの使用量を減らすための最初のステップは、いくつかのコマンドラインツールを利用して、どのプロセスが最もリソースを消費しているかを特定することです。
a. topコマンドを使用する
topコマンドは、CPUおよびメモリ使用量を含むシステムプロセスのリアルタイムビューを提供します。
top
- プロセスをCPU使用率でソートするには、
Pを押してください。 - メモリ使用量でプロセスをソートするには、
Mを押してください。 - リソースを過剰に消費しているプロセスを探し、そのプロセスID(PID)を記録してください。
b. htop コマンドの使用
htopは、topよりも使いやすいインターフェースを提供するインタラクティブなプロセスビューアです。
htop を Linux にインストールするには、特定の Linux ディストリビューションに適したコマンドを使用してください。
sudo apt install htop [On Debian, Ubuntu and Mint]
sudo dnf install htop [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/htop [On Gentoo Linux]
sudo apk add htop [On Alpine Linux]
sudo pacman -S htop [On Arch Linux]
sudo zypper install htop [On OpenSUSE]
sudo pkg install htop [On FreeBSD]
htopを実行して、プロセスを簡単に表示および管理します。
htop
- プロセスをCPUまたはメモリ使用量でソートするには、
F6を押してください。 - 選択されたプロセスを終了するには
F9を押してください。
c. psコマンドを使用すること
psコマンドはプロセスとそのリソース使用状況をリストするために使用できます。
ps aux --sort=-%mem | head # Top memory-consuming processes
ps aux --sort=-%cpu | head # Top CPU-consuming processes
2. 不要なプロセスを終了する
リソースを消費しているプロセスを特定したら、killコマンドの後にPIDを指定してそれらを終了させてリソースを解放できます。
kill PID
プロセスが終了しない場合は、-9 フラグを使用してプロセスを強制終了します。
kill -9 PID
あるいは、pkillコマンドを使用して名前でプロセスを終了させます。
pkill process_name
3. スタートアップアプリケーションを最適化する
多くのアプリケーションやサービスが起動時に自動的に開始し、貴重なシステムリソースを消費します。
スタートアップアプリケーションを管理するには:
a. systemctl コマンドを使用する
systemctlコマンドを使用して有効なサービスの一覧を表示します。
systemctl list-unit-files --type=service | grep enabled
不要なサービスを無効にする。
sudo systemctl disable service_name
b. GUIツールを使用する
GNOMEやKDEのようなデスクトップ環境を使用している場合は、内蔵のスタートアップアプリケーションマネージャを使用して、不要なプログラムを無効にしてください。
4. スワップのスワピネスを減らす(スワップ使用を最適化)
スワピネスは、システムがどれくらいの頻度でスワップスペースを使用するかを制御します。スワピネスの値が高いと、過度のスワッピングが発生し、システムが遅くなる可能性があります。
現在のスワップネス値を確認するには:
cat /proc/sys/vm/swappiness
デフォルト値は通常60ですが、スワップ度を下げるためには/etc/sysctl.confファイルを編集する必要があります。
sudo nano /etc/sysctl.conf
次の行を追加または修正してください。
vm.swappiness=10
ファイルを保存して変更を適用します。
sudo sysctl -p
5. 軽量なデスクトップ代替品を使用する
重いデスクトップ環境やアプリケーションはシステムリソースに負担をかける可能性があるので、軽量の代替品に切り替えることを検討してください。
a. デスクトップ環境
GNOMEやKDEをXFCE、LXDE、またはMATEのような軽量のオプションに置き換えてください。
b. アプリケーション
軽量なアプリケーションを使用してください:
- テキストエディタ: LibreOfficeをAbiWordまたはMousepadに置き換えます。
- ウェブブラウザー: 拡張機能が少ないFirefoxを使用するか、Midoriなどの軽量ブラウザーに切り替えてください。
- ファイルマネージャー: Nautilus を Thunar または PCManFM に置き換えます。
6. キャッシュとバッファをクリアする
LinuxはRAMを使用してファイルをキャッシュし、パフォーマンスを向上させます。ただし、必要に応じて手動でキャッシュをクリアすることもできます。
sudo sync; sudo sysctl -w vm.drop_caches=3
このコマンドはページキャッシュ、dentry、およびinodeをクリアします。ファイルアクセスが一時的に遅くなる可能性があるため、注意して使用してください。
7. カーネルパラメータの最適化
カーネルパラメータを調整または最適化するには、/etc/sysctl.conf ファイルを編集し、以下を追加するか、システムパフォーマンスを改善するためにパラメータを調整する必要があります。
vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0
これらの設定は、ディスクに書き込まれる汚れたデータの頻度を制御し、RAMの使用量を減らします。
8. ZRAMを使用してメモリ使用量を削減する
ZramとZswapは、RAMの使用量を減らすことができる圧縮メモリ技術です。
sudo apt install zram-config
sudo systemctl start zram-config
インストール後、GRUB 設定ファイル(/etc/default/grub)を編集し、次の内容を追加する必要があります:
GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"
GRUBを更新して再起動します:
sudo update-grub
sudo reboot
9. プロセスのCPU使用率を制限する
プロセスがCPUを占有している場合は、cpulimitを使用してその使用を制限してください。
sudo apt install cpulimit # Debian/Ubuntu
sudo yum install cpulimit # RHEL/CentOS
firefox のCPU使用率を30%に制限する。
sudo cpulimit -e firefox -l 30
プロセスを永久に制限するには、systemdを使用します。
sudo systemctl set-property <service_name> CPUQuota=30%
10. 定期的にシステムを更新する
システムを更新し続けることで、最新のパフォーマンス改善やバグ修正を受けることができます。
sudo apt update && sudo apt upgrade # For Debian/Ubuntu
sudo yum update # For CentOS/RHEL
トラブルシューティングのヒント
- プロセスが
killで終了しない場合は、kill -9 PIDを使用して強制終了させてください。 - もし
zramやzswapが動作しない場合は、カーネルがこれらの機能をサポートしていることを確認してください。 - システムのパフォーマンスが改善しない場合は、ハードウェアのアップグレード(例:RAMの増設やSSDへの切り替え)を検討してください。
結論
LinuxでのRAMとCPUの使用を最適化することは、監視、調整、時にはハードウェアのアップグレードを組み合わせることです。リソースを食い尽くすプロセスを特定し、システム設定を調整し、軽量の代替案を選ぶことで、システムに新たな息吹を与えることができます。
これらの最適化技術を試してみましたか?下のコメントであなたの経験を共有するか、さらに多くのLinuxガイドやチュートリアルについてはlinux-console.netを訪れてください。



