Linux 系统性能调优与核心配置指南
一、Linux 服务器性能因素监控
影响 Linux 服务器性能的核心因素包括 CPU、内存、磁盘、网络,通过以下工具可全面监控其状态:
1. CPU 性能监控
CPU 是系统运算核心,需关注负载、使用率及进程调度情况:
命令 |
功能 |
关键指标 |
cat /proc/cpuinfo |
查看 CPU 硬件信息(核心数、频率等) |
processor(核心数)、cpu MHz(频率) |
lscpu |
以格式化方式展示 CPU 信息 |
CPU(s)(总核心数)、Thread(s) per core(超线程数) |
uptime |
查看系统负载(1/5/15 分钟平均值) |
负载值 ≤ CPU 核心数为正常,超过则表示过载 |
vmstat |
实时监控系统整体性能(含 CPU) |
- r:等待运行的进程数(过高表示 CPU 繁忙) - us:用户进程占用 CPU 百分比 - sy:内核进程占用 CPU 百分比 - id:CPU 空闲百分比 - wa:IO 等待占用 CPU 百分比(过高表示磁盘瓶颈) |
2. 内存(Memory)性能监控
内存性能直接影响系统运行效率,需关注使用率、缓存及交换分区:
命令 |
功能 |
关键指标 |
top |
实时查看进程内存占用(动态刷新) |
%MEM(进程内存占比)、RES(实际使用物理内存) |
free -m |
以 MB 为单位显示内存使用情况 |
- total:总内存 - used:已使用内存 - free:空闲内存 - buff/cache:缓冲与缓存(可释放的临时数据) - swap:交换分区使用情况(过高表示内存不足) |
vmstat(内存部分) |
监控内存与交换分区活动 |
- swpd:虚拟内存使用量 - si:从磁盘交换到内存的页数(频繁非零表示内存不足) - so:从内存交换到磁盘的页数 |
3. 磁盘(Disk)性能监控
磁盘 I/O 是常见性能瓶颈,需关注读写速度与请求队列:
命令 |
功能 |
关键指标 |
iostat -d(需安装 sysstat 包) |
监控磁盘 I/O 性能 |
- tps:每秒 I/O 请求数 - kB_read/s:每秒读取数据量 - kB_wrtn/s:每秒写入数据量 - kB_read/kB_wrtn:累计读写总量 |
vmstat(IO 部分) |
监控块设备 I/O 活动 |
- bi:写入块设备的块数 - bo:从块设备读取的块数(数值过大表示磁盘繁忙) |
4. 网络(Network)性能监控
网络性能影响服务响应速度,需关注连接状态与吞吐量:
命令 |
功能 |
关键指标 |
ping 目标IP |
测试网络连通性与延迟 |
time(响应时间,越小越好) |
ss -tnl |
查看 TCP 监听端口(不含进程) |
确认服务端口是否正常开放 |
netstat -tulnp(需安装 net-tools 包) |
查看网络连接及关联进程 |
- Local Address(本地监听地址) - PID/Program name(占用端口的进程) |
二、系统性能调优(tuned 工具)
tuned 是 Linux 系统自带的性能调优工具,支持静态与动态调优,通过预设配置文件适配不同场景:
1. tuned 核心特性
- 静态调优:服务启动时应用固定配置(如 CPU 频率、内存策略)。
- 动态调优:实时监控系统活动,自动调整配置(如负载高时提升 CPU 性能,空闲时节能)。
2. 常用调优配置文件及适用场景
配置文件 |
适用场景 |
核心优化方向 |
balanced |
通用服务器(默认) |
平衡性能与节能 |
desktop |
桌面系统 |
加快交互式应用响应(如浏览器、办公软件) |
throughput-performance |
高负载服务器(如数据库、Web 服务) |
最大化系统吞吐量(优先 CPU 与内存性能) |
latency-performance |
低延迟需求场景(如金融交易、实时通信) |
降低响应延迟(牺牲部分吞吐量) |
network-latency |
网络低延迟需求(如游戏服务器) |
优化网络栈,降低数据包处理延迟 |
network-throughput |
高网络吞吐量需求(如文件服务器) |
提升网络带宽利用率 |
powersave |
笔记本、边缘设备 |
最大化节能(降低 CPU 频率、关闭闲置硬件) |
virtual-guest |
虚拟机(如 KVM 客户机) |
适配虚拟化环境,提升资源利用率 |
virtual-host |
虚拟化主机(如 KVM 宿主机) |
优化对虚拟机的资源分配 |
3. tuned 操作命令
命令 |
功能 |
tuned-adm list |
列出所有可用调优配置文件 |
tuned-adm recommend |
自动推荐适合当前系统的配置文件 |
tuned-adm profile <配置文件> |
切换到指定配置文件(如 tuned-adm profile throughput-performance) |
tuned-adm active |
查看当前激活的配置文件 |
tuned-adm off |
关闭 tuned 调优服务 |
三、进程优先级管理(nice 级别)
Linux 通过 nice 级别调整进程优先级,确保重要进程优先获取 CPU 资源:
1. nice 级别核心概念
- 范围:-20(最高优先级)~ 19(最低优先级),默认值为 0。
- 规则:nice 值越高,优先级越低(进程越容易让出 CPU);值越低,优先级越高。
- 权限:普通用户仅能提高自身进程的 nice 值(降低优先级);root 用户可任意调整所有进程。
2. 进程优先级操作命令
命令 |
功能 |
ps axo pid,comm,nice |
列出所有进程的 PID、名称及 nice 值(按默认排序) |
ps axo pid,comm,nice --sort=nice |
按 nice 值升序排列(从高优先级到低优先级) |
nice -n <值> <命令> |
以指定 nice 值启动进程(如 nice -n 5 ./script.sh) |
renice <值> -p <PID> |
调整已有进程的 nice 值(如 renice -5 -p 1234,需 root 权限) |
3. 示例:验证进程优先级
- 启动一个高负载进程并后台运行:
sha1sum /dev/zero & # 生成大量计算任务
2.查看进程 PID 与默认 nice 值:
pgrep -l sha1sum # 输出格式:PID sha1sum
ps -o pid,comm,nice <PID> # 查看指定进程的 nice 值(默认 0)
3.调整优先级(需 root 权限):
renice -10 -p <PID> # 提高优先级(降低 nice 值)
四、Linux 内核模块管理
内核模块是动态加载到内核的代码片段(如驱动、文件系统支持),可按需加载 / 卸载以优化资源:
1. 内核模块操作命令
命令 |
功能 |
示例 |
lsmod |
列出当前加载的内核模块 |
`lsmod |
modinfo <模块名> |
查看模块详细信息(版本、依赖、参数) |
modinfo xfs |
modprobe <模块名> |
加载模块(自动解决依赖) |
modprobe ext4(加载 ext4 文件系统模块) |
modprobe -r <模块名> |
卸载模块(需无进程使用) |
modprobe -r ext4 |
uname -r |
查看当前内核版本 |
如 3.10.0-957.el7.x86_64 |
ls /lib/modules/或(uname -r) |
查看当前内核的模块文件目录 |
2. 内核版本解析(以 3.10.0-957.el7.x86_64 为例)
- 主版本号(3):重大功能变更标识。
- 次版本号(10):偶数表示稳定版,奇数表示开发版。
- 修订版本号(0-957):bug 修复与小改进。
五、网络核心配置(复习)
1. 开启 IP 转发(实现网关功能)
IP 转发允许服务器转发不同网段的数据包(如作为路由器或防火墙):
- 编辑配置文件:
vim /etc/sysctl.conf
2.添加以下内容:
net.ipv4.ip_forward = 1 # 1 表示开启,0 表示关闭
3.生效配置:
sysctl -p /etc/sysctl.conf
2. 禁止 ICMP ping 响应(增强安全性)
禁止服务器响应 ping 请求,减少网络探测:
- 编辑配置文件:
vim /etc/sysctl.conf
2.添加以下内容:
net.ipv4.icmp_echo_ignore_all = 1 # 1 表示禁止,0 表示允许
3.生效配置:
sysctl -p /etc/sysctl.conf
总结
- 性能监控:通过 vmstat、top、iostat 等工具实时跟踪 CPU、内存、磁盘、网络状态,定位瓶颈。
- 调优策略:使用 tuned 工具根据场景选择配置文件,平衡性能与资源消耗。
- 进程管理:通过 nice 级别调整进程优先级,确保关键服务优先运行。
- 内核配置:合理管理内核模块,按需开启 IP 转发或禁止 ping,优化网络与安全性。
掌握以上工具与配置,可显著提升 Linux 系统的稳定性与运行效率。