当前位置:网站首页 >  教程

生产环境Linux服务器运维卡顿排查与优化实操完整指南

时间:2026年06月12日 02:36:52 来源:易频IT社区

第一步:卡顿原因快速定位

按照以下顺序排查,5分钟就能定位到核心原因,所有命令直接复制执行即可。

1. 查看系统整体负载

执行以下命令快速查看1/5/15分钟平均负载:

``` uptime ```

输出最后三个数字就是对应时长的负载值,如果15分钟平均负载大于CPU核心数,说明系统负载偏高,可通过以下命令查看CPU核心数:

``` cat /proc/cpuinfo | grep processor | wc -l ```

执行top命令,按P可按CPU使用率排序,按M可按内存使用率排序,直接查看占用资源最高的进程。

2. 排查IO瓶颈

超过60%的服务器卡顿是IO瓶颈导致,先安装排查工具:

  • CentOS/RHEL系:yum install -y sysstat iotop
  • Debian/Ubuntu系:apt install -y sysstat iotop

查看磁盘IO利用率:

``` iostat -x 1 5 ```

如果输出中%util列持续高于90%,说明磁盘已经被占满,接下来定位具体进程:

``` iotop -o ```

命令会直接按IO使用率排序,显示占用IO最高的进程。

3. 排查内存瓶颈

执行命令查看内存使用情况:

``` free -h ```

如果available列可用内存低于总内存的10%,说明内存不足,已经触发大量swap交换,直接导致卡顿。

第二步:针对性优化实操

1. 内存不足卡顿优化

如果没有swap分区,直接创建2G swap分区,所有命令直接执行:

``` dd if=/dev/zero of=/swapfile bs=1M count=2048 chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap defaults 0 0' >> /etc/fstab ```

生产环境Linux服务器运维卡顿排查与优化实操完整指南

调整swap使用优先级,避免系统频繁swap导致卡顿:

``` sysctl -w vm.swappiness=10 echo 'vm.swappiness=10' >> /etc/sysctl.conf sysctl -p ```

执行free -h即可看到swap已经生效,可快速解决内存不足导致的卡顿。

2. IO过高卡顿优化

先排查是否是大日志文件导致,执行命令找到大于100M的日志文件:

``` find /var/log -type f -size +100M -exec ls -lh {} \; ```

不要直接删除日志(进程占用时删除不会释放空间),用以下命令直接清空:

``` > /path/to/your/large.log ```

配置logrotate自动切割清理日志,创建配置文件/etc/logrotate.d/custom,修改日志路径后即可直接使用:

``` /path/to/your/app/logs/.log { daily rotate 7 compress missingok notifempty create 0644 root root } ```

如果是机械盘IO性能不足,修改IO调度算法为noop,编辑/etc/default/grub,在GRUB_CMDLINE_LINUX末尾添加elevator=noop,然后执行:

``` grub2-mkconfig -o /boot/grub2/grub.cfg ```

重启服务器后生效,IO性能可提升10%-20%。

3. CPU占满卡顿优化

定位到占用CPU过高的进程PID后,如果暂时无法修复代码,可用cpulimit限制进程CPU使用率,先安装:

  • CentOS:yum install -y cpulimit
  • Debian/Ubuntu:apt install -y cpulimit

限制PID为1234的进程最多使用50%CPU,后台运行命令:

``` cpulimit -p 1234 -l 50 -b ```

限制后不会影响其他正常服务的运行,避免CPU占满导致的整体卡顿。

第三步:日常卡顿预防优化

做好以下配置,可提前避免大部分卡顿问题:

  • 配置基础监控,安装node_exporter采集系统指标,配合Prometheus做异常告警,安装步骤直接执行: ``` wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz tar xzf node_exporter-1.6.1.linux-amd64.tar.gz cp node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin/ ``` 创建systemd配置文件/etc/systemd/system/node_exporter.service,写入: ``` [Unit] Description=Node Exporter After=network.target [Service] Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target ``` 启动并设置开机自启: ``` systemctl daemon-reload systemctl enable node_exporter --now ```
  • 配置自动清理任务,执行crontab -e添加以下定时任务,每周日凌晨清理7天前的临时文件:0 1 0 find /tmp -type f -atime +7 -delete
  • 对存在内存泄漏的老旧应用,配置每周定时重启,crontab添加:0 2 0 systemctl restart yourapp,可临时避免内存累积导致的卡顿。

按照上述排查优化流程操作,可解决90%以上的生产环境常见运维卡顿问题,所有步骤均可直接落地执行。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图