cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法(二)

简介: cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法

cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法(一)https://developer.aliyun.com/article/1474367


/proc/stat 文件提供了关于系统各种统计信息的实时信息,包括CPU使用情况、中断、上下文切换等。以下是对 /proc/stat 的详细使用方法:

  1. 查看整体统计信息:
cat /proc/stat
  1. 运行上述命令将输出 /proc/stat 文件中的整体统计信息。
  2. 显示CPU使用情况:
grep 'cpu ' /proc/stat
  1. 上述命令将显示所有CPU的使用情况,包括用户态、系统态、空闲等时间。
  2. 显示指定CPU核心的使用情况:
grep 'cpu<core_number>' /proc/stat
  1. 替换为特定CPU核心的编号,例如,cpu0 表示第一个CPU核心。
  2. 显示中断信息:
grep 'intr ' /proc/stat
  1. 此命令将显示中断的统计信息,包括每个中断的触发次数。
  2. 显示上下文切换信息:
grep 'ctxt ' /proc/stat
  1. 此命令将显示上下文切换的统计信息,包括自引导以来的上下文切换次数。
  2. 显示软中断信息:
grep 'softirq ' /proc/stat
  1. 此命令将显示软中断的统计信息,包括每个软中断的触发次数。
  2. 显示系统启动时间:
grep 'btime ' /proc/stat
  1. 此命令将显示系统启动的时间戳。
  2. 显示内存页的统计信息:
grep 'page ' /proc/stat
  1. 此命令将显示内存页的统计信息,包括页的读写、交换等情况。
  2. 显示系统启动后的空闲时间:
grep 'idle ' /proc/stat
  1. 此命令将显示系统启动后的总空闲时间,包括所有CPU核心。
  2. 显示CPU核心的详细信息:
grep 'cpu<core_number>' /proc/stat
  1. 替换 为特定CPU核心的编号,例如,cpu0
  2. 显示中断的详细信息:
grep 'intr' /proc/stat
  1. 此命令将显示中断的详细信息,包括每个中断的触发次数。
  2. 显示上下文切换的详细信息:
grep 'ctxt' /proc/stat
  1. 此命令将显示上下文切换的详细信息,包括自引导以来的上下文切换次数。
  2. 显示软中断的详细信息:
grep 'softirq' /proc/stat
  1. 此命令将显示软中断的详细信息,包括每个软中断的触发次数。
  2. 显示CPU的详细信息:
grep '^cpu[0-9]' /proc/stat
  1. 此命令将显示每个CPU核心的详细信息,包括用户态、系统态、空闲等时间。
  2. 显示CPU时间的详细信息:
grep '^cpu ' /proc/stat
  1. 此命令将显示总体CPU时间的详细信息,包括用户态、系统态、空闲等时间。

/proc/stat 文件的内容可能有点庞大,但可以根据具体需求使用上述命令提取感兴趣的统计信息。

进程CPU使用率(top、pidstat、ps、htop、atop)

pidstat 是一个用于监视进程资源使用情况的工具,通常属于 sysstat 软件包的一部分。下面是一些 pidstat 的详细使用方法:

pidstat [选项] [间隔时间 [次数]]

常见选项:

  • -u:显示 CPU 使用情况。
  • -r:显示内存使用情况。
  • -d:显示磁盘 I/O 使用情况。
  • -w:显示上下文切换和任务切换。
  • -p :指定监视的进程号。
  • -t:显示线程级别的统计。
  • -h:以可读格式显示统计信息。
  • -I :设置报告间隔时间(秒)。
  • -U:显示 CPU 使用情况的累积值。

示例用法:

  1. 监视 CPU 使用情况:
pidstat -u 1
  1. 这将以1秒的间隔显示每个进程的 CPU 使用情况。
  2. 监视特定进程的 CPU 使用情况:
pidstat -u -p <pid> 1
  1. 替换 为要监视的进程号。
  2. 显示内存使用情况:
pidstat -r 1
  1. 这将以1秒的间隔显示每个进程的内存使用情况。
  2. 显示磁盘 I/O 使用情况:
