Linux 进程管理教程:查询进程/终止进程/监控进程/分析线程栈

Linux 进程管理方法,本文简单介绍一下 Linux 下面的进程管理工具,包括 pstophtopkillpmap 等进程管理命令。一般来说我们也不需要去关注 Linux 进程,因为我们使用搬瓦工 VPS 一般也不会遇到什么大问题。但是如果出了超过资源限制,甚至是直接被暂停 VPS 的情况,那么我们就需要查看管理搬瓦工 VPS 进程管理情况。首先需要查询进程,然后发现有问题的进程就需要分析或者进一步终止进程。

搜了一下,好像之前都没怎么介绍过搬瓦工进程管理相关文章,只有一篇怎么设置进程使用 CPU 的限制的,参考《搬瓦工 VPS 使用 CPULimit 来限制 Linux 进程的 CPU 使用率教程》。

一、Linux 查询进程方法

首先是针对 Linux 查询进程的方法,主要是通过 ps 命令来查询的。

1、查询正在运行的进程

ps -ef

还可以结合 grep 命令进一步筛选,比如查找所有 ubuntu 用户的进程:

ps -ef | grep ubuntu

2、查找进程

pgrep 查找进程

比如查找所有进程名包含关键字 re 的进程

pgrep -l re

3、以完整格式显示所有进程

ps -ajx

4、完整的 ps 命令参数

语法:

ps [选项]

选项:

-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
-c:显示CLS和PRI栏位。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:此选项的效果和指定"A"选项相同。
e:列出程序时,显示每个程序所使用的环境变量。
-f:显示UID,PPIP,C与STIME栏位。
f:用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g:显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。
h:不显示标题列。
-H:显示树状结构,表示程序间的相互关系。
-j或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
L:列出栏位的相关信息。
-m或m:显示所有的执行绪。
n:以数字来表示USER和WCHAN栏位。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码>:指定程序识别码,并列出该程序的状况。
p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称>:列出属于该用户的程序的状况。
v:采用虚拟内存的格式显示程序状况。
-V或V:显示版本信息。
-w或w:采用宽阔的格式来显示程序状况。 
x:显示所有程序,不以终端机来区分。
X:采用旧式的Linux i386登陆格式显示程序状况。
-y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码>:此选项的效果和指定"p"选项相同。
--cols<每列字符数>:设置每列的最大字符数。
--columns<每列字符数>:此选项的效果和指定"--cols"选项相同。
--cumulative:此选项的效果和指定"S"选项相同。
--deselect:此选项的效果和指定"-N"选项相同。
--forest:此选项的效果和指定"f"选项相同。
--headers:重复显示标题列。
--help:在线帮助。
--info:显示排错信息。
--lines<显示列数>:设置显示画面的列数。
--no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
--group<群组名称>:此选项的效果和指定"-G"选项相同。
--Group<群组识别码>:此选项的效果和指定"-G"选项相同。
--pid<程序识别码>:此选项的效果和指定"-p"选项相同。
--rows<显示列数>:此选项的效果和指定"--lines"选项相同。
--sid<阶段作业>:此选项的效果和指定"-s"选项相同。
--tty<终端机编号>:此选项的效果和指定"-t"选项相同。
--user<用户名称>:此选项的效果和指定"-U"选项相同。
--User<用户识别码>:此选项的效果和指定"-U"选项相同。
--version:此选项的效果和指定"-V"选项相同。
--widty<每列字符数>:此选项的效果和指定"-cols"选项相同。

好像还是挺多的,有需要可以收藏一下以备不时之需。

二、Linux 终止进程方法

终止进程比较简单,使用 kill 命令即可。

1、终止进程

其中 PID 为进程 ID,可以通过 ps 或者 top 查找。

kill PID

2、终止所有相关进程

kill -9 PID

3、终止 job(job为job number)

kill %job

此外,如果遇到顽疾进程,还可以使用 killall 等命令,更有一些进程可能怎么都终止不了,那只能重启了。

三、Linux 进程监控方法

进程监控可以使用 top 命令:

top

进入 top 命令界面之后再输入 P、M 等,即可按照 CPU 使用率、内存占用大小等进行排序。

P:根据 CPU 使用百分比大小进行排序。
M:根据驻留内存大小进行排序。
i:使 top 不显示任何闲置或者僵死进程。

当然,top 其实显示效果也不怎么好,我们可以使用 htop 获取更好的体验。参考:

四、Linux 分析线程栈

使用 pmap 命令即可分析线程栈。

pmap PID

如何查找 PID?比如:

ps -fe| grep redis

然后我们就可以进一步分析线程栈。

五、搬瓦工新手教程/优惠

搬瓦工推荐方案

搬瓦工实时库存:https://stock.bwg.net

温馨提醒 如果您有选择困难症,直接选中间的 CN2 GIA-E方案,季付 $49.99,多达 12 个机房任意切换
方案内存CPU硬盘流量/月带宽机房价格购买
CN2
(最便宜)
1GB1核20GB1TB1GbpsDC3 CN2
DC8 ZNET
$49.99/年购买
CN22GB1核40GB2TB1Gbps$52.99/半年
$99.99/年
购买
CN2 GIA-E
(最推荐)
1GB2核20GB1TB2.5GbpsDC6 CN2 GIA-E
DC9 CN2 GIA
日本软银 JPOS_1
荷兰 EUNL_9 暂时下架
$49.99/季度
$169.99/年
购买
CN2 GIA-E2GB3核40GB2TB2.5Gbps$89.99/季度
$299.99/年
购买
HK2GB2核40GB0.5TB1Gbps中国香港 CN2 GIA$89.99/月
$899.99/年
购买
HK4GB4核80GB1TB1Gbps$155.99/月
$1559.99/年
购买
TOKYO2GB2核40GB0.5TB1.2Gbps日本东京 CN2 GIA$89.99/月
$899.99/年
购买
TOKYO4GB4核80GB1TB1.2Gbps$155.99/月
$1559.99/年
购买
搬瓦工优惠码:BWH3HYATVBJW搬瓦工购买教程:《2021 年最新搬瓦工购买教程和支付宝支付教程

选择建议:

  • 入门:洛杉矶 CN2 套餐,目前最便宜,可选 CN2 GT 机房,入门之选。
  • 推荐:洛杉矶 CN2 GIA-E 套餐,速度超快,可选机房多(DC6、DC9、日本软银、荷兰联通等),性价比最高。
  • 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。

搬瓦工新手教程

  1. 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程(推荐阅读)
  2. 搬瓦工购买教程:《2021 年最新搬瓦工购买教程和支付宝支付教程
  3. 搬瓦工优惠码:BWH3HYATVBJW
  4. 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群
  5. 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?

未经允许不得转载:Bandwagonhost中文网 » Linux 进程管理教程:查询进程/终止进程/监控进程/分析线程栈