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

发布于:2025-08-05 ⋅ 阅读:(19) ⋅ 点赞:(0)

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 值:

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


网站公告

今日签到

点亮在社区的每一天
去签到