pidstat -d 1
  1. 这将以1秒的间隔显示每个进程的磁盘 I/O 使用情况。
  2. 显示上下文切换和任务切换:
pidstat -w 1
  1. 这将以1秒的间隔显示每个进程的上下文切换和任务切换情况。
  2. 显示线程级别的统计:
pidstat -t 1
  1. 这将以1秒的间隔显示每个进程的线程级别的统计信息。
  2. 显示 CPU 使用情况的累积值:
pidstat -U 1
  1. 这将以1秒的间隔显示 CPU 使用情况的累积值。

注意事项:

  • pidstat 默认情况下会显示所有正在运行的进程。可以通过 -p 选项指定要监视的特定进程。
  • 间隔时间和次数是可选的,如果不提供,默认将显示一次统计信息。
  • pidstat 的详细输出包括 CPU 用户空间时间、CPU 内核空间时间、CPU 空闲时间、内存使用、磁盘 I/O 等信息。

ps 是一个用于显示当前系统进程状态的命令。以下是 ps 命令的一些详细使用方法:

ps [选项]

常见选项:

  1. 进程选择选项:
  • a:显示所有进程,包括其他用户的进程。
  • u:以用户为中心显示进程信息。
  • x:显示没有控制终端的进程。
ps aux
  1. 这将显示所有用户的详细进程信息。
  2. 输出格式选项:
  • o:自定义输出格式。
  • f:以树状结构显示进程关系。
ps aux --sort=-%cpu
  1. 这将按 CPU 使用率降序显示所有用户的详细进程信息。
  2. 进程状态选项:
  • r:显示运行中的进程。
  • s:显示休眠中的进程。
ps aux --state R
  1. 这将显示所有运行中的进程。
  2. 进程排序选项:
  • --sort:按指定列进行排序。
ps aux --sort=-%mem
  1. 这将按内存使用率降序显示所有用户的详细进程信息。
  2. 其他选项:
  • e:显示环境变量。
  • www:宽输出,适用于显示长命令行。
ps auxe
  1. 这将显示带有环境变量的所有用户的详细进程信息。

示例用法:

  1. 显示当前用户的所有进程:
ps
  1. 显示所有用户的详细进程信息:
ps aux
  1. 以树状结构显示进程关系:
ps auxf
  1. 按 CPU 使用率降序显示所有用户的详细进程信息:
ps aux --sort=-%cpu
  1. 显示运行中的进程:
ps aux --state R
  1. 按内存使用率降序显示所有用户的详细进程信息:
ps aux --sort=-%mem
  1. 显示带有环境变量的所有用户的详细进程信息:
ps auxe

注意事项:

  • ps 命令的选项和输出格式可能在不同的操作系统上有所不同。上述示例主要针对 Linux 系统,其他 Unix 系统可能有些许区别。

htop 是一个交互式的系统监视工具,它可以以颜色和图形的形式展示系统的各种信息。以下是 htop 的一些详细使用方法:

  1. 安装 htop:
    在大多数 Linux 发行版中,可以使用包管理器安装 htop
sudo apt-get install htop  # Ubuntu/Debian
sudo yum install htop      # CentOS/RHEL
  1. 运行 htop:
    直接在终端中输入 htop 并按回车键即可启动 htop
htop
  1. htop 主要界面元素:
  • 顶部区域: 包含系统整体的负载信息、CPU 使用率、内存使用情况等。
  • 进程列表: 显示当前运行的进程列表,按 CPU 使用率或内存使用率排序。
  • 底部区域: 提供可用的快捷键列表。
  1. 基本操作:
  • 使用箭头键在进程列表中导航。
  • 使用 F5 刷新显示。
  • 使用 F9 打开进程操作菜单,可以选择杀死进程等选项。
  • 使用 F10 退出 htop
  1. 颜色标识:
    htop 使用颜色标识不同类型的进程和系统资源使用情况,比如 CPU 使用率、内存使用率、交换空间等。
  2. 进程操作:
  • 使用 F9 进入进程操作菜单,选择需要的操作,如杀死进程。
  • 使用 k 键杀死选中的进程。
  1. 搜索进程:
  • 使用 / 键输入关键字搜索进程。
  1. 设置选项:
  • 使用 F2 进入设置界面,可以配置显示选项、排序方式等。
  1. 快捷键:htop提供了一系列快捷键,可以在底部区域查看。例如:
  • F1 显示帮助。
  • F3F4 用于搜索进程。
  • F6 选择排序方式。

