Linux 系统性能调优与核心配置

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. 示例:验证进程优先级

  1. 启动一个高负载进程并后台运行:

    sha1sum /dev/zero & # 生成大量计算任务

2.查看进程 PID 与默认 nice 值:

java 复制代码
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 转发允许服务器转发不同网段的数据包(如作为路由器或防火墙):

  1. 编辑配置文件:

    vim /etc/sysctl.conf

2.添加以下内容:

复制代码
net.ipv4.ip_forward = 1 # 1 表示开启,0 表示关闭

3.生效配置:

复制代码
sysctl -p /etc/sysctl.conf

2. 禁止 ICMP ping 响应(增强安全性)

禁止服务器响应 ping 请求,减少网络探测:

  1. 编辑配置文件:

    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 系统的稳定性与运行效率。