Linux性能优化CPU内存:从零开始:Linux系统CPU

为什么要进行CPU和内存优化


先问一个问题:你的Linux服务器跑起来是不是越来越慢了?

访问量大了以后,CPU动不动就100%,内存快用满了,这时候不需要立刻换硬件,先试试Linux性能优化CPU内存的方法。

通过调整系统参数、清理不必要的进程和缓存,往往能释放20%~30%的性能空间。


准备工作:你需要什么?



  • 一台Linux服务器(本文以CentOS 7/8为例,Ubuntu命令也通用)

  • SSH终端工具(或者直接在服务器上操作)

  • root权限或sudo权限

  • 一点耐心(程序调整后需要观察几分钟)


第一步:检查当前CPU和内存状态


先看看你的CPU和内存到底有多紧张。

运行以下命令:


top

top命令会显示CPU使用率、内存使用率以及占用资源最多的进程。

1 可以展开每个CPU核心的情况。

q退出。


更直观的工具是htop,需要先安装:


yum install htop -y   # CentOS
apt install htop -y # Ubuntu

运行htop后,你会看到彩色条状图,红色代表内核占用,绿色代表用户占用,蓝色代表低优先级。重点关注:CPU idle idle(空闲)低于20%说明需要优化;

内存使用率超过80%也要注意。


第二步:CPU优化实操


1. 找出“吃CPU”的进程


tophtop里,按P(大写)可以按CPU使用率排序。

找到CPU占用最高的进程号(PID)。


2. 调整进程优先级


如果某个后台进程不需要那么高的优先级,使用renice降低它的优先级:


renice -n 10 -p 12345   # 将PID 12345的优先级降低(数字越大优先级越低)

3. 使用cpulimit限制进程CPU使用百分比


安装:


yum install cpulimit -y   # 或 apt install cpulimit

限制进程myprocess的CPU使用不超过50%:


cpulimit -e myprocess -l 50

4. 关闭不必要的服务


查看自启动服务:


systemctl list-unit-files --type=service --state=enabled

systemctl disable 服务名关闭不需要的服务,比如蓝牙、打印等。

这样可以腾出CPU和内存。


第三步:内存优化实操


1. 清理系统缓存


Linux会占用大量内存作为文件缓存,这是正常现象。

但如果其他进程需要内存,系统会自动释放。

你也可以手动清理(建议只在测试环境):


sync && echo 3 > /proc/sys/vm/drop_caches

echo 3 会清理页缓存、dentries和inodes。

执行后看free -h,used列会明显下降。

不过重启后失效。


2. 调整swappiness参数


swappiness决定了系统使用交换空间的倾向,默认60。

数值越低,越不优先用swap,对性能越好(但需要充足物理内存)。

修改:


echo 10 > /proc/sys/vm/swappiness   # 临时生效

永久生效:编辑/etc/sysctl.conf,添加行:


vm.swappiness = 10

然后执行sysctl -p加载。


3. 检查内存泄漏


如果某个进程长期占用内存而不释放,可以用ps结合排序找出来:


ps aux --sort=-%mem | head -10

对疑似泄漏的进程,考虑重启或更新程序。


避坑说明



  • 别乱调内核参数:修改/proc/sys/vm/下的文件前先备份,特别是vm.overcommit_memory等,设置不当会导致系统崩溃。

  • drop_caches只推荐在测试环境:生产环境谨慎使用,突然清空缓存可能导致磁盘I/O飙升。

  • cpulimit对多线程进程可能不准确:它只限制单线程CPU使用,对多线程进程建议使用cgroups

  • 优化后别立刻下结论:观察至少10分钟,看看服务是否正常响应。


效果验证


优化后再次运行htoptop



  • CPU idle idle 增加 >= 10% 算有效果

  • 内存 used 下降(特别是不再使用swap时)

  • 服务响应时间缩短:可以用time curl http://localhost/service 对比前后耗时


另外用vmstat 1 5查看系统瓶颈:


vmstat 1 5

如果 si(swap in)和 so(swap out)接近0,说明内存优化到位。


高频问题解答


Q:优化后服务器还是卡怎么办?

A:检查是否有大量I/O等待(top中的wa值),如果硬盘I/O太高,CPU空闲也可能是卡在了磁盘。你还需要优化磁盘读写。


Q:swappiness设为0好不好?

A:不建议完全禁用swap。设置成0只是告诉内核“不要主动使用swap”,但系统在内存极低时仍然会使用,可以防止OOM kill。生产环境推荐10~30。


Q:清理缓存后进程变慢是怎么回事?

A:因为系统之前缓存在内存中的文件数据被清空了,重新读取磁盘会暂时变慢。等缓存再次建立后恢复正常。


如果你正在处理Linux性能优化CPU内存的问题,建议先按本文步骤完整执行,再根据自己的环境做微调;

遇到异常时优先回看避坑和高频问题部分。


(本文所有命令需要在root或sudo权限下执行,如果你对某个命令不熟悉,建议先查找资料再操作。

分享到:
上一篇
WP后台美化定制:WP后台太丑?三步完成个性化美化定制
下一篇
用Docker部署Python爬虫,零基础也能按步骤跑起来
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意