第六十一章 使用 ^PERFSAMPLE 监控进程 - 分析维度

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 第六十一章 使用 ^PERFSAMPLE 监控进程 - 分析维度

第六十一章 使用 ^PERFSAMPLE 监控进程 - 分析维度

分析维度

^PERFSAMPLE 工具中描述了分析的维度。本节提供了一些附加信息。

  • cpu - 使用 CPU? (进程状态表示预期的 CPU 使用率)

注意:cpuyesno 值不是 on-cpu 时间的真实度量,而是一个估计值。 ^PERFSAMPLE进程状态推断 CPU 使用, IRIS 状态跟踪可能与 CPU 使用不直接相关。

如果由于 CPU(瞬时或持续)过度使用而导致进程正在等待 OS 调度程序使 CPU 可用,这也可能导致 cpu 不准确。

  • ns - Namespace (current namespace)
  • pid - PID (process ID)
  • rou - Routine (name of current routine)
  • state - Process State (process state string, e.g. GSETW)
  • waits - 内核等待状态(延迟进程的内核级条件)。
  • trace - 内核跟踪(替代带有内核级详细信息的“状态”)
  • wtrace - 反向内核跟踪(反向内核跟踪,在任何等待状态停止)

tracewtrace 维度具有层次结构。选择一个祖先(用省略号 (...) 表示)会向下移动到层次结构级别。选择一个非祖传物品进入下一个维度的分析。 h 键在此分层视图和平面视图之间切换。在祖先上按 a 键会聚合其所有后代的后续维度。

等待维度

如果未发现进程正在等待 IRIS 内核内部的任何内容,则等待维度为空。非空值表示需要进程等待(内部阻塞)的条件。

请务必注意,这些是导致进程在应用程序的直接控制之外等待的内部条件。因此,由于冲突的 LOCK 命令、$SYSTEM.Event 等而导致的等待不计入此处。尽管如此,许多值,尤其是更常见的值,都是应用程序可以间接影响的东西。例如,如果样本显示关键应用程序进程经常等待 diskio,则表明该进程正在等待从磁盘读取数据库块,并且可能受益于并行化、预取或更多数据库缓存。同样,示例显示的一个进程经常等待 inusebufwt 遇到数据库块冲突,可能需要在应用程序级别进行调查(借助 ^BLKCOL 实用程序)。此维度中的值采用以下助记值,这些值将来可能会发生变化:

  • diskio:等待数据库物理块读取
  • inusebufwt:由于块冲突而等待(^BLKCOL 实用程序可能有助于确定应用程序原因)
  • expand:等待数据库扩容
  • ecpwait:等待 ECP 服务器的响应
  • jrniowait:日志缓冲区中没有空间,正在等待日志 I/O
  • jrsyncblk:等待日志数据被提交
  • jrnlckwait:等待访问日志缓冲区
  • mirrorwait:等待活跃的备份镜像成员
  • mirrortrouble:由于镜像故障状态而被阻止
  • globwait:由于内部条件阻止全局更新而等待
  • aiowait:等待异步磁盘 I/O 完成
  • wdqwait:等待写周期完成
  • freebuf:全局缓冲区已完全耗尽并等待数据库写入
  • gfownwait:对数据库的访问被阻止
  • resenqXYZ:等待内部资源 XYZ

注意:虽然其中许多对应于包含 W 字母标志(例如 GSETWGORDW 等)的规范进程状态,但并非所有情况都如此——diskio 是一个非常常见的例子——而且并非所有 W 状态标志的情况都有内部这里反映的原因(例如上面提到的 LOCKW)。

保存分析

查看示例后,可以保存它们以供将来分析。为此,请按分析登录页面中的向左箭头。这会将返回到初始的“收集样本”页面,但带有将样本保存到文件的附加选项。选择此选项并输入所需的文件名,例如 perfsample001.txt^PERFSAMPLE 将文件保存到安装目录\mgr 目录。

要打开保存的分析,请使用 LOAD 标签启动 ^PERFSAMPLE 并指定要打开的文件。例如:

USER>set $namespace = "%SYS"
 
%SYS>do LOAD^PERFSAMPLE

File: C:\MyIRIS\mgr\perfsample001.txt
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
Linux
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
|
1月前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
57 4
|
2月前
|
运维 JavaScript jenkins
鸿蒙5.0版开发:分析CppCrash(进程崩溃)
在HarmonyOS 5.0中,CppCrash指C/C++运行时崩溃,常见原因包括空指针、数组越界等。系统提供基于posix信号机制的异常检测能力,生成详细日志辅助定位。本文详解CppCrash分析方法,涵盖异常检测、问题定位思路及案例分析。
66 4
|
2月前
|
运维 监控 JavaScript
鸿蒙next版开发:分析JS Crash(进程崩溃)
在HarmonyOS 5.0中,JS Crash指未处理的JavaScript异常导致应用意外退出。本文详细介绍如何分析JS Crash,包括异常捕获、日志分析和典型案例,帮助开发者定位问题、修复错误,提升应用稳定性。通过DevEco Studio收集日志,结合HiChecker工具,有效解决JS Crash问题。
65 4
|
4月前
|
监控
MASM32写的免费软件“ProcView/系统进程监控” V1.4.4003 说明和下载
MASM32写的免费软件“ProcView/系统进程监控” V1.4.4003 说明和下载
|
4月前
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
57 1
|
3月前
|
NoSQL Linux 程序员
进程管理与运行分析
进程管理与运行分析
28 0
|
5月前
|
数据采集 监控 API
如何监控一个程序的运行情况,然后视情况将进程杀死并重启
这篇文章介绍了如何使用Python的psutil和subprocess库监控程序运行情况,并在程序异常时自动重启,包括多进程通信和使用日志文件进行断点重续的方法。
|
4月前
|
并行计算 API 调度
探索Python中的并发编程:线程与进程的对比分析
【9月更文挑战第21天】本文深入探讨了Python中并发编程的核心概念,通过直观的代码示例和清晰的逻辑推理,引导读者理解线程与进程在解决并发问题时的不同应用场景。我们将从基础理论出发,逐步过渡到实际案例分析,旨在揭示Python并发模型的内在机制,并比较它们在执行效率、资源占用和适用场景方面的差异。文章不仅适合初学者构建并发编程的基础认识,同时也为有经验的开发者提供深度思考的视角。
|
6月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能