如何在Linux上减少RAM和CPU使用率

Linux 是一个强大高效的操作系统,但是高内存和CPU使用率可能会降低性能,减慢应用程序运行速度,甚至在运行服务器、工作站或嵌入式系统时导致系统崩溃,因此优化资源使用对于系统的顺畅运行至关重要。

在本指南中,我们将探讨减少Linux内存和CPU使用率的实用方法。我们将涵盖监控工具、进程管理、内核调整以及系统优化技术,以保持系统高效运行。

1. 确定资源占用过多的进程

减少内存和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. 减少交换性(优化交换使用)

交换性控制系统使用交换空间而不是 RAM 的频率。高交换性值可能导致过度交换,减慢系统速度。

要检查当前的交换性值:

cat /proc/sys/vm/swappiness

默认值通常为 60,但要减少交换性,您需要编辑 /etc/sysctl.conf 文件。

sudo nano /etc/sysctl.conf

添加或修改以下行。

vm.swappiness=10

保存文件并应用更改。

sudo sysctl -p

5. 使用轻量级桌面替代品

繁重的桌面环境和应用程序可能会给系统资源带来压力,因此考虑切换到轻量级替代品:

a. 桌面环境

替换GNOMEKDE与轻量级选项如XFCELXDEMATE

b. 应用程序

使用轻量级应用程序如:

  • 文本编辑器:用AbiWordMousepad替换LibreOffice
  • 网络浏览器:使用较少扩展或切换到轻量级浏览器如Midori,使用Firefox
  • 文件管理器:用ThunarPCManFM替换Nautilus

6. 清除缓存

Linux使用RAM缓存文件以提高性能。但如果需要,您可以手动清除缓存:

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

此命令清除页面缓存,dentries和inodes。请谨慎使用,因为它可能会暂时减慢文件访问速度。

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/