进程相关
查看运行时间
通过
-o
参数,指定只显示具体的某个字段,会得到更清晰的结果。
通过-o etime
获取该进程的运行时间(etime格式 = %d-%h:%m:%s etimes格式 = %s)
|
|
-o rss
可以只获取该进程的内存信息
|
|
资源使用率排序
- 内存使用率 排序
|
|
- CPU使用率 排序
|
|
定位进程文件所在目录
pwdx <pid>
补充说明:需要把命令中的 pid 替换成你需要查询的 pid,常用于查询某个进程的可执行文件路径。如通过 top 命令发现系统中有一个 python test.py 的进程在占用 cpu,但是进程中没有明确显示该文件所在路径,可以使用 top 命令中的 pid 替换上述命令中的 pid,快速定位出 test.py 文件所在目录。
查看进程日志
执行下面命令,获取PID
|
|
执行下面命令
|
|
如果输出为/proc/3638989/fd/1: symbolic link to socket:[2131048957]
,则说明Pid=3638989的进程,socket的inode号为2131048957
(此数字不是地址或端口号,而是套接字的唯一标识,在内核中用于区分不同的socket),
执行下面命令
|
|
得到如下输出
|
|
Netid: 协议类型, u_str
表示Unix套接字(也称为本地套接字),用于同一台主机上的进程间通信。
State: 连接状态, ESTAB
表示套接字处于已建立(established)状态。这意味着两个进程之间的连接已经成功建立。
Recv-Q: 接收队列中数据,0
表示当前没有数据在队列中等待接收。
Send-Q: 发送队列中数据,0
表示当前没有数据在队列中等待发送。
Local Address:Port: 本地地址, /run/systemd/journal/stdout
本地地址,表示套接字绑定的本地路径; 2131050069
本地套接字的inode号;
Peer Address:Port : 远程地址, *
本地地址,表示套接字本地路径未指定;
Process: 与套接字关联的进程信息, systemd-journal(8951)的文件描述符24
和 systemd(1)的文件描述符60
与当前套接字通信。
结论:套接字socket:[2131048957] 是一个UNIX套接字,连接在本地路径 /run/systemd/journal/stdout 和进程 rke2 之间。进程通信: systemd-journal 和 systemd 进程通过文件描述符与本地套接字通信,而 rke2 进程通过文件描述符1和2与远程套接字通信。• 用途:这种连接通常用于进程间通信,例如日志记录或数据传输。在这种情况下,rke2进程将fd=1和fd=2数据发送到socket:[2131048957], 而对端socket:[2131050069]对应 systemd进程fd=60
和systemd-journal进程fd=24
对应socket文件为/run/systemd/journal/stdout
, 从而将rke进程的标准输出、报错发送到systemd-journal
,以便进行日志管理。