Linux 服务器性能优化:性能监控,系统性能调优,进程优先级,内核升级全解析
一、影响Linux服务器性能的核心因素及监控方式
影响服务器性能的关键因素主要包括CPU、内存、磁盘I/O、网络,各因素的监控命令及指标如下:
1. CPU
基础信息查看:
cat /proc/cpuinfo
:查看CPU详细信息(核心数、型号等)。lscpu
:以更直观的格式展示CPU架构信息。
负载监控:
uptime
:查看1分钟、5分钟、15分钟内的CPU平均负载。[root@ etc]# uptime 18:22:58 up 7:50, 2 users, load average: 0.01, 0.02, 0.05
全面性能监控(vmstat):
命令:vmstat
(输出系统整体性能统计),关键指标包括:procs
:r
:等待运行的进程数(数值过高说明CPU繁忙)。b
:非中断休眠状态的进程数(通常与I/O相关)。
memory
:swpd
:虚拟内存使用量。free
:空闲内存。buff
:缓冲(临时存储即将写入磁盘的数据)。cache
:缓存(临时存储从磁盘读取的数据)。
swap
:si
:从磁盘交换到内存的页数量(频繁交换说明内存不足)。so
:从内存交换到磁盘的页数量。
IO
:bi
:写入块设备的块数。bo
:从块设备读取的块数。
system
:in
:每秒中断数。cs
:每秒上下文切换次数(过高可能导致CPU开销大)。
cpu
:us
:用户进程占用CPU的百分比。sy
:内核进程占用CPU的百分比。id
:CPU空闲时间百分比(过低说明CPU负载高)。wa
:I/O等待占用CPU的百分比(过高说明磁盘I/O瓶颈)。st
:等待I/O时消耗的CPU时间(通常与虚拟化相关)。
2. 内存
- 监控命令:
top
:实时查看进程内存占用(按M
键按内存使用率排序)。free -m
(或-g
):以MB(或GB)为单位显示内存使用情况(总内存、已用、空闲、缓冲/缓存)。
3. 磁盘I/O
- 监控命令(需安装sysstat工具):
iostat -d
:查看磁盘I/O统计,关键指标:tps
:每秒发送到磁盘的I/O请求数。kB_read/s
:每秒读取的数据量(KB)。kB_wrtn/s
:每秒写入的数据量(KB)。kB_read
:累计读取的数据总量。kB_wrtn
:累计写入的数据总量。
4. 网络
基础监控命令:
ping
:测试网络连通性。ss -tnl
:查看TCP监听端口(类似netstat
,更高效)。
netstat -tulnp
:查看TCP/UDP端口及对应进程(t
:TCP,u
:UDP,l
:监听,n
:数字格式,p
:进程)。
二、系统性能调优(基于tuned工具)
tuned通过静态/动态调优调整系统设置,适配不同场景:
核心命令:
tuned-adm list
:列出所有可用调优配置文件。tuned-adm active
:查看当前激活的配置文件。tuned-adm profile <配置文件>
:切换到指定配置文件。tuned-adm recommend
:推荐适合当前系统的配置文件。tuned-adm off
:关闭tuned调优。
常用配置文件及作用:
balanced
:平衡节能与性能(默认推荐)。desktop
:优化交互式应用响应速度(基于balanced)。throughput-performance
:最大化系统吞吐量。latency-performance
:牺牲部分性能换取低延迟。network-latency
:低网络延迟(基于latency-performance)。network-throughput
:最大化网络吞吐量(基于throughput-performance)。powersave
:优先节能。virtual-guest
:虚拟机(客户机)性能优化。virtual-host
:虚拟化主机性能优化。
三、进程优先级调整(nice值)
nice值范围:-20(最高优先级)~19(最低优先级),默认值为0(继承父进程)。
- 优先级:nice值越低,优先级越高(越不易让出CPU);反之则越低。
权限限制:
- 普通用户:仅能提高自己进程的nice值(降低优先级),无法修改其他用户进程。
- root用户:可任意调整所有进程的nice值(提高或降低优先级)。
相关命令:
- 查看进程nice值(按nice降序排序):
ps axo pid,comm,nice --sort=-nice
。 - 查看指定进程的nice值:
ps -o pid,comm,nice <进程ID>
。 - 调整进程优先级:
renice -n <nice值> <进程ID>
(如renice -n 19 1234
降低进程1234的优先级)。
- 查看进程nice值(按nice降序排序):
四、Linux内核优化
1. 内核版本管理
- 升级内核:
rpm -ivh kernel-<版本>.rpm
(需对应系统架构的内核包)。 - 查看内核版本:
uname -r
(如3.10.0-957.el7.x86_64
)。 - 版本号组成:主版本号.次版本号.末版本号-修订号(次版本号:偶数为稳定版,奇数为开发版)。
2. 内核模块管理
- 查看加载的模块:
lsmod | grep <模块名>
(如lsmod | grep xfs
)。 - 查看模块信息:
modinfo <模块名>
(如modinfo xfs
)。 - 加载模块:
modprobe <模块名>
(如modprobe ext4
)。 - 卸载模块:
modprobe -r <模块名>
(如modprobe -r ext4
)。
3. 内核参数配置(sysctl)
开启IP转发(用于路由/网关):
- 编辑配置文件:
vim /etc/sysctl.conf
,添加net.ipv4.ip_forward = 1
。 - 生效配置:
sysctl -p /etc/sysctl.conf
。
- 编辑配置文件:
禁止ICMP(禁ping):
- 编辑配置文件:
vim /etc/sysctl.conf
,添加net.ipv4.icmp_echo_ignore_all = 1
。
- 编辑配置文件:
- 生效配置:
sysctl -p /etc/sysctl.conf
。
- 禁止ICMP(禁ping):
- 编辑配置文件:
vim /etc/sysctl.conf
,添加net.ipv4.icmp_echo_ignore_all = 1
。 - 生效配置:
sysctl -p /etc/sysctl.conf
。
- 编辑配置文件: