Linux服务器正常启动后,提供服务时会调用程序,占用进程。可以通过以下命令来查看系统中有哪些进程在被调用
-
ps 进程查看命令
ps 命令最常用来监控后台进程的工作情况,因为后台进程是不和屏幕、键盘这些标准输入/输出设备进行通信的,所以如果需要检测后台情况,就需要使用 ps 命令了。其主要选项如下:
-a:显示系统中所有进程的信息。
-e:显示所有进程的信息。
-f:显示进程的所有信息。
-l:以长格式显示进程信息。
-r:只显示正在运行的进程。
-u:显示面向用户的格式(包括用户名、CPU 及内存的使用情况等信息)。
-x:显示所有非控制终端上的进程信息。
-p:显示由进程 ID 指定的进程信息。
-t:显指定终端上的进程信息。
为监测和控制进程,需先了解其当前状态,而通过ps
命令查看进程,能获取进程运行状态、运行时长、占用资源、优先级及标志号等信息,这些对用户和系统管理员都至关重要。其中,ps -aux
命令可获取终端上所有用户的进程信息,是最常用的命令之一。
1.1 ps -aux
ps -aux 以简单列表的形式显示出进程信息。
其中
-
USER:启动该进程的用户账号名称
-
PID(Process ID):进程标识符,是系统为每个进程分配的唯一编号,用于标识进程
-
%CPU:进程占用 CPU 的百分比,反映进程对 CPU 资源的使用情况
-
%MEM: 进程占用物理内存的百分比,体现进程占用内存资源的比例
-
VSZ(Virtual Set Size):占用虚拟内存的大小
-
RSS(Resident Set Size):占用常驻内存(物理内存)的大小
-
TTY:该进程在哪个终端上运行。“?”表未知或不需要终端
-
STAT:显示了进程当前的状态,如下:
-
S: 睡眠状态(可中断睡眠 )
-
s: 表示该进程是会话首进程 ,也就是父进程
-
I: 空闲状态
-
<: 高优先级进程
-
N:低优先级进程
-
Z:僵死状态(应予以手动终止)
-
-
START:启动该进程的时间,记录进程开始运行的时刻
-
TIME:指进程累计占用 CPU 的时间,统计该进程自启动以来使用 CPU 的时长
-
COMMAND(Command):显示启动进程所执行的命令或程序名 ,可帮助识别进程具体在执行什么任务
1.2 ps -ef
ps -ef查看所有进程详细信息的命令
-
PPID (Parent Process ID) :父进程的进程标识符 ,通过它可以了解进程间的父子关系
-
top 实时动态监控进程
直接在终端输入top
命令并回车,即可进入交互式界面,动态显示系统中正在运行的进程及其资源占用情况,按q
可退出。可显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次。
2.1 常用参数:
-
-u
:后跟用户名,显示指定用户的进程 。比如top -u root
,显示root
用户启动的进程。 -
-p
:后跟进程 PID,显示指定进程的信息 。例如top -p 123
,只显示 PID 为 123 的进程情况。 -
-n
:指定刷新次数 。如top -n 5
,表示刷新 5 次后退出。 -
-d
:指定刷新间隔时间(秒) 。比如top -d 2
,设置刷新间隔为 2 秒
2.2 交互操作
-
排序:
-
按
P
,根据 CPU 使用率对进程排序 。 -
按
M
,依据内存使用率排序 。 -
按
N
,按照 PID 排序 。
-
-
过滤显示:按
u
,输入用户名,可只显示该用户的进程;按o
或O
,可以自定义排序规则。 -
结束进程:按
k
,输入要结束进程的 PID ,再按回车,可发送信号终止进程(一般用 15 信号正常终止,9 信号强制终止 )。 -
改变进程优先级:按
r
,输入进程 PID ,再输入新的 nice 值,可调整进程优先级 。 -
切换显示:按数字
1
,可监控每个逻辑 CPU 的状况 ;按z
,可高亮显示活动进程 。
2.3 输出内容解读
输出内容主要有两部分,分别是头部信息和进程列表
2.3.1 Head头部信息
-
第一行:系统当前时间、系统运行时长、当前登录用户数、系统平均负载(1 分钟、5 分钟、15 分钟 )。
-
第二行:进程总数、正在运行的进程数、睡眠的进程数、停止的进程数、僵尸进程数 。
-
第三行:CPU 使用率相关数据,包括用户空间(
us
)、内核空间(sy
)、改变过优先级的用户进程(ni
)、空闲(id
)、等待 I/O(wa
)、硬中断(hi
)、软中断(si
)、虚拟机等待 CPU(st
)等的占比 。 -
第四行:物理内存总量、已使用内存量、空闲内存量、用作内核缓存的内存量 。
-
第五行:交换分区总量、已使用交换区量、空闲交换区量、缓冲的交换区量 。
2.3.2 进程列表
-
PID:进程 ID 。
-
USER:进程所有者用户名 。
-
PR:进程优先级 。
-
NI:进程的 nice 值,负值表示高优先级,正值表示低优先级 。
-
VIRT:进程使用的虚拟内存总量 。
-
RES:进程使用的、未被换出的物理内存大小 。
-
SHR:进程使用的共享内存量 。
-
S:进程状态(
R
运行、S
睡眠、D
不可中断睡眠、T
跟踪 / 停止、Z
僵尸进程 )。 -
%CPU:进程自上次更新到现在的 CPU 时间占用百分比 。
-
%MEM:进程使用的物理内存百分比 。
-
TIME+:进程创建后至今占用的 CPU 时间长度(单位 1/100 秒 )。
-
COMMAND:进程启动的命令名或命令行 。
-
pstree 树形结构展示进程关系
pstree
是 Linux 系统中用于以树状结构展示进程关系的命令 ,方便直观呈现进程间父子层级关联。系统管理员可利用pstree
整体了解系统中进程的组织架构和运行层次,掌握进程间依赖关系等,便于日常系统管理和维护
3.1 常用参数:
-
-p
:可在树状图中显示每个进程的 PID -
-u
:展示进程的所属用户 -
-a
:显示启动每个进程对应的指令、参数等 -
-n
:使输出结果根据进程 PID 号来排序,默认是以程序名排序 -
-h
(小写)用于高亮当前进程及其祖先; -
-H
(大写)后跟 PID ,可高亮指定 PID 的进程