检查进程信息

内核中提供了有用的进程和环境信息。 这些命令可用于查看此信息。

ps 命令

在 Linux®上, Java™ 线程作为系统线程实现,并且可能在流程表中可视,具体取决于 Linux 分发版。

运行 ps 命令可为您提供当前进程的快照。 ps 命令可从 /proc 文件系统中获取其信息。 以下是使用 ps 的示例:

ps -efwH

UID  PID  PPID  C STIME TTY   TIME        CMD
cass 1234 1231  0 Aug07  ?    00:00:00    /bin/bash
cass 1555 1234  0 Aug07  ?    00:00:02    java app
cass 1556 1555  0 Aug07  ?    00:00:00    java app
cass 1557 1556  0 Aug07  ?    00:00:00    java app
cass 1558 1556  0 Aug07  ?    00:00:00    java app
cass 1559 1556  0 Aug07  ?    00:00:00    java app
cass 1560 1556  0 Aug07  ?    00:00:00    java app    	   
e
指定该选项以选择所有进程。
f
确保提供完整列表。
l
以长格式显示。
m
显示线程(如果缺省情况下未显示)。
w
确保宽输出的输出修饰符。
H
当您对 Java 线程感兴趣时很有用,因为它会显示分层列表。 利用分层显示,您可以确定哪个进程是原始线程,哪个是线程管理器,哪个是子线程。 在上一示例中,进程 1555 是原始线程,而进程 1556 是线程管理器。 所有子进程都有一个指向线程管理器的父进程标识。

top 命令

top 命令可实时显示 CPU 密集程度或内存密集程度最高的进程。 它提供一个交互式界面,用于操作进程并按不同条件(如 CPU 使用率或内存使用率)排序。 运行 top 时按 h 以查看所有可用的交互式命令。

top 命令可显示每个进程的多个信息字段。 进程字段显示正在运行的进程总数,但将该信息细分为正在运行、正在休眠、已停止或不死的几类任务。 除显示 PID、PPID 和 UID 外,top 命令还可显示有关内存使用率和交换空间的信息。 该mem字段显示有关内存使用情况的统计信息,包括可用内存,可用内存,已用内存,共享内存和用于缓冲区的内存。 交换字段显示总的交换空间、可用交换空间以及已使用的交换空间。

vmstat 命令

vmstat 命令可报告虚拟存储器统计信息。 因为该命令会对整个系统给出报告,因此它对于在系统上执行常规运行状况检查非常有用。 诸如 top 等命令可用于获取有关进程操作的更多具体信息。

当您在会话过程中初次使用该命令时,该信息会报告为自上一次重新引导以来的平均值。 后续使用该命令会生成基于采样周期(可作为一个选项指定)的报告。 vmstat 3 4 每 3 秒显示一次值,计数 4 次。 在应用程序将其输出传至文件并在应用程序启动和运行时研究统计信息之前,它对于启动 vmstat 可能非常有用。

以下部分中显示了该命令的基本输出:

进程
显示正在等待运行时、已阻止或已换出的进程数。
内存
显示已交换、可用、已缓冲和已高速缓存的内存量(以千字节计)。 如果在应用程序执行的特定阶段,可用内存减少,那么可能发生内存泄漏。
swap
显示从磁盘换入和换出到磁盘的内存的每秒千字节数。 如果没有足够多的 RAM 来进行完整存储,内存将被换出到磁盘。 较大的值可能暗示没有足够多的 RAM(虽然通常会在应用程序初次启动时进行交换)。
io
显示发送到块设备和从块设备收到的内存的每秒块数。
系统
显示每秒的中断次数和上下文切换次数。 每次上下文切换都会导致相关的性能损失,因此此部分的值较高可能意味着程序未正常扩展。
CPU
显示用户时间、系统时间和空闲时间之间的处理器时间细目。 空闲时间图显示处理器的繁忙程度,值越低表示处理器越忙。 您可以利用此规律来帮助您了解程序的哪些区域正在占用最多的 CPU 时间。