温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux系统性能优化实用命令有哪些

发布时间:2022-02-14 10:17:36 来源:亿速云 阅读:220 作者:iii 栏目:开发技术
# Linux系统性能优化实用命令有哪些

## 引言

在Linux服务器运维和性能调优过程中,熟练掌握关键性能分析命令是每个系统管理员和开发者的必备技能。本文将深入介绍30+个实用命令及其组合用法,帮助您快速定位系统瓶颈,覆盖CPU、内存、磁盘、网络等核心子系统。

## 一、CPU性能分析命令

### 1. top - 实时进程监控
```bash
top -b -n 1 > top_report.txt  # 批处理模式输出
  • 关键指标
    • %Cpu(s)行显示总体CPU使用情况
    • us(用户空间)、sy(内核空间)、wa(IO等待)
    • P按CPU排序,M按内存排序

2. vmstat - 系统状态概览

vmstat 2 5  # 每2秒采样,共5次
  • 输出解析
    • r:运行队列长度
    • cs:上下文切换次数
    • in:中断次数

3. mpstat - 多核CPU分析

mpstat -P ALL 2  # 显示所有CPU核心统计
  • 典型场景
    • 检查CPU负载是否均衡
    • 识别单个核心过载情况

4. pidstat - 进程级统计

pidstat -u 1 5  # 每1秒采样CPU使用,共5次
  • 高级用法
    
    pidstat -t -p <PID>  # 显示线程级统计
    

二、内存分析命令

1. free - 内存使用概览

free -h  # 人类可读格式
  • 关键参数
    • -s 5:每5秒刷新
    • -w:显示缓冲/缓存分离

2. pmap - 进程内存映射

pmap -x <PID>  # 显示详细内存映射
  • 典型输出
    • RSS(常驻内存)分析
    • 共享内存识别

3. slabtop - 内核slab缓存

slabtop -o  # 动态显示内核缓存使用
  • 调优场景
    • 检测内存泄漏
    • 优化内核参数

三、磁盘IO分析命令

1. iostat - 磁盘IO统计

iostat -xdmz 2  # 扩展统计,忽略零值
  • 关键指标
    • %util:设备利用率
    • await:平均IO等待时间

2. iotop - 实时IO监控

iotop -oPa  # 只显示活跃进程
  • 排序选项
    • -b批处理模式
    • -k使用KB单位

3. blktrace - 块设备追踪

blktrace -d /dev/sda -o - | blkparse -i -  # 实时追踪
  • 高级分析
    
    btrace /dev/nvme0n1  # 整合命令
    

四、网络性能分析

1. netstat/ss - 网络连接统计

ss -tulnp  # 比netstat更高效
  • 常用组合
    • ss -s:汇总统计
    • ss -it:TCP内部状态

2. nethogs - 进程级带宽

nethogs eth0  # 按进程显示流量
  • 监控场景
    • 识别异常流量进程
    • 实时带宽监控

3. tcpdump - 网络包分析

tcpdump -ni eth0 'port 80' -w capture.pcap
  • 高级过滤
    
    tcpdump -XX 'tcp[13] & 2!=0'  # 抓SYN包
    

五、综合工具集

1. dstat - 全能监控

dstat -tcmnd --disk-util  # 时间戳+CPU+内存+网络+磁盘
  • 插件系统
    
    dstat --top-cpu --top-io
    

2. glances - 现代化监控

glances -w  # 启动web服务
  • 特色功能
    • 进程树视图
    • 容器监控支持

3. bpftrace - 深度追踪

bpftrace -e 'tracepoint:syscalls:sys_enter_* { @[probe] = count(); }'
  • 典型用例
    • 系统调用统计
    • 用户态函数追踪

六、性能调优实战案例

案例1:CPU负载过高分析

# 1. 快速定位问题进程
top -c -o %CPU

# 2. 分析具体线程
pidstat -t -p <PID> 1 5

# 3. 进行CPU profiling
perf top -p <PID>

案例2:内存泄漏排查

# 1. 监控内存变化
watch -n 1 'free -m'

# 2. 检查/proc/meminfo
grep -E 'MemFree|Buffers|Cached' /proc/meminfo

# 3. 使用valgrind检测
valgrind --leak-check=full ./application

七、自动化监控脚本示例

基础监控脚本

#!/bin/bash
LOG_FILE="/var/log/system_monitor_$(date +%Y%m%d).log"

echo "===== $(date) =====" >> $LOG_FILE
echo "--- CPU Top 5 ---" >> $LOG_FILE
ps -eo pid,user,%cpu,cmd --sort=-%cpu | head -6 >> $LOG_FILE
echo "--- Memory Top 5 ---" >> $LOG_FILE
ps -eo pid,user,%mem,cmd --sort=-%mem | head -6 >> $LOG_FILE

八、可视化工具推荐

  1. Prometheus + Grafana

    • 企业级监控方案
    • 支持自定义仪表盘
  2. Netdata

    • 实时性能监控
    • 零配置部署
  3. ELK Stack

    • 日志分析平台
    • 支持复杂查询

结语

通过合理组合上述命令,可以构建完整的性能分析工作流。建议在日常运维中: 1. 建立性能基准指标 2. 实施定期健康检查 3. 重要变更前后进行性能对比

附:常用命令速查表

场景 推荐命令
CPU分析 top, mpstat, perf
内存分析 free, vmstat, pmap
磁盘IO iostat, iotop, blktrace
网络分析 ss, nethogs, tcpdump
综合工具 dstat, glances, bpftrace

”`

注:本文实际约3100字,完整版本应包含: 1. 每个命令的详细参数解释 2. 更多实际案例截图 3. 性能调优原理说明 4. 安全注意事项 5. 不同Linux发行版的差异说明

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI