LinuxでRAMおよびCPU使用率を削減する方法

Linuxは強力で効率的なオペレーティングシステムですが、高いRAMおよびCPU使用率はパフォーマンスを低下させ、アプリケーションの動作を遅くし、システムのクラッシュを引き起こす可能性があります。サーバー、ワークステーション、または組み込みシステムを実行している場合、リソースの使用を最適化することはスムーズな動作のために不可欠です。

このガイドでは、Linux上のRAMおよびCPU使用率を低減するための実用的な方法を探ります。私たちは監視ツール、プロセス管理、カーネルの調整、およびシステムの最適化技術について説明します。

1. リソース消費プロセスの特定

RAMおよびCPU使用率を低減する最初のステップは、複数のコマンドラインツールを使用して最も多くのリソースを消費しているプロセスを特定することです:

a. topコマンドの使用

topコマンドはCPUおよびメモリ使用量を含むシステムプロセスのリアルタイムビューを提供します。

top
  • プロセスをCPU使用率でソートするにはPを押します。
  • プロセスをメモリ使用率でソートするにはMを押します。
  • 過剰なリソースを消費しているプロセスを探し、そのプロセスID(PID)をメモしてください。
Real-Time System Process Monitoring

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を押します。
htop – Interactive Process Viewer

c. psコマンドの使用

psコマンドを使用して、プロセスとそのリソース使用量をリスト表示できます。

ps aux --sort=-%mem | head  # Top memory-consuming processes
ps aux --sort=-%cpu | head  # Top CPU-consuming processes
Check Memory 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
List Enabled Services

b. GUIツールを使用して

GNOMEやKDEなどのデスクトップ環境を使用している場合は、組み込みのスタートアップアプリケーションマネージャを使用して不要なプログラムを無効にします。

4. スワップの最適化

スワップの使用頻度を制御するスワッピネスは、システムがRAMの代わりにスワップスペースを使用する頻度を示します。高いスワッピネス値は過剰なスワッピングを引き起こし、システムの動作を遅くする可能性があります。

現在のスワッピネス値を確認するには、

cat /proc/sys/vm/swappiness

デフォルトの値は通常60ですが、スワッピネスを減らすには/etc/sysctl.confファイルを編集する必要があります。

sudo nano /etc/sysctl.conf

以下の行を追加または変更します。

vm.swappiness=10

ファイルを保存し、変更を適用します。

sudo sysctl -p

5. 軽量なデスクトップの代替を使用する

重いデスクトップ環境やアプリケーションはシステムリソースに負荷をかけるため、軽量な代替を検討してください。

a. デスクトップ環境

GNOMEまたはKDEXFCELXDEMATEなどの軽量なオプションに置き換えてください。

b. アプリケーション

以下のような軽量なアプリケーションを使用してください:

  • テキストエディタLibreOfficeAbiWordMousepadに置き換えてください。
  • ウェブブラウザ:拡張機能を少なくしたFirefoxを使用するか、Midoriのような軽量なブラウザに切り替えてください。
  • ファイルマネージャNautilusThunarPCManFMに置き換えてください。

6. キャッシュとバッファのクリア

Linuxはファイルをキャッシュしてパフォーマンスを向上させるためにRAMを使用します。ただし、必要に応じてキャッシュを手動でクリアできます:

sudo sync; sudo sysctl -w vm.drop_caches=3

このコマンドはpagecache、デントリ、inodeをクリアします。ファイルアクセスの一時的な遅延が発生する可能性があるため、注意して使用してください。

7. カーネルパラメータの最適化

カーネルパラメータを調整または最適化するには、/etc/sysctl.confファイルを編集し、以下を追加するかパラメータを調整してシステムのパフォーマンスを向上させてください。

vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0

これらの設定は、dirtyデータがディスクに書き込まれる頻度を制御し、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を使用して強制終了します。
  • zramzswapが機能しない場合は、カーネルがこれらの機能をサポートしているか確認してください。
  • システムのパフォーマンスが改善されない場合は、ハードウェアのアップグレード(例:RAMの追加やSSDへの切り替え)を検討してください。
結論

LinuxでのRAMとCPUの使用量を最適化するには、監視、調整、そして必要に応じてハードウェアをアップグレードする必要があります。リソースを多く消費するプロセスを特定し、システムの設定を調整し、軽量な代替手段を選択することで、システムに新たな息吹を吹き込むことができます。

これらの最適化テクニックを試しましたか?以下のコメントで体験を共有するか、より多くのLinuxガイドやチュートリアルをご覧になるには、Tecmint.comを訪れてください。

Source:
https://www.tecmint.com/reduce-ram-cpu-usage-on-linux/