注意事项:

  • htop 可以根据系统配置和权限的不同而提供不同的功能,一些操作可能需要 root 权限。
  • htop 的功能和界面可能在不同的操作系统和版本中有所不同,上述介绍主要基于 Linux 系统。

atop 是一个类似于 top 的系统性能监视工具,但它提供了更多的功能和更详细的信息。以下是 atop 的一些详细使用方法:

  1. 安装 atop:
    在大多数 Linux 发行版中,可以使用包管理器安装 atop
sudo apt-get install atop  # Ubuntu/Debian
sudo yum install atop      # CentOS/RHEL
  1. 运行 atop:
    直接在终端中输入 atop 并按回车键即可启动 atop
atop
  1. atop 主要界面元素:
  • 顶部区域: 包含系统整体的负载信息、CPU 使用率、内存使用情况等。
  • 进程列表: 显示当前运行的进程列表,按 CPU 使用率或内存使用率排序。
  • 底部区域: 提供了可用的快捷键列表。
  1. 基本操作:
  • 使用箭头键在进程列表中导航。
  • 使用 t 切换显示模式,包括 cpumemdisk 等。
  • 使用 P 切换到按 CPU 使用率排序的进程列表,使用 M 切换到按内存使用率排序的列表。
  1. 颜色标识:
    atop 使用颜色标识不同类型的进程和系统资源使用情况,类似于 htop
  2. 进程操作:
  • 使用 k 键杀死选中的进程。
  • 使用 r 键重启选中的进程。
  1. 搜索进程:
  • 使用 : 键输入关键字搜索进程。
  1. 设置选项:
  • 使用 O 进入设置界面,可以配置显示选项、排序方式等。
  1. 显示磁盘和网络信息:
  • 使用 d 切换到显示磁盘信息。
  • 使用 n 切换到显示网络信息。
  1. 快捷键:

atop 提供了一系列快捷键,可以在底部区域查看。例如:

  • ? 显示帮助。
  • q 退出 atop
  1. 查看历史记录:
  • 使用 t 键可以查看系统资源的历史记录。
  1. 保存数据:
  • 使用 W 键将当前 atop 的状态保存到文件中。

注意事项:

  • atop 需要 root 权限来访问某些系统信息。
  • atop 提供了丰富的信息和功能,可以通过手册页 (man atop) 查看更详细的文档。

系统上下文切换(vmstat)

进程上下文切换(pidstatat)

软中断(top、/proc/softirqs、mpstat)

/proc/softirqs 文件提供了有关软中断(softirqs)的信息。软中断是内核用于在内核上下文中异步执行延迟工作的一种机制。/proc/softirqs 文件显示了每个软中断的统计信息。以下是使用该文件的一些详细方法:

  1. 查看 /proc/softirqs 内容:
    直接使用 cat 命令查看 /proc/softirqs 文件的内容:
cat /proc/softirqs
  1. 输出将显示软中断的统计信息,按照软中断类型和 CPU 核心分组。
  2. 软中断的列说明:输出的列包括:
  • CPU 核心编号: 列的第一列显示 CPU 的编号。
  • 软中断类型: 除了 CPU 列之外的列包含不同类型的软中断。
  • Counter: 每个软中断类型的计数器,表示软中断已经触发的次数。
  1. 示例如下:
CPU0       CPU1       CPU2       CPU3       
...
HI:      16693      12848       9694      15849   Hardware interrupts
...
TIMER:   35946      29293      29872      28846   Timer interrupts
...
  1. 解释软中断类型:
  • HI (Hardware interrupts): 硬中断,表示硬件设备引起的中断。
  • TIMER (Timer interrupts): 定时器中断,由系统定时器引起的中断。
  • 其他类型的软中断也可能出现,取决于系统配置和正在运行的任务。
  1. 监控软中断:
  • 如果你想监控软中断的变化,可以使用类似 watch 命令:
