当前位置: 首页 > news >正文

Linux 系统调优工具与实践指南

目录

一、系统调优工具概述

二、CPU 负载监控工具

1. uptime(快速查看负载)

2. top(实时进程监控)

3. ps(定位高 CPU 进程)

4. mpstat(CPU 核心详细统计)

三、内存状态监控工具

1. free(内存使用概览)

2. /proc/meminfo(详细内存信息)

3. 定位高内存进程

四、磁盘 I/O 监控工具

1. 查看文件系统块大小

2. iostat(磁盘 I/O 统计)

3. dd(磁盘速度测试)

4. iotop(实时 I/O 进程监控)

五、网络状态监控工具

1. nload(实时带宽监控)

2. nethogs(进程网络占用)

3. ab(HTTP 压测辅助)

六、系统整体状态工具

1. vmstat(多维度统计)

2. sar(历史与实时统计)

七、系统调优实践

1. CPU 调优

(1)调整进程优先级(nice 值)

(2)CPU 亲和力绑定(taskset)

(3)CPU 信息查询

2. 磁盘 I/O 调优

(1)资源限制(ulimit)

3. 内核参数调优(防御 SYN 洪水)

4. 网卡绑定(Bonding)

主备模式配置(常用)

八、调优总结

一、系统调优工具概述

核心工具包:需提前安装 sysstat(含 sar、iostat、mpstat)、iotopnethogsnload
调优维度:CPU、内存、磁盘 I/O、网络,需结合工具输出判断子系统瓶颈及相互影响。

二、CPU 负载监控工具

1. uptime(快速查看负载)

uptime  # 输出:时间 运行时间 登录用户数 1/5/15分钟平均负载
  • 判断标准:1 分钟负载 > CPU 核心数 → 系统可能过载(需结合 5/15 分钟趋势)。

2. top(实时进程监控)

top  # 按P键按CPU使用率降序排列

3. ps(定位高 CPU 进程)

ps -aux --sort -pcpu | head -10  # 显示CPU使用率前10的进程

4. mpstat(CPU 核心详细统计)

mpstat -P ALL 1 5  # 显示所有CPU核心,1秒采样1次,共5次
  • 关键指标
    • %usr:用户态 CPU 占比
    • %sys:内核态 CPU 占比
    • %iowait:I/O 等待占比(高则 I/O 瓶颈)
    • %idle:空闲占比(低则 CPU 过载)

三、内存状态监控工具

1. free(内存使用概览)

free -m  # 以MB为单位显示内存
  • 核心指标available(实际可用内存,含可回收缓存)。

2. /proc/meminfo(详细内存信息)

cat /proc/meminfo  # 关注Active(活跃内存)、Inactive(可换出内存)

3. 定位高内存进程

# 方法1:top按内存排序(按M键)
# 方法2:ps筛选
ps -aux --sort -rss | head -10  # 按物理内存(rss)降序

四、磁盘 I/O 监控工具

1. 查看文件系统块大小

文件系统命令
EXT4`tune2fs -l /dev/sda1grep "Block size"`
XFS`xfs_growfs -l /dev/sda1grep bsize`

2. iostat(磁盘 I/O 统计)

iostat -d -k -p /dev/sda 1 5  # 仅显示磁盘,KB单位,1秒采样5次
  • 关键指标kB_read/s(每秒读)、kB_wrtn/s(每秒写)。

3. dd(磁盘速度测试)

# 写速度测试(跳过缓存)
dd if=/dev/zero of=testfile bs=1M count=1000 oflag=direct; sync
# 读速度测试
hdparm -t --direct /dev/sda

4. iotop(实时 I/O 进程监控)

iotop -o -d 1  # 仅显示活跃I/O进程,1秒刷新

五、网络状态监控工具

1. nload(实时带宽监控)

nload  # 显示Incoming/Outgoing实时流量(Curr/Avg/Max/Ttl)

2. nethogs(进程网络占用)

nethogs  # 按进程显示网络带宽使用

3. ab(HTTP 压测辅助)

ab -n 1000 -c 2 http://www.baidu.com/  # 1000请求,并发2
  • 核心指标Requests per second(吞吐量)、Time per request(响应时间)。

六、系统整体状态工具

1. vmstat(多维度统计)

vmstat 1 5  # 1秒采样5次,输出进程、内存、I/O、CPU信息
  • 关键指标
    • r:运行队列长度(>CPU 核心数 ×3 则繁忙)
    • b:阻塞进程数(高则 I/O 繁忙)
    • si/so:swap 换入 / 换出(非 0 则内存不足)
    • wa:I/O 等待 CPU 时间(>20% 则 I/O 瓶颈)

2. sar(历史与实时统计)

