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
相关推荐
jps 工具类似于 Unix/Linux 系统中的 ps 命令,用于列出本地或远程主机上正在运行的所有 Java 进程的 ID 和主类名或 JAR 文件名。这对于识别正在运行的 Java 应用程序非常有用,尤其是当系统中有多个 Java 进程时,...
它类似于Unix/Linux系统中的ps命令。 3. jinfo:这个工具可以查看和修改JVM启动参数。jinfo可以连接到正在运行的Java进程或核心文件,并显示虚拟机配置的命令行标志。 4. jstat:用于收集Java虚拟机的统计信息。这...
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解 本文将对一些常用的 JVM 性能调优监控工具进行介绍,包括 jps、jstack、jmap、jhat、jstat 等工具的使用详解。这些工具对于 Java 程序员来说是必备的,...
### JAVA JVM性能调优监控工具详解 在Java开发过程中,特别是在企业级应用中,经常会遇到各种性能瓶颈问题,如内存溢出(`OutOfMemoryError`)、内存泄露、线程死锁、锁争用等问题。这些问题如果不能及时有效地解决...
类似于Unix系统中的`ps`命令,jps用于列出本地系统上运行的Java进程ID,便于识别和跟踪Java应用程序。你可以通过它查看Java程序的数量以及它们各自的进程ID,这对于进一步的监控和调试非常有用。 2. **jstat (Java...
#### 9.1 查看JVM进程号的命令是什么? 9.2 怎么查看剩余内存? 9.3 查看线程栈的工具是什么? - **查看JVM进程号**: - `ps aux | grep java` - **查看剩余内存**: - `free -m` - **查看线程栈**: - `jstack <pid>...
- 使用tail、grep、less等命令进行日志分析。 #### 3. 网络诊断 - netstat:查看网络连接状态。 - ifconfig:查看网络接口配置。 - tcpdump:抓取网络数据包进行分析。 #### 4. 性能分析 - iostat:监控磁盘I/O...
5. **JVM监控**: - `jstat` 提供了Java虚拟机(JVM)的统计信息,如垃圾收集、类加载等。 - `jmap` 用于生成堆内存转储,有助于分析内存泄漏。 - `jstack` 显示Java线程堆栈信息,帮助诊断线程阻塞或死锁问题。 ...
在Java开发中,对JVM(Java虚拟机)的监控是至关重要的,它能帮助我们了解应用程序的性能、内存消耗和...理解并熟练使用这些工具是每一个Java开发者必备的技能,因为良好的JVM监控能力是保障系统稳定性和性能的关键。
- **Linux监控工具**:如`top`、`free`、`ps`等命令可以帮助查看系统的CPU、内存使用情况。 - **Windows监控工具**:如Task Manager可以查看进程的资源使用情况。 2. **Java监控工具**:如VisualVM、JConsole等,...
- **JVM工具集**:主要用来监控和诊断JVM的状态,例如`jconsole`、`jvisualvm`、`MAT`(Memory Analyzer Tool)、`GCViewer`、`JProfiler`等。通过这些工具可以监控JVM内存状态(heap、non-heap、codecache等)、...
传统的做法是通过命令`ps auxf | grep java`来查找Java进程。然而,这种方法往往会输出大量不必要的信息,给用户带来困扰。为了解决这个问题,从JDK 5.0开始,引入了一系列新的工具和技术来辅助开发者更高效地进行...
- **方案**:利用`ps`、`netstat`等命令结合集群信息管理服务来实现。 - **实现要点**:重点关注扩展性和非侵入性设计。 ##### 3. **HTTP状态码监控** - **目标**:监控HTTP异常状态码。 - **方案**:可以通过统一...
- 学会使用top、ps等命令查看CPU使用情况。 - 分析CPU利用率高的原因,并采取相应措施进行优化。 #### 5.2 内存监控 - 使用free命令检查内存使用率。 - 了解如何调整JVM参数以优化内存使用效率。 #### 5.3 I/O监控...
通过`top`, `topas`, `vmstat`, `free -m`和`ps`等命令进行实时监控。 2. **网络检查**: - 服务器连通性:确保同一Domain内的服务器之间通信正常,可通过ping和telnet命令测试。 - 数据库连接:验证WebLogic...
- 分析Thread Dump时,结合JVM监控工具(如VisualVM、JConsole等)提供的信息,以获得更多洞察。 - 对于复杂的多线程应用,利用专业的分析工具可以更高效地解决问题。 通过深入理解Thread Dump的内容和学习如何...
下面将从硬件信息、中间件、监控Linux服务器、监控和诊断JVM、其它命令五个方面总结常用的性能测试命令。 一、硬件信息 在性能测试中,对硬件信息的了解是非常重要的。下面是一些常用的命令: * 查看 Redhat 版本...
在Linux环境中,可以通过top、ps、htop等命令查看Java进程的CPU和内存使用情况,还可以使用strace、lsof等工具获取更详细的系统级信息。 6. **内存调优**: 内存调优主要包括调整JVM的堆内存大小(如`-Xms`和`-...
Java提供了多个内置库和API来获取系统信息,如`java.lang.management`包,它包含了管理和监控Java虚拟机(JVM)的类和接口。例如,`ManagementFactory`类可以用来获取JVM的各种统计信息,如线程、类装载、内存等。...