插件窝 干货文章 linux系统性能的常用命令有哪些

linux系统性能的常用命令有哪些

进程 功能 bash 示例 127    来源:    2025-04-05

在 Linux 系统中,监控和分析性能的常用命令可以分为以下几类,以下是详细整理:


1. 系统整体状态

top / htop

  • 功能:实时显示系统资源占用(CPU、内存、进程等)。
  • 常用操作
    • top:默认界面,按 q 退出。
    • htop(需安装):更友好的交互式界面,支持鼠标操作。
    • 排序:P(CPU)、M(内存)、T(运行时间)。

vmstat

  • 功能:查看虚拟内存、进程、CPU 活动等。
  • 示例bash vmstat 1 5 # 每秒1次,输出5次

uptime

  • 功能:显示系统运行时间、平均负载(1/5/15 分钟)。 bash uptime

2. CPU 监控

mpstat(需安装 sysstat

  • 功能:查看多核 CPU 的详细利用率。
  • 示例bash mpstat -P ALL 1 # 每秒显示所有CPU核心的使用情况

pidstat

  • 功能:监控进程的 CPU 使用情况。
  • 示例bash pidstat -u 1 5 # 每秒1次,显示进程CPU使用,共5次

3. 内存监控

free

  • 功能:显示内存和交换分区使用情况。
  • 常用选项bash free -h # 人类可读格式(GB/MB) free -m # 以MB为单位

pmap

  • 功能:查看进程的内存映射。
  • 示例bash pmap -x <PID> # 显示指定进程的详细内存占用

4. 磁盘 I/O 监控

iostat(需安装 sysstat

  • 功能:监控磁盘 I/O 和 CPU 使用情况。
  • 示例bash iostat -x 1 # 每秒显示磁盘扩展统计

iotop

  • 功能:实时显示磁盘 I/O 占用最高的进程(需 root)。 bash sudo iotop

df / du

  • 功能
    • df:查看文件系统磁盘空间使用。 bash df -h # 人类可读格式
    • du:统计目录/文件占用空间。 bash du -sh /path/to/dir # 汇总目录大小

5. 网络监控

netstat / ss

  • 功能:查看网络连接、端口、路由等。
  • 常用选项bash netstat -tuln # 显示监听端口 ss -s # 更快的替代工具,显示摘要

sar(需安装 sysstat

  • 功能:历史网络流量统计(结合 -n 选项)。
  • 示例bash sar -n DEV 1 # 每秒显示网络设备流量

iftop / nload

  • 功能:实时监控网络带宽。 bash sudo iftop -i eth0 # 按流量排序显示 nload eth0 # 简洁的带宽监控

6. 进程分析

ps

  • 功能:查看进程快照。
  • 常用组合bash ps aux | grep nginx # 查找特定进程 ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head # 按CPU排序

strace / ltrace

  • 功能:跟踪进程的系统调用或库调用。
  • 示例bash strace -p <PID> # 跟踪运行中进程 ltrace /bin/ls # 跟踪库调用

7. 高级工具

perf

  • 功能:性能分析工具(需安装 linux-tools)。
  • 示例bash perf top # 实时分析函数占用 perf stat ls # 统计命令执行性能

dmesg

  • 功能:查看内核日志(排查硬件/驱动问题)。 bash dmesg | tail -20 # 显示最近20条内核日志

sar(系统历史数据)

  • 功能:从 sysstat 包中收集的历史性能数据。 bash sar -u -f /var/log/sa/sa10 # 查看某天的CPU历史

总结表格

类别 命令 主要用途
整体状态 top, vmstat, uptime 实时负载、资源概览
CPU mpstat, pidstat 多核/进程CPU使用率
内存 free, pmap 内存占用、进程内存详情
磁盘 iostat, iotop I/O 负载、热点进程
网络 netstat, iftop 连接、带宽监控
进程 ps, strace 进程详情、系统调用跟踪
高级工具 perf, sar 深度性能分析、历史数据

使用建议

  1. 快速诊断:先用 tophtop 定位异常进程,再通过 strace/perf 深入分析。
  2. 历史问题:利用 sar 查看历史数据(需提前启用 sysstat 服务)。
  3. 脚本化:结合 awk/grep 过滤关键指标(如 vmstat | awk '{print $1,$2}')。

根据具体场景选择合适的工具组合,能高效定位性能瓶颈!