# 记录CPU到文件
sar -u 2 5 -o cpu.sar
# 查看内存
sar -r 1 5
# 查看网络
sar -n DEV 1 5
# 读取历史记录
sar -u -f cpu.sar
  • 历史日志/var/log/sa/saXX(XX 为日期)。

七、系统调优实践

1. CPU 调优

(1)调整进程优先级(nice 值)
nice -n -5 vim a.txt  # 启动时设优先级(-20最高,19最低)
renice -n 6 24318     # 修改运行中进程优先级(24318为PID)

(2)CPU 亲和力绑定(taskset)
taskset -c 0 vim a.txt        # 绑定进程到CPU0
taskset -cp 20146             # 查看进程20146的CPU绑定
taskset -c 1,3 vim b.txt      # 绑定到CPU1和3

(3)CPU 信息查询
# 物理CPU数量
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
# 逻辑CPU数量
cat /proc/cpuinfo | grep "processor" | wc -l
# CPU核心数
cat /proc/cpuinfo | grep "cpu cores" | uniq

2. 磁盘 I/O 调优

(1)资源限制(ulimit)

编辑配置文件 /etc/security/limits.conf

* soft nofile 1024000  # 软限制:文件描述符
* hard nofile 1024000  # 硬限制:文件描述符
* soft nproc 65535     # 软限制:进程数
* hard nproc 65535     # 硬限制:进程数
  • 临时生效:ulimit -n 10000
  • 查看限制:ulimit -n(软)、ulimit -Hn(硬)

3. 内核参数调优(防御 SYN 洪水)

编辑 /etc/sysctl.conf

net.ipv4.tcp_synack_retries = 0    # 不重发SYN+ACK
net.ipv4.tcp_syncookies = 1        # 启用SYN Cookie
net.ipv4.tcp_max_syn_backlog = 20480# 半连接队列长度
net.ipv4.tcp_tw_reuse = 1          # 复用TIME_WAIT连接
fs.file-max = 819200               # 系统最大文件句柄
net.core.somaxconn = 65535         # 连接队列长度
  • 生效命令:sysctl -p

4. 网卡绑定(Bonding)

主备模式配置(常用)
# 创建bond0
nmcli connection add type bond ifname bond0 con-name bond0 miimon 100 mode active-backup ip4 192.168.1.63/24
# 添加从网卡
nmcli connection add type bond-slave ifname ens33 master bond0
nmcli connection add type bond-slave ifname ens38 master bond0
  • 验证:cat /proc/net/bonding/bond0

八、调优总结

模块核心工具调优手段适用场景
CPUtop、mpstat、vmstatnice、taskset、绑定核心高 CPU 负载、进程调度优化
内存free、/proc/meminfo调整 swap 策略、限制进程内存内存泄漏排查、资源争用
磁盘 I/Oiostat、iotop、ddulimit、文件系统优化、RAID 配置高并发读写、备份任务
网络nload、nethogs、sar网卡绑定、内核参数、带宽限制高可用、防 SYN 攻击
内核sysctl、/proc/sys网络队列、文件句柄、进程限制高并发服务、安全加固
http://www.dtcms.com/a/353919.html

相关文章:

  • 个人博客系统系统---测试报告
  • HarmonyOS布局实战:用声明式UI构建自适应电商卡片
  • 【源码分析】@vue/runtime-dom/src/apiCustomElement.ts 解析
  • 重磅升级,Pixso 2.0赋能HarmonyOS应用设计与开发
  • 安卓11 12系统修改定制化_____如何修改固件 实现给指定内置的应用无障碍权限
  • Sybase 安装与备份
  • 【c++】超好玩游戏
  • 一、CSS3 新增选择器(非 “属性”,但为核心基础)
  • day082-初识ElasticStack
  • 路由基础(二):路由表和FIB表
  • Ansible文件管理与Jinja2模板
  • Linux查看SFTP登录不上的问题以及解决
  • 【Simulink专题】Simulink模型:MIL单元测试
  • 宝塔发布ktg-mes
  • vue cli 没使用的图片会被打包吗
  • 2025年08月27日Github流行趋势
  • 怎么更新 cargo.exe ?(Rust 工具链)
  • etcd-基本工作原理及部署
  • react + G2(v4) 应用
  • 【C++游记】模板升级
  • 飞腾 D2000 八核处理器板卡深度解析:全国产化硬件方案与丰富扩展能力
  • Linux中创建SFTP账号
  • Netty:现代网络应用的利器
  • 软件定义汽车(SDV)调试——如何做到 适配软件定义汽车(SDV)?(中)
  • 造作AI-你的人工智能创作助手
  • 某中医院信息化能力提升:智能组网设备助力网络架构优化
  • 【日常学习】2025-8-27 测开框架设计模式探索04
  • Element整体操作样式
  • 数据分析编程第五步:数据准备与整理
  • DDD之事件机制(9)