研究 Atlas 过程中,需要了解其进程模型(线程模型),那么如何查看其运行模式呢?
前提:Atlas 配置了 daemon 模式和 keepalive 功能。
1 2 3 4 5 6 7 |
|
查看方式:
1. ps 命令查看
从 man ps 中可以如下说明,可以显示进程关系,
1 2 3 |
|
但 ps -ejH 显示出来的东东比较难看,所以采用第二种方式查看,
1 2 3 |
|
那么如何显示线程关系呢?有如下说明,
1 2 3 |
|
执行后输出(采用第一种方式查看,原因同上)
1 2 3 4 5 6 7 8 9 |
|
其中
LWP -- 轻量级进程,即线程,这里显示的是 thread id。
NLWP -- 线程数,即 number of threads in process。
如果还想要查看线程究竟运行在哪个 CPU 上,则执行如下命令,
1 2 3 4 5 6 7 8 9 10 |
|
关键参数说明如下:
1 2 3 4 5 6 7 8 |
|
2. pstree 命令查看
查看 mysql-proxy 对应的进程 id 。
1 2 3 |
|
分别查看以上两个进程的树形关系。
1 2 3 4 5 6 7 8 9 |
|
3. top 命令查看
查看 id 为 3756 的进程包含的线程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
按 f 后显示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
按 j 后变化的项为
1 |
|
按回车或空格保存,退回到 top 界面,显示如下
1 2 3 4 5 6 7 8 9 10 11 12 |
|
在 top 的显示中会多出 P 这一列是最近一次运行该线程(进程)的CPU 。
4. 到进程对应的目录下查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
其中
1 |
|
表示该进程下包含 5 个线程(3756 进程对应的线程 + 由其创建的工作线程)。