Linux 服务器性能调优:从监控到落地

648 字
3 分钟
Linux 服务器性能调优:从监控到落地

Linux 服务器性能调优:从监控到落地#

上周被老板指着鼻子骂了一顿。

原因是服务器又崩了。用户在群里刷屏,客服电话被打爆,我盯着监控大屏上那根垂直上升的线,一句话都说不出来。

所以这次,我把整个排查和调优的过程记录下来。


1. 先别急着动手,看看监控#

很多人看到 CPU 飙升就急着扩容。但搞清楚问题是什么,比解决问题更重要。

我常用的第一个命令:

Terminal window
$ htop

htop 比传统的 top 更直观。一眼就能看出是哪个进程在吃资源,颜色编码也让状态更清晰。

如果 htop 不够,就上 iostat

Terminal window
$ iostat -x 1 10

%util,接近 100% 说明磁盘是瓶颈。


2. 内存不是无限的#

free -h 看大概,vmstat 1 10 看细节。

如果 siso 长期不为 0,说明系统在疯狂交换内存到磁盘。这时候性能会断崖式下跌。

解决办法:

  • 短期:清理缓存 echo 3 > /proc/sys/vm/drop_caches
  • 长期:加内存,或者优化程序内存占用

3. 网络瓶颈怎么查#

Terminal window
$ ss -s
$ netstat -i

看 TCP 连接数、网卡收发包的丢包率。

如果连接数长期高位,检查一下 TIME_WAIT 状态的连接:

Terminal window
$ ss -tan | awk '/^TIME_WAIT/ {++n} END {print n}'

太多 TIME_WAIT 会占用端口资源,导致新连接无法建立。


4. Systemd 服务优化#

很多人忽略了 Systemd 的资源限制功能。

/etc/systemd/system/你的服务.service 里加上:

[Service]
MemoryMax=512M
CPUQuota=80%
TasksMax=50

这样即使程序有内存泄漏,顶多是这个服务崩,不会把整个服务器拖垮。


5. 调优不是一次性的#

我建立了一个简单的监控脚本,每天早上 8 点发到飞书:

daily_report.sh
#!/bin/bash
date >> /var/log/daily_report.log
echo "CPU: $(top -bn1 | grep 'Cpu(s)')" >> /var/log/daily_report.log
echo "MEM: $(free -h | grep Mem)" >> /var/log/daily_report.log
echo "DISK: $(df -h | grep '/$')" >> /var/log/daily_report.log

然后丢到 crontab 里自动跑。

这样不用登录服务器,每天看看报告就知道健康状况。


写在最后#

服务器就跟人的身体一样。

平时不体检,等到症状明显了,往往已经是大问题了。

我这次被骂完之后,把这套监控和预报告机制搭了起来。老板说”这还差不多”。

但我知道,我只是不想让另外一个凌晨三点的自己,再面对一次监控大屏上那根垂直上升的线。


优化是无止境的。

但只要今天比昨天好一点,就够了。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Linux 服务器性能调优:从监控到落地
https://firefly.ysysaily.xyz/posts/linux-服务器性能调优从监控到落地/
作者
悦灵
发布于
2026-06-23
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Yueling
Hello, I'm Yueling.
公告
Yueling的博客
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
22
分类
7
标签
43
总字数
18,224
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.12.3
文章许可
CC BY-NC-SA 4.0

文章目录