MySQL进程组织方式:
[root@centoszhxue3 ~]# ps aux |grep mysql
root 1693 0.0 0.0 108200 1432 ? S Apr30 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 1801 0.0 1.7 712516 27392 ? Sl Apr30 102:33 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root 26930 0.0 0.0 103248 816 pts/0 S+ 02:35 0:00 grep mysql
先来看看1801这个进程
[root@centoszhxue3 ~]# cat /proc/1801/status
Name: mysqld
State: S (sleeping)
Tgid: 1801
Pid: 1801
PPid: 1693
TracerPid: 0
Uid: 27 27 27 27
Gid: 27 27 27 27
Utrace: 0
FDSize: 256
Groups: 27
VmPeak: 712520 kB
VmSize: 712516 kB
VmLck: 0 kB
VmHWM: 27528 kB
VmRSS: 27392 kB
VmData: 651732 kB
VmStk: 88 kB
VmExe: 6528 kB
VmLib: 7376 kB
VmPTE: 292 kB
VmSwap: 0 kB
Threads: 10
SigQ: 0/12259
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000087007
SigIgn: 0000000000001006
SigCgt: 00000001800066e9
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ffffffff,ffffffff
Cpus_allowed_list: 0-63
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 27599
nonvoluntary_ctxt_switches: 9
从status文件中可以看到,它的父进程为1693,它存在于一个线程组(ThreadGroup/TaskGroup??)中,它是线程组长。从组中的其它线程也可以看到线程组信息。
[root@centoszhxue3 ~]# ll /proc/1815/task
total 0
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1801
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1815
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1816
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1817
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1818
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1826
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1827
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1828
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1829
dr-xr-xr-x 5 mysql mysql 0 Sep 11 08:34 1830
随便找其中一个线程,看看其status文件信息
[root@centoszhxue3 ~]# cat /proc/1817/status
Name: mysqld
State: S (sleeping)
Tgid: 1801
Pid: 1817
PPid: 1693
TracerPid: 0
Uid: 27 27 27 27
Gid: 27 27 27 27
Utrace: 0
FDSize: 256
Groups: 27
VmPeak: 712520 kB
VmSize: 712516 kB
VmLck: 0 kB
VmHWM: 27528 kB
VmRSS: 27392 kB
VmData: 651732 kB
VmStk: 88 kB
VmExe: 6528 kB
VmLib: 7376 kB
VmPTE: 292 kB
VmSwap: 0 kB
Threads: 10
SigQ: 0/12259
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000087007
SigIgn: 0000000000001006
SigCgt: 00000001800066e9
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ffffffff,ffffffff
Cpus_allowed_list: 0-63
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 3
nonvoluntary_ctxt_switches: 0
可见,其父进程任然是1693,线程组长是1801