`

prstat:系统进程监控

 
阅读更多
prstat:系统 进程监控
下面将深入探讨 Solaris 工具 prstat(1),帮助了解系统效用的全面实用工具
prstat – 全面的实用工具

Solaris 中最重要、使用最广的实用工具是 prstat(参见 prstat(1))。prstat 可以快速回答以下问题:

    *系统占用了多少 CPU 和内存?
    *系统效用了哪些进程(或用户 、 zone 、项目、任务)?
    *系统怎样使用进程/线程(用户绑定,I/O 绑定)?

在最简单的形式中,prstat <interval>(即 prstat 2)将检测 所有进程并根据 CPU 使用率报告数据。
进程的顺序根据当前的 CPU 使用率从高(最多)到低(最少)排列(% - 100% 表示所有系统 CPU 都完全利用)。对于列表中的每个进程,将打印以下信息:

    * PID:进程的进程 ID。
    *USERNAME:真实用户(登录)名称或真实用户 ID。
    *SIZE:进程的总虚拟内存大小,以 K、M 或 G 为单位。
    *RSS:进程的驻留集大小 (RSS),以 K、M 或 G 为单位。
    *STATE:进程的状态 (cpuN/sleep/wait/run/zombie/stop)。
    *PRI:进程的优先级。数字更大表示优先级更高。
    *NICE:优先级计算中使用的 nice 值。只有特定调度类中的进程才有 nice 值。
    *TIME:进程的累计执行时间。
    *CPU:进程使用的当前 CPU 时间的百分比。如果在非全局域中执行并且池设备是活动的,百分比将是 zone 绑定的池所使用的处理器集合中处理器的百分比。
    *PROCESS:进程的名称(执行文件 的名称)。
    *NLWP:进程中 lwps 的数量。

prstat 的 <interval> 参数是采样/刷新的时间间隔(以秒为单位)。
 

专题报告

专题报告 – 排序

除了 CPU 使用率之外,prstat 输出还可以按照其他指标排序。可以将 -s(降序)或 -S(升序)与指标选项一起使用(即 prstat -s time 2):

标准     注释

cpu      按照 CPU 使用率排序。这是默认设置。
pri        按照进程优先级排序。
rss       按照驻留集大小排序。
size      按照进程图像排序。
time      按照进程执行时间排序。

专题报告 – 连续模式

对 prstat 使用选项 -c,新的报告将打印在上一个报告的下方,而不是覆盖它。这在收集文件信息时非常有用(即 prstat -c 2 > prstat.txt)。选项 -n <number of output lines> 可以用来设置报告的最大长度。

专题报告 – 用户

对 prstat 使用 -a 或 -t 选项,将额外打印有关用户的报告。

专题报告 – zone

对 prstat 使用 -Z 选项,将额外打印有关 zone 的报告。

专题报告 – 项目(参见 projects(1))

对 prstat 使用 -J 选项,将额外打印有关项目的报告。

专题报告 – 任务(参见 newtask(1))

对 prstat 使用 -T 选项,将额外打印有关任务的报告。

专题报告 – Microstate Accounting
与 其他每个时间周期或每个固定时间间隔(通常为百分之几秒)收集 CPU 数据的操作系统不同,Solaris 10 合并了一种名为 Microstate Accounting 的技术,可以使用高分辨率时间戳测量每个时间的 CPU 数据,从而生成更为准确的数据统计。

Microstate Accounting 系统为线程和 CPU 维护准确的时间计数器。基于线程的 Microstate Accounting 跟踪每个线程中几个有意义的状态,以及用户和系统时间,包括陷阱时间、锁定时间、睡眠时间和等待时间。prstat 按进程(选项 -m)或线程(选项 -mL)报告微观状态。
 
 
 

prstat 使用场景

prstat 使用场景 – cpu 时延问题

测量 CPU 饱和度的一个重要方法是 prstat 的时延问题(LAT 列)输出。我们使用两个 CPU 密集型应用程序副本(cc_usr)


prstat – 使用 CPU 密集型应用程序观察时延问题

现在运行 prstat Microstate Accounting 报告,即 prstat -m 2 并记录输出:


prstat – prstat -m 2 输出

请观察最上面两行输出 PID 2223 和 PID 2224。可以清楚地看到两个流程的 LAT 微观状态(CPU 时延问题)都有较高的时间百分比(分别是 50% 和 52%)。其余时间如期花费在消耗方面(USR 微观状态)。此例清楚的表明,CPU 绑定应用程序争夺测试系统中惟一的一个 CPU,导致为访问 CPU 需要很长的等待时间(时延问题)。

prstat 使用场景 – 高系统时间

现在运行系统调用集中型应用程序(cc_sys)并观察 prstat 的输出。首先,启动一个 cc_sys 实例:
# cc_sys &
[1] 2310
#

prstat – 系统调用集中型应用程序

然后观察 prstat -m 2 输出:

prstat – prstat -m 2,系统调用集中型应用程序的输出

注意最上方 PID 2310 那一行。清楚地发现流程 cc_sys 占用了高系统时间使用率 (61%)。还可以发现 ICX/VCX (277/22) 的比率很高,这说明该进程经常无意识关闭 CPU。
 

prstat 使用常见

prstat 使用常见 – 过度锁定

经常可以看到,多处理器系统上应用程序的扩展性很差。根本原因之一可能在于,应用程序中的锁定设计很差,导致在同步时的等待时间过长。prstat 列 LCK 报告等待用户锁定花费的时间。

我 们看一个示例,一个示例程序实现了关键段的锁定机制,使用的是读/写锁定。该程序有 4 个线程需要访问共享的关键 zone 以进行读取,还有一个线程以写模式访问关键段。为了说明问题所在,有意减慢了写入器的速度,以便它会占用关键段一段时间(对于读取器这是有效的障碍)。

首先启动程序,比如写入器在关键段中花费了 0 毫秒(理想情况)。

# cc_lck 0 &
writer will sleep 0 useces
[1] 2626
#
cc_lck 0 – 在理想情况下运行

现在观察每个线程的微观状态。使用 prstat -mL -p 2626 2。


cc_lck 0 – prstat 输出

可以看到,所有 5 个线程几乎争夺到了相等的计算机资源。因为不管是读取器还是写入器都没有占用关键段很长的时间,没有记录等待时间。

现在重新执行整个测试,写入器将等待 10 毫秒。

# cc_lck 10 &
writer will sleep 10 useces
[1] 2656
#

现在再次观察微观状态。使用 prstat -mL -p 2656 2。


cc_lck 10 – prstat 输出

这次情况似乎不太一样了。有 4 个线程在等待关键段的锁定期间花费的时间占总时间的 84%。另一方面,写入器 (LWP #1) 有 (82%) 的时间在休眠。

在本例的应用程序中,如果查看源代码会发现存在明显的锁定问题,prstat Microstate Accounting 功能将帮助找出较大程序的锁定弱点.
 
分享到:
评论

相关推荐

    hp_prstat,HP下Weblogic高CPU检查工具

    标题中的“hp_prstat”是HP(Hewlett Packard)公司为监控其操作系统环境下的应用程序性能而设计的一款工具,特别适用于分析Weblogic服务器的CPU使用情况。在HP UNIX或HP-UX系统中,hp_prstat是性能监视的利器,能够...

    在Solaris上面如何查看进程占用cpu情况

    现在,我们来看一下Solaris内存监控: Solaris内存主要分为三个主要部分:核心内存,进程内存和文件系统缓存。 - **核心内存**:这部分内存用于操作系统内核,包括系统调用、中断处理和其他系统服务。 - **进程...

    用LoadRunner监控Unix资源使用情况

    LoadRunner可以监控进程的内存分配,包括堆(heap)和栈(stack)的使用,通过`prstat`命令或自定义脚本获取内存信息。 【知识点五】:监控磁盘I/O LoadRunner的文件系统监视器可以跟踪文件操作,包括读写速度和...

    Linux下如何查看某一进程的CPU占用率_linux进程cpu使用率.zip

    这一过程涉及到对系统监控工具的使用,理解进程与CPU之间的交互,以及如何解析输出信息。下面将详细介绍如何在Linux环境下查看某一进程的CPU占用率。 1. **使用`top`命令** `top`命令是最常用的实时监控系统资源的...

    Solaris资源监控命令

    `prstat` 是 Solaris 中强大的进程状态报告工具,可以实时显示系统中所有进程的 CPU 占用率、内存使用情况、线程信息等。通过`prstat -Z`可以查看进程的内存使用细节,而`prstat -s cpu`则会按 CPU 使用率排序显示...

    solaris系统维护.doc手册

    - 进程监控:`ps`命令查看进程状态,`top`提供实时的系统资源使用情况。 - 系统性能分析:`iostat`监控I/O性能,`vmstat`跟踪虚拟内存使用,`prstat`显示进程资源占用。 - 故障诊断工具:`kctf`和`mdb`是Solaris的...

    UNIX常用性能监控命令.doc

    在UNIX操作系统中,性能监控是确保系统稳定运行和优化资源使用的关键环节。本文将详细介绍一些常用的性能监控命令,包括查看网络连接性、检查网络接口、监控主机路由、磁盘I/O性能以及AIX系统的内存监视。 1. **...

    AIX_5L性能管理指南

    - **prstat**: 显示进程级的资源使用情况,包括内存和CPU。 - **pmap**: 显示进程的内存映射,了解内存分配和使用。 5. **磁盘和文件系统管理** - **df**: 显示文件系统的空间使用情况,包括总空间、已用空间和...

    SUN Solaris10 系统管理指南:基本管理

    7. **系统监控与日志**:通过`iostat`、`vmstat`、`prstat`等工具监控系统性能,同时,熟悉`/var/log`目录下的日志文件,有助于快速定位和解决问题。 8. **安全性**:理解Solaris的防火墙(ipf)、认证机制(PAM)...

    unix 和oracle的题目

    - **日志分析**:系统和Oracle的日志文件是诊断问题的重要来源,定期检查和分析日志是必要的维护工作。 通过以上知识点,我们可以深入理解Unix环境下的Oracle数据库管理,包括系统监控、性能优化和故障排查,这在...

    Oracle Solaris 9 - man pages section 1M: System Administration C

    - `syslogd`:系统日志守护进程。 - `prstat`:显示进程资源使用情况。 - `iostat`:监控I/O统计信息。 - `vmstat`:报告虚拟内存、CPU活动和系统活动。 6. **权限和用户管理**: - `chmod`, `chown`, `chgrp`...

    Performance Tools Guide and Reference

    AIX5L Version 5.3是一款由IBM开发的操作系统,其性能工具指南与参考手册详细介绍了如何利用系统内置的工具来监控、分析和优化系统的性能。这份文档是针对AIX5L Version 5.3及其后续版本编写的,旨在帮助用户更好地...

    unix常用命令

    - **sys**:系统时间百分比 - **wt**:等待时间百分比 - **idl**:闲置时间百分比 ##### vmstat命令字段解析 `vmstat`命令提供了关于进程、内存、分页、磁盘活动和系统中断的统计信息: - **procs**: - `r`:等待...

    AIX系统管理(初级)培训教程

    2. 性能监控:使用iostat、vmstat、mpstat等工具监控系统性能。 3. 故障排查:学习通过日志和性能数据定位系统问题。 八、备份与恢复 1. 系统备份:理解全备、增量、差异备份,使用tivoli、dump、tar等工具进行备份...

    solaris常用系统命令

    - **用途**: 显示与特定文件系统相关的进程,或杀死这些进程。 15. **磁盘分区信息**: - `format` 命令及其参数 - **用途**: 显示磁盘的分区情况。 16. **目录大小**: - `du -sk dir1` - **用途**: 显示指定...

    Oracle Solaris 11.2 Managing System Information, Processes, and

    - **进程监控**:介绍如何使用`ps`、`top`和`prstat`等工具实时查看和分析进程状态。 - **进程控制**:涵盖`kill`、`pkill`和`nice`命令的使用,以及如何调整进程优先级。 - **进程调度**:讨论Solaris的调度策略...

    AIX 5L System Administration IIIPerformance Management Student Notebook.pdf

    1. **监控工具与指标**:了解并使用各种内置的AIX监控工具,如topas、prstat、vmstat、iostat和netstat等,来分析CPU使用率、内存分配、磁盘I/O和网络活动等关键性能指标。 2. **资源调度器(Resource Management)...

    Solaris 性能与工具 常用命令

    5. **`sar`**:系统活动报告工具,可以收集和报告系统性能数据。`sar -u 1 5`会每1秒收集一次CPU利用率数据,持续5次。 6. **`netstat`**:网络状态检查工具,用于查看网络连接、路由表、接口统计等。`netstat -s`...

Global site tag (gtag.js) - Google Analytics