一、服务器性能四大资源

Linux 服务器性能主要看:

  • CPU
  • 内存
  • 磁盘 IO
  • 网络

还有一个贯穿所有资源的因素:进程管理

1. 内存(RAM)——稳定性的第一因素

作用

内存决定:

  • 能同时运行多少服务
  • 数据缓存能力
  • 数据库性能
  • 是否触发 OOM

内存不足表现

典型:

  • 服务器变慢
  • SSH卡顿
  • 宝塔打不开
  • 数据库掉线
  • Python进程消失
  • OOM Killer

查看内存

$ free -h

重点看:available,不要只看:free

例如:

Mem:
total 4G
used 2G
free 200M
available 1.5G

这是正常的。

优化方向

① 增加内存

通常:4G → 8G,收益非常明显。

② 控制服务内存

例如:

  • MySQL:限制 buffer pool
  • Java:  限制 JVM heap
  • Python:控制 worker 数量

③ 保留 Swap

Swap 是:内存不足时的缓冲区,不是替代内存。

建议:

内存 Swap

  • 2G 1~2G
  • 4G 1~4G
  • 8G 2~4G

查看:

$ swapon –show

2. CPU —— 决定计算速度

CPU不足表现

  • 接口响应慢
  • 程序计算慢
  • 请求排队
  • load升高

查看 CPU

$ lscpu

实时:

$ top

关注:

us
sy
wa
id

例如:99% id,说明 CPU 很空闲。

CPU优化

① 减少无效进程

查看:

$ ps aux –sort=-%cpu | head

② 调整并发

例如:

Gunicorn:

不要:worker=20,在小机器上可能:worker=2~4 更合理。

3. 磁盘 IO —— 经常被忽略

很多“服务器慢”其实是磁盘慢。

表现

  • CPU很低
  • 内存够
  • 但是网页慢
  • 数据库慢

查看

top:

关注:

wa

例如:wa 50%,说明:大量等待磁盘。

工具:

iostat

安装:

yum install sysstat

查看:

iostat -x 1

优化

① 使用 SSD

云服务器:普通盘 -> SSD,提升明显。

② 数据库优化

例如:

MySQL:

  • 索引
  • 慢查询
  • buffer pool

4. 网络 —— 决定传输能力

影响:

  • 下载
  • 图片
  • 视频
  • API流量

查看:

iftop

或者:

sar -n DEV 1

3Mbps,对于:网站后台、API、数据库 通常够;对于:文件下载、图片站 可能不足。

二、Linux 性能检查顺序

遇到服务器慢:

不要乱重启。

按顺序:

第一步:看整体

uptime

看:

load average

例如:0.5 0.8 1.0,正常。

第二步:看 CPU

top

关注:

CPU
wa

第三步:看内存

free -h

关注:

available
swap

第四步:找大户

CPU:

ps aux –sort=-%cpu | head

内存:

ps aux –sort=-%mem | head

第五步:看日志

系统:

journalctl -xe

OOM:

dmesg | grep -i oom

三、服务部署前资源规划

不要:

安装软件

出问题

再优化

应该:

评估机器

估算资源

安装

限制资源

四、不同服务资源特点

服务 主要消耗
MySQL 内存 + IO
Redis 内存
Elasticsearch 内存 + CPU
Python FastAPI 内存 + CPU
PHP-FPM 内存
Nginx 少量资源
Gitea 内存

五、小服务器优化原则

1. 控制服务数量

不要:

  • MySQL
  • ES
  • Redis
  • Docker
  • Gitea

全部塞一起。

2. 限制服务资源

例如:

Java:

-Xmx

Python:

worker数量

MySQL:

buffer pool

3. 保留安全余量

不要让:RAM 使用 >90% 长期运行。

建议:70%左右,比较健康。

六、升级服务器判断

不要只看 CPU。

升级优先级:

Web + 数据库服务器

通常:

内存

磁盘

CPU

带宽

七、一套日常巡检命令

# 系统负载
uptime

# CPU/内存实时
top

# 内存
free -h

# 磁盘
df -h

# 磁盘IO
iostat -x 1

# 大内存进程
ps aux –sort=-%mem | head

# 大CPU进程
ps aux –sort=-%cpu | head

# OOM记录
dmesg | grep -i oom

# 网络
sar -n DEV 1

作者 admin

百度广告效果展示