`

jvm监控-ps命令

 
阅读更多

1. ps简介前面介绍的两个命令(who、w命令)都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的linux进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

2. ps命令及其参数

ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。

该命令语法格式如下:ps [选项]

下面对命令选项进行说明:

◆-e 显示所有进程。

◆-f 全格式。

◆-h 不显示标题。

◆-l 长格式。

◆-w 宽输出。

◆a 显示终端上的所有进程,包括其他用户的进程。

◆r 只显示正在运行的进程。

◆x 显示没有控制终端的进程。

O[+|-] k1 [,[+|-] k2 [,…]] 根据SHORT KEYS、k1、k2中快捷键指定的多级排序顺序显示进程列表。对于ps的不同格式都存在着默认的顺序指定。这些默认顺序可以被用户的指定所覆盖。其中 “+”字符是可选的,“-”字符是倒转指定键的方向。

pids 只列出指定进程的情况。各进程ID之间使用逗号分隔。该进程列表必须在命令行参数的最后一个选项后面紧接着给出,中间不能插入空格。比如:ps -f1,4,5。

以下介绍长命令行选项,这些选项都使用“--”开头:

◆--sort X[+|-] key [,[+|-] key [,…]] 从SORT KEYS段中选一个多字母键。“+”字符是可选的,因为默认的方向就是按数字升序或者词典渌承颉1热纾?ps -jax -sort=uid,-ppid,+pid。

◆--help 显示帮助信息。

◆--version 显示该命令的版本信息。

在前面的选项说明中提到了排序键,接下来对排序键作进一步说明。需要注意的是排序中使用的值是ps使用的内部值,并非仅用于某些输出格式的伪值。

排序键列表

短格式

长格式

说 明

◆c-cmd可执行的简单名称

◆C-cmdline完整命令行

◆f-flags长模式标志

◆g-pgrp进程的组ID

◆G-tpgid控制tty进程组ID

◆j-cutime累计用户时间

◆J-cstime累计系统时间

◆k-utime用户时间

◆K-stime系统时间

◆m-min_flt次要页错误的数量

◆M-maj_flt主要页错误的数量

◆n-cmin_flt累计次要页错误

◆N-cmaj_flt累计主要页错误

◆o-session对话ID

◆p-pid进程ID

◆P-ppid父进程ID

◆r-rss驻留大小

◆R-resident驻留页

◆s-size内存大小(千字节)

◆S-share共享页的数量

◆t-ttytty次要设备号

◆T-start_time进程启动的时间

◆U-uid-UID

◆u-user用户名

◆v-vsize总的虚拟内存数量(字节)

◆y-priority内核调度优先级

3. 常用ps命令参数

前面两节介绍的参数可能让读者觉得有些可怕,实际上这是一个非常容易使用的命令,一般的用户只需掌握一些最常用的命令参数就可以了。 最常用的三个参数是u、a、x,下面将通过例子来说明其具体用法。

以root身份登录系统,查看当前进程状况

$ ps

PID TTY TIME COMMAND

5800 ttyp0 00:00:00 bash

5835 ttyp0 00:00:00 ps

可以看到,显示的项目共分为四项,依次为PID(进程ID)、TTY(终端名称)、TIME(进程执行时间)、COMMAND(该进程的命令行输入)。

使用u选项来查看进程所有者及其他一些详细信息,如下所示:

$ ps u

USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND

test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash

test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u

在bash进程前面有条横线,意味着该进程便是用户的登录shell,所以对于一个登录用户来说带短横线的进程只有一个。还可以看到%CPU、%MEM两个选项,前者指该进程占用的CPU时间和总时间的百分比;后者指该进程占用的内存和总内存的百分比。

在这种情况下看到了所有控制终端的进程;但是对于其他那些没有控制终端的进程还是没有观察到,所以这时就需要使用x选项。使用x选项可以观察到所有的进程情况。

下面是使用x选项的例子:

$ ps x

PID TTY STAT TIME COMMAND

5800 ttyp0 S 0:00 -bash

5813 ttyp1 S 0:00 -bash

5921 ttyp0 S 0:00 man ps

5922 ttyp0 S 0:00 sh -c /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz | /

5923 ttyp0 S 0:00 /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz

5924 ttyp0 S 0:00 /usr/bin/less -is

5941 ttyp1 R 0:00 ps x

可以发现突然一下子就多出了那么多的进程。这些多出来的进程就是没有控制终端的进程。

前面看到的所有进程都是test用户自己的。其实还有许多其他用户在使用着系统,自然也就对应着其他的很多进程。如果想对这些进程有所了解,可以使用a选项来查看当前系统所有用户的所有进程。经常使用的是aux组合选项,这可以显示最详细的进程情况。

$ ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.0 1136 64 ? S Nov25 0:02 init [3]

root 2 0.0 0.0 0 0 ? SW Nov25 0:00 [kflushd]

root 3 0.0 0.0 0 0 ? SW Nov25 0:03 [kupdate]

root 4 0.0 0.0 0 0 ? SW Nov25 0:00 [kpiod]

root 5 0.0 0.0 0 0 ? SW Nov25 0:00 [kswapd]

root 163 0.0 0.1 1628 332 ? S Nov25 0:02 sshd

root 173 0.0 0.0 1324 200 ? S Nov25 0:00 syslogd

root 181 0.0 0.0 1420 0 ? SW Nov25 0:00 [klogd]

daemon 191 0.0 0.1 1160 312 ? S Nov25 0:00 /usr/sbin/atd

root 201 0.0 0.1 1348 492 ? S Nov25 0:00 crond

root 212 0.0 0.0 1292 68 ? S Nov25 0:00 inetd

分享到:
评论

相关推荐

    jvm内存监控工具使用

    jps 工具类似于 Unix/Linux 系统中的 ps 命令,用于列出本地或远程主机上正在运行的所有 Java 进程的 ID 和主类名或 JAR 文件名。这对于识别正在运行的 Java 应用程序非常有用,尤其是当系统中有多个 Java 进程时,...

    JVM-Tunning-Tools-Introduction

    它类似于Unix/Linux系统中的ps命令。 3. jinfo:这个工具可以查看和修改JVM启动参数。jinfo可以连接到正在运行的Java进程或核心文件,并显示虚拟机配置的命令行标志。 4. jstat:用于收集Java虚拟机的统计信息。这...

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解.docx

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解 本文将对一些常用的 JVM 性能调优监控工具进行介绍,包括 jps、jstack、jmap、jhat、jstat 等工具的使用详解。这些工具对于 Java 程序员来说是必备的,...

    JAVA JVM性能调优监控工具详解

    ### JAVA JVM性能调优监控工具详解 在Java开发过程中,特别是在企业级应用中,经常会遇到各种性能瓶颈问题,如内存溢出(`OutOfMemoryError`)、内存泄露、线程死锁、锁争用等问题。这些问题如果不能及时有效地解决...

    JAVA JVM内存监控工具总结

    类似于Unix系统中的`ps`命令,jps用于列出本地系统上运行的Java进程ID,便于识别和跟踪Java应用程序。你可以通过它查看Java程序的数量以及它们各自的进程ID,这对于进一步的监控和调试非常有用。 2. **jstat (Java...

    JVM相关的常见面试问题汇总.pdf

    #### 9.1 查看JVM进程号的命令是什么? 9.2 怎么查看剩余内存? 9.3 查看线程栈的工具是什么? - **查看JVM进程号**: - `ps aux | grep java` - **查看剩余内存**: - `free -m` - **查看线程栈**: - `jstack <pid>...

    JVM调优和Linux常见面试题.zip

    - 使用tail、grep、less等命令进行日志分析。 #### 3. 网络诊断 - netstat:查看网络连接状态。 - ifconfig:查看网络接口配置。 - tcpdump:抓取网络数据包进行分析。 #### 4. 性能分析 - iostat:监控磁盘I/O...

    常用的linux系统监控命令整理.docx

    5. **JVM监控**: - `jstat` 提供了Java虚拟机(JVM)的统计信息,如垃圾收集、类加载等。 - `jmap` 用于生成堆内存转储,有助于分析内存泄漏。 - `jstack` 显示Java线程堆栈信息,帮助诊断线程阻塞或死锁问题。 ...

    使用java自带工具监控jvm运行状态

    在Java开发中,对JVM(Java虚拟机)的监控是至关重要的,它能帮助我们了解应用程序的性能、内存消耗和...理解并熟练使用这些工具是每一个Java开发者必备的技能,因为良好的JVM监控能力是保障系统稳定性和性能的关键。

    JVM学习札记

    - **Linux监控工具**:如`top`、`free`、`ps`等命令可以帮助查看系统的CPU、内存使用情况。 - **Windows监控工具**:如Task Manager可以查看进程的资源使用情况。 2. **Java监控工具**:如VisualVM、JConsole等,...

    美团JVM问题定位和排错

    - **JVM工具集**:主要用来监控和诊断JVM的状态,例如`jconsole`、`jvisualvm`、`MAT`(Memory Analyzer Tool)、`GCViewer`、`JProfiler`等。通过这些工具可以监控JVM内存状态(heap、non-heap、codecache等)、...

    jvm+watch.pdf

    传统的做法是通过命令`ps auxf | grep java`来查找Java进程。然而,这种方法往往会输出大量不必要的信息,给用户带来困扰。为了解决这个问题,从JDK 5.0开始,引入了一系列新的工具和技术来辅助开发者更高效地进行...

    多维度立体化监控

    - **方案**:利用`ps`、`netstat`等命令结合集群信息管理服务来实现。 - **实现要点**:重点关注扩展性和非侵入性设计。 ##### 3. **HTTP状态码监控** - **目标**:监控HTTP异常状态码。 - **方案**:可以通过统一...

    性能测试学习计划.txt

    - 学会使用top、ps等命令查看CPU使用情况。 - 分析CPU利用率高的原因,并采取相应措施进行优化。 #### 5.2 内存监控 - 使用free命令检查内存使用率。 - 了解如何调整JVM参数以优化内存使用效率。 #### 5.3 I/O监控...

    Wls-weblogic管理监控.docx

    通过`top`, `topas`, `vmstat`, `free -m`和`ps`等命令进行实时监控。 2. **网络检查**: - 服务器连通性:确保同一Domain内的服务器之间通信正常,可通过ping和telnet命令测试。 - 数据库连接:验证WebLogic...

    JVM堆栈性能分析.pdf

    - 分析Thread Dump时,结合JVM监控工具(如VisualVM、JConsole等)提供的信息,以获得更多洞察。 - 对于复杂的多线程应用,利用专业的分析工具可以更高效地解决问题。 通过深入理解Thread Dump的内容和学习如何...

    性能测试常用命令.doc

    下面将从硬件信息、中间件、监控Linux服务器、监控和诊断JVM、其它命令五个方面总结常用的性能测试命令。 一、硬件信息 在性能测试中,对硬件信息的了解是非常重要的。下面是一些常用的命令: * 查看 Redhat 版本...

    分享:JVM及其性能调优,欢迎交流

    在Linux环境中,可以通过top、ps、htop等命令查看Java进程的CPU和内存使用情况,还可以使用strace、lsof等工具获取更详细的系统级信息。 6. **内存调优**: 内存调优主要包括调整JVM的堆内存大小(如`-Xms`和`-...

    java监控开发示例

    Java提供了多个内置库和API来获取系统信息,如`java.lang.management`包,它包含了管理和监控Java虚拟机(JVM)的类和接口。例如,`ManagementFactory`类可以用来获取JVM的各种统计信息,如线程、类装载、内存等。...

Global site tag (gtag.js) - Google Analytics