Linux服务器性能检测与调优指南
Linux服务器性能检测与调优指南
一、影响性能的核心因素
- CPU
- 内存(Mem)
- 磁盘I/O
- 网络(Network)
二、性能检测工具
1. CPU性能检测
-
查看CPU信息
cat /proc/cpuinfo # 详细CPU参数 lscpu # 简洁CPU摘要
-
系统平均负载
uptime # 显示1/5/15分钟的平均负载(理想值≤CPU核心数)
-
实时系统监控
vmstat 1 # 每秒刷新一次(关键指标说明见下表)
类别 指标 含义 procs r
等待运行的进程数 b
非中断休眠状态的进程数 memory swpd
虚拟内存使用量 free
空闲物理内存 buff/cache
缓冲/缓存内存 swap si
从磁盘交换到内存的页数量 so
从内存交换到磁盘的页数量 I/O bi
写入到块设备的块数 bo
从块设备中读取的块数 system in
每秒的中断数 cs
每秒环境(上下文)切换的次数 cpu us
用户进程占用cpu时间的百分比 sy
内核进程占用cpu时间的百分比 id
cpu处于空闲状态的时间百分比 wa
IO等待占用cpu时间的百分比 st
等待IO时所消耗的cpu时间
2. 内存性能检测
top # 动态监控进程和内存
free -m # 以MB为单位显示内存使用(-g为GB)
3. 磁盘I/O性能检测
iostat -d 1 # 每秒刷新磁盘I/O数据(需安装sysstat包)
指标 | 含义 |
---|---|
tps | 每秒发送到磁盘I/O的请求数 |
kB_read/s | 每秒读取数据的块数(KB) |
kB_wrtn/s | 每秒写入数据的块数(KB) |
kB_read | 读取所有数据的块数(KB) |
kB_wrtn | 写入所有数据的块数(KB) |
4. 网络性能检测
ping 192.168.1.1 # 测试网络延迟
ss -tnl # 监听TCP端口(推荐)
netstat -tulnp # 传统网络连接查看
三、系统调优策略
1. 使用tuned动态调优
tuned-adm list # 列出所有调优配置文件
tuned-adm active # 查看当前生效配置
tuned-adm recommend # 获取系统推荐配置
tuned-adm profile throughput-performance # 切换配置(示例)
tuned-adm off # 关闭调优
常用配置文件说明:
balanced
:非常适合需要在节能和性能之间进行折中的系统desktop
:从balanced配置文件衍生而来,加快交互式应用响应速度throughput-performance
:调优系统,以获得最大吞吐量network-throughput
:从throughput-performance配置文件衍生而来,应用其他网络调优参数,以获得最大网络吞吐量latency-performance
:非常适合需要牺牲性能来获得低延迟的服务器系统network-latency
:从latency-performance配置文件中衍生而来,它可以启用额外的网络调优参数,以提供低网络延迟powersave
:调优系统,以最大程度实现节能virtual-guest
:当前系统在虚拟机上运行时,调优系统以获得最高性能virtual-host
:当系统充当虚拟机主机时,调优系统以获得最高性能
2. 进程优先级调整(nice值)
-
优先级范围:
-20
(最高)到19
(最低) -
查看进程优先级:
ps axo pid,comm,nice --sort=-nice # 按优先级降序排列 ps -o pid,comm,nice 进程ID # 查看某一进程
-
验证完整性:
sha1sum /dev/zero & #创建一个持续消耗 CPU 资源的后台进程 pgrep -l sha1sum #查找所有包含 "sha1sum" 的进程并显示详细信息
-
修改优先级:
renice -n 19 1234 # 将PID为1234的进程优先级设为最低
权限规则:
- 普通用户只能降低优先级(提高nice值)
- Root用户可自由调整所有进程
3. 内核优化
-
升级内核:
rpm -ivh kernel-3.10.0-*.rpm # 安装新内核 reboot # 重启生效
-
查看内核模块:
ls /lib/modules #查看内核版本 uname -r #查看内核版本
-
内核模块管理:
lsmod | grep ext4 # 查询模块 modinfo ext4 # 查询模块详细信息 modprobe ext4 # 加载模块 modprobe -r ext4 # 卸载模块
-
内核参数调优(编辑
/etc/sysctl.conf
):net.ipv4.ip_forward = 1 # 启用IP转发 net.ipv4.icmp_echo_ignore_all=1 # 禁止Ping响应
应用配置:
sysctl -p /etc/sysctl.conf
四、关键调优场景
- 高负载服务器
- 使用
throughput-performance
配置 - 优化进程nice值,确保核心服务高优先级
- 使用
- 虚拟机环境
- 宿主机:
virtual-host
- 虚拟机:
virtual-guest
- 宿主机:
- 网络服务器
- 选择
network-latency
(低延迟)或network-throughput
(高吞吐)
- 选择
- 安全加固
- 内核禁Ping:
net.ipv4.icmp_echo_ignore_all=1
- 内核禁Ping:
提示:调优后务必使用
vmstat
、iostat
等工具验证效果!