watch -n 1 cat /proc/softirqs
  • 这将每秒刷新一次软中断的统计信息。

注意事项:

  • /proc/softirqs 文件提供了一种实时查看软中断统计信息的方法,用于诊断系统性能问题。
  • 软中断是内核中的一种异步执行机制,通常用于处理网络数据包、磁盘 I/O 等。
  • 在解释软中断统计时,重要的是查看相邻两次采样之间的变化,而不仅仅关注绝对值。

硬中断(vmstat、/proc/interrupts)

/proc/interrupts 文件提供了关于系统中断的详细信息,包括每个 IRQ(Interrupt Request)线路的中断请求统计。以下是使用该文件的详细方法:

  1. 查看 /proc/interrupts 内容:
    直接使用 cat 命令查看 /proc/interrupts 文件的内容:
cat /proc/interrupts
  1. 输出将显示每个 IRQ 线路上的中断请求统计,按照 CPU 核心和中断类型分组。
  2. IRQ 统计列的说明:输出的列包括:
  • IRQ: 中断请求线路的编号。
  • CPU 核心编号: 列的第一列显示 CPU 的编号。
  • Count: 每个 IRQ 线路的中断请求数量。
  1. 示例如下:
CPU0       CPU1       CPU2       CPU3       
...
16:          0          0          0          0   IR-PCI-MSI 344064-edge xhci_hcd
17:          0          0          0          0   IR-PCI-MSI 294912-edge i915
18:          0          0          0          0   IR-PCI-MSI 262144-edge ahci[0000:00:1f.2]
...
  1. 解释中断类型:
  • IR-PCI-MSI: 使用 PCI MSI(Message Signaled Interrupts)机制的设备的中断。
  • edge: 使用传统的中断触发方式的设备。
  1. 其他类型的中断也可能出现,具体取决于系统硬件和正在运行的任务。
  2. 监控中断:
  • 如果你想监控中断的变化,可以使用类似 watch 命令:
watch -n 1 cat /proc/interrupts
  • 这将每秒刷新一次中断统计信息。

注意事项:

  • /proc/interrupts 文件提供了实时查看系统中断统计信息的方法,用于诊断系统性能问题。
  • 中断请求是硬件设备(如网卡、磁盘控制器)向 CPU 发送的信号,通知 CPU 某事件已发生需要处理。
  • 通过监控中断,可以了解系统中哪些设备产生了中断,以及这些中断是否超过了正常范围,有助于识别可能的性能问题。


cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法(三)https://developer.aliyun.com/article/1474369

相关文章
|
3月前
|
监控 Linux
性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
【8月更文挑战第18天】性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
162 4
|
3月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Redis的指标显示CPU为70%,而Service Load却达到了100%。这两个指标意义的解释及如何缓解呢?
【Azure Redis 缓存】Redis的指标显示CPU为70%,而Service Load却达到了100%。这两个指标意义的解释及如何缓解呢?
|
4月前
|
监控 Unix Linux
ps aux 命令使用查看内存、cpu使用排名与top的区别
ps aux 命令使用查看内存、cpu使用排名与top的区别
675 1
|
6月前
|
缓存 Linux
linux性能分析之内存分析(free,vmstat,top,ps,pmap等工具使用介绍)
这些工具可以帮助你监视系统的内存使用情况、识别内存泄漏、找到高内存消耗的进程等。根据具体的问题和需求,你可以选择使用其中一个或多个工具来进行内存性能分析。注意,内存分析通常需要综合考虑多个指标和工具的输出,以便更好地理解系统的行为并采取相应的优化措施。
179 6
|
6月前
|
存储 缓存 监控
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
1248 0
|
6月前
|
缓存 监控 网络协议
cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法(三)
cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法
154 0
|
10天前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
|
19天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
192 2
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
130 5
|
1月前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
44 0