如何在Linux上降低RAM和CPU使用率

Linux是一個強大且高效的操作系統,但高RAM和CPU使用率可能會降低性能,讓應用程式變慢,甚至在運行伺服器、工作站或嵌入式系統時導致系統崩潰,因此優化資源使用對於平穩運行至關重要。

在本指南中,我們將探索減少Linux上RAM和CPU使用的實用方法。我們將涵蓋監控工具、進程管理、內核調整和系統優化技術,以保持系統高效運行。

1. 確認資源消耗過多的進程

減少RAM和CPU使用的第一步是確定哪些進程消耗了最多的資源,這可以通過利用幾個命令行工具來實現:

a. 使用top命令

top命令提供了系統進程的實時視圖,包括CPU和內存使用情況。

top
  • P鍵按CPU使用率排序進程。
  • M鍵按內存使用率排序進程。
  • 尋找消耗過多資源的進程並記下它們的進程ID(PID)。
Real-Time System Process Monitoring

b. 使用htop命令

htop 是一個互動式的進程查看器,提供比 top 更加友好的界面。

要在 Linux 上安裝 htop,請使用適合您特定 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
  • F6 可按 CPU 或內存使用率對進程進行排序。
  • 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. 使用圖形介面工具

如果你正在使用像是 GNOMEKDE 的桌面環境,可以使用內建的啟動應用程式管理器來 停用不必要的程式

4. 減少 Swappiness(優化交換區使用)

Swappiness 控制系統何時使用交換空間而非 RAM。高 Swappiness 值會導致過度交換,從而減慢系統速度。

要檢查當前的 Swappiness 值:

cat /proc/sys/vm/swappiness

預設值通常是 60,但若要減少 Swappiness,您需要編輯 /etc/sysctl.conf 檔案。

sudo nano /etc/sysctl.conf

添加或修改以下內容。

vm.swappiness=10

保存檔案並應用變更。

sudo sysctl -p

5. 使用輕量級桌面替代方案

繁重的桌面環境和應用程式會加重系統資源的負擔,因此可以考慮切換到輕量級的替代方案:

a. 桌面環境

GNOMEKDE替換為更輕量的選擇,如XFCELXDEMATE

b. 應用程式

使用輕量級應用程式,如:

  • 文字編輯器:用LibreOffice替換為AbiWordMousepad
  • 網頁瀏覽器:使用擴展較少的Firefox或切換到輕量級瀏覽器,如Midori
  • 檔案管理器:用Nautilus替換為ThunarPCManFM

6. 清除快取和緩衝區

Linux使用RAM來快取檔案並提高性能。然而,您可以在需要時手動清除快取:

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

此命令清除頁面快取、目錄項和索引節點。使用時請謹慎,因為這可能會暫時減慢檔案訪問速度。

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 來強制終止它。
  • 如果 zramzswap 無法工作,請確保您的內核支持這些功能。
  • 如果系統性能沒有改善,考慮升級硬件(例如,增加更多 RAM 或轉換為 SSD)。
結論

在 Linux 上優化 RAM 和 CPU 使用是監控、微調,有時升級硬件的結合。通過識別佔用資源的進程、調整系統設置和選擇輕量級替代方案,您可以為系統注入新活力。

您試過這些優化技巧嗎?在下方留言分享您的經驗,或訪問 Tecmint.com 了解更多 Linux 指南和教程。

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