目录

一、系统调优工具概述

二、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/sda1 grep "Block size"`
XFS `xfs_growfs -l /dev/sda1 grep 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

八、调优总结

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

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