如何解决CentOS系统卡顿
导读:如何解决CentOS系统卡顿 一、优先定位性能瓶颈(关键前提) 解决卡顿的第一步是明确瓶颈所在,需通过工具实时监控系统资源使用情况,常见工具及关注指标如下: top/htop:实时查看CPU(%us=用户空间占用、%sy=内核空间占用、%...
如何解决CentOS系统卡顿
一、优先定位性能瓶颈(关键前提)
解决卡顿的第一步是明确瓶颈所在,需通过工具实时监控系统资源使用情况,常见工具及关注指标如下:
- top/htop:实时查看CPU(
%us
=用户空间占用、%sy
=内核空间占用、%wa
=I/O等待)、内存(used
=已用、free
=空闲、swap
=交换分区使用)、进程(按M
键按内存排序,按P
键按CPU排序)的使用情况。若%wa
持续高于10%,说明磁盘I/O是瓶颈;若%us
或%sy
过高,可能是应用或内核进程异常。 - vmstat:通过
vmstat 1 2
(每秒采样1次,共2次)查看系统整体状态,重点关注procs
中的r
(运行队列长度,若大于CPU核心数说明CPU拥堵)、memory
中的free
(空闲内存,若为0说明内存紧张)、swap
中的si/so
(交换分区读写,若频繁说明内存不足)、io
中的bi/bo
(磁盘读写,若过高说明I/O瓶颈)。 - iostat:使用
iostat -x 1 10
查看磁盘I/O详细情况,重点关注sda
(或其他磁盘设备)的%util
(磁盘利用率,若接近100%说明磁盘满负荷运行)、await
(平均I/O等待时间,若大于10ms说明磁盘响应慢)、r/s/w/s
(读/写请求数,过高说明磁盘负载大)。 - dstat:整合
vmstat
、iostat
、netstat
等功能,通过dstat -cdngy
(监控CPU、磁盘、网络、进程)实时查看多维度指标,输出更简洁直观。
二、针对性优化措施
根据定位到的瓶颈,采取以下优化手段:
1. 硬件资源不足:升级或扩容
- 内存不足:若
free -m
显示used
接近total
且swap
大量使用,需升级物理内存(如从4GB增至8GB以上);若无法升级,可通过调整swappiness
参数(vim /etc/sysctl.conf
,添加vm.swappiness=10
,降低系统使用交换分区的频率)减少Swap使用,缓解内存压力。 - CPU性能差:若
top
中%us
持续过高(如大于70%),需升级CPU(如从Intel Xeon E5-2670 v3升级至E5-2680 v4)或优化应用配置(如减少Apache的MaxRequestWorkers
参数,降低并发请求数)。 - 磁盘I/O瓶颈:若
iostat
中%util
接近100%或await
过高,需升级至SSD(如将HDD更换为NVMe SSD),或调整I/O调度器(机械盘用deadline
,SSD用noop
,修改/etc/default/grub
中的GRUB_CMDLINE_LINUX
,添加elevator=deadline
,然后grub2-mkconfig -o /boot/grub2/grub.cfg
更新配置)。
2. 进程与服务管理:关闭不必要的进程
- 使用
top
或htop
找出占用资源高的进程(如%CPU
或%MEM
超过50%的进程),通过kill -9 < PID>
终止异常进程(需确认进程用途,避免误杀系统关键进程)。 - 禁用不需要的开机自启服务:通过
systemctl list-unit-files --type=service
列出所有服务,用systemctl disable < 服务名>
(如firewalld
、NetworkManager
)禁用非必要服务,减少后台资源消耗。
3. 系统配置优化:调整内核与内核参数
- Swap分区优化:若内存充足(如≥8GB),可将
swappiness
设置为10
(默认60
),减少系统使用Swap的频率;修改/etc/sysctl.conf
后,执行sysctl -p
使配置生效。 - SELinux优化:若SELinux导致性能损耗(如频繁的权限检查),可临时关闭(
setenforce 0
)测试是否缓解卡顿;若确认是SELinux问题,需通过audit2allow
生成自定义策略,或永久关闭(修改/etc/selinux/config
,设置SELINUX=disabled
)。 - 内核参数调优:调整网络参数优化TCP性能(如增大
net.core.somaxconn
(监听队列长度,默认128)至1024
,增大net.ipv4.tcp_max_syn_backlog
(SYN队列长度,默认1024)至2048
),修改/etc/sysctl.conf
后执行sysctl -p
生效。
4. 磁盘与文件系统:修复错误与优化挂载
- 检查并修复文件系统错误:使用
fsck -y /dev/sdX
(sdX
为实际分区,如sda1
)修复文件系统错误,需从Live CD启动或卸载分区后执行。 - 检测磁盘坏道:使用
badblocks -v /dev/sdX
扫描磁盘坏道,若发现坏道需更换硬盘。 - 调整挂载选项:在
/etc/fstab
中为磁盘添加noatime
(不更新访问时间)选项,减少磁盘写入次数(如/dev/sda1 / ext4 defaults,noatime 0 1
),修改后执行mount -o remount /
重新挂载。
5. 日志与缓存清理:释放磁盘空间
- 清理日志文件:使用
journalctl --vacuum-size=100M
(限制日志大小为100MB)或rm -rf /var/log/*.gz
(删除压缩的旧日志)清理日志,避免日志占满磁盘。 - 清理系统缓存:定期执行
sync; echo 3 > /proc/sys/vm/drop_caches
(释放页缓存、目录项和inode缓存),或使用yum clean all
(清理YUM缓存)、rm -rf ~/.cache/*
(清理用户缓存)释放空间。
6. 网络优化:调整TCP参数与防火墙
- 优化TCP缓冲区:修改
/etc/sysctl.conf
,添加net.ipv4.tcp_rmem = 4096 87380 6291456
(接收缓冲区最小、默认、最大值)、net.ipv4.tcp_wmem = 4096 16384 4194304
(发送缓冲区最小、默认、最大值),提高网络吞吐量。 - 优化TIME_WAIT处理:添加
net.ipv4.tcp_tw_reuse = 1
(允许重用TIME_WAIT状态的连接)、net.ipv4.tcp_tw_recycle = 1
(快速回收TIME_WAIT连接),减少TIME_WAIT状态对端口资源的占用。 - 精简防火墙规则:使用
iptables -L -n
查看防火墙规则,删除不必要的规则(如允许所有入站流量的规则),减少防火墙对网络流量的检查开销。
三、预防卡顿的长期措施
- 定期监控:使用
Netdata
(sudo yum install epel-release & & sudo yum install netdata & & sudo systemctl start netdata
)或Cacti
搭建实时监控系统,及时发现资源异常。 - 定期更新:使用
sudo dnf update --refresh
更新系统和软件,修复已知bug和安全漏洞,提升系统稳定性。 - 定期维护:每月清理一次临时文件(
rm -rf /tmp/*
)、日志文件和缓存,检查硬件状态(如硬盘SMART状态smartctl -a /dev/sda
),确保硬件正常运行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何解决CentOS系统卡顿
本文地址: https://pptw.com/jishu/732018.html