linux性能评估命令
linux性能评估命令详细介绍
在 Linux 系统中,性能评估涉及 CPU、内存、磁盘 I/O、网络、进程等多个维度。以下是常用的性能评估命令及工具,按功能分类整理:
一、CPU 性能评估
top/htop- 功能:实时显示进程资源占用(CPU、内存、进程状态等),支持交互式操作(排序、终止进程等)。
- 特点:
htop比top界面更友好,支持多核 CPU 可视化、进程树查看。 - 常用参数:bash
username
vmstat- 功能:综合显示 CPU、内存、swap、I/O 等核心指标的统计信息(平均负载、上下文切换、中断次数等)。
- 常用参数:bash
M
mpstat- 功能:针对多核 CPU,显示每个 CPU 核心的详细使用情况(用户态、内核态、空闲、I/O 等待等)。
- 常用参数:bash
mpstat ALLmpstat
uptime- 功能:快速查看系统运行时间、当前登录用户数、1/5/15 分钟平均负载(Load Average)。
- 输出解读:负载平均值超过 CPU 核心数时,可能存在 CPU 瓶颈。
二、内存性能评估
free- 功能:显示物理内存、swap 空间的使用情况(总容量、已用、空闲、缓冲 / 缓存等)。
- 常用参数:bash
vmstat(内存相关指标)- 关注
swap列(swap 交换量)和free/used内存值,判断是否存在内存不足导致的 swap 使用。
- 关注
/proc/meminfo- 功能:通过文件查看更详细的内存信息(如内核内存、DMA 内存、NUMA 节点内存等)。
- 命令:bash
/proc/meminfo
top/htop- 直接查看进程的内存占用(
RES列:常驻内存;VIRT列:虚拟内存)。
- 直接查看进程的内存占用(
三、磁盘 I/O 性能评估
iostat- 功能:分析磁盘设备的 I/O 性能(吞吐量、响应时间、队列长度等)。
- 常用参数:bash
iostatiostat
- 关键指标:
%util:磁盘繁忙度(接近 100% 表示磁盘瓶颈)。await:I/O 请求平均等待时间(ms,值越高性能越差)。
iotop- 功能:实时显示各进程的磁盘 I/O 占用情况(读写速度、比例等),类似
top的 I/O 版。 - 安装:bash
iotopdnf iotop
- 功能:实时显示各进程的磁盘 I/O 占用情况(读写速度、比例等),类似
dstat- 功能:多功能统计工具,可同时显示 CPU、内存、磁盘、网络等指标,支持自定义组合。
- 常用参数:bash
dstat
lsof- 功能:列出所有打开的文件和进程关联,可用于排查磁盘被占用的进程(如删除文件后句柄未释放)。
- 命令:bash
/dev/sda1
四、网络性能评估
netstat- 功能:显示网络连接、路由表、网络接口统计信息(流量、错误包、丢包等)。
- 常用参数:bash
ss- 功能:比
netstat更高效,用于查看 socket 统计信息(TCP/UDP 连接状态、端口占用等)。 - 常用参数:bash
ssss
- 功能:比
iftop- 功能:实时监控网络接口的带宽使用情况(按进程或 IP 显示上传 / 下载速率)。
- 安装:bash
iftop
nload- 功能:实时显示每个网络接口的入站 / 出站流量,支持多窗口可视化。
- 命令:bash
nload eth0
tcpdump- 功能:抓包工具,用于分析网络流量(如排查网络延迟、协议异常等)。
- 示例:bash
tcpdump eth0 port
五、进程与系统整体信息
ps- 功能:静态显示进程状态(CPU、内存、启动时间、命令行等)。
- 常用参数:bash
aux
pstree- 功能:以树状结构显示进程父子关系,便于查看进程依赖。
- 命令:bash
pstree
pidstat- 功能:按进程统计资源使用情况(CPU、内存、I/O、上下文切换等),支持历史数据查询(需安装
sysstat)。 - 常用参数:bash
pidstatpidstat
- 功能:按进程统计资源使用情况(CPU、内存、I/O、上下文切换等),支持历史数据查询(需安装
w- 功能:显示当前登录用户及他们正在运行的进程,包含系统负载、平均运行时间等信息。
六、性能分析与调优工具
perf- 功能:Linux 内核级性能剖析工具,用于定位 CPU 热点函数、内核瓶颈等,支持生成火焰图。
- 示例:bash
perf record PIDperf report
sysstat工具包- 包含工具:
iostat、mpstat、pidstat、sar等,需手动安装(多数 Linux 发行版默认不安装)。 - 安装:bash
sysstatdnf sysstat
- 包含工具:
dmesg- 功能:查看内核日志,用于排查硬件驱动、设备初始化等底层问题(如磁盘 / 网络设备异常)。
- 命令:bash
error
七、综合诊断建议
- 定位瓶颈步骤:
- CPU 高负载:用
top、mpstat确认是否为用户态(us高)或内核态(sy高)问题。 - 内存不足:检查
free的swap使用、vmstat的si/so交换速率,结合top查看内存占用高的进程。 - 磁盘瓶颈:通过
iostat的%util和await、iotop的进程 I/O 占用判断。 - 网络问题:用
iftop、nload监控带宽,tcpdump分析包级异常(如重传、延迟)。
- CPU 高负载:用
- 工具组合使用:
- 实时监控:
htop(进程)+vmstat(系统)+iftop(网络)+iotop(磁盘)。 - 历史分析:
sar(系统活动报告,需sysstat支持)。
- 实时监控:
- 注意事项:
- 部分工具需管理员权限(加
sudo)。 - 高负载时避免运行大量诊断命令,以免加剧资源消耗。
- 部分工具需管理员权限(加
通过以上工具的组合使用,可以全面评估 Linux 系统的性能状态,定位资源瓶颈并进行调优。