
如何查看某个进程的具体线程信息?
答案:一个线程必定属于也只能属于一个进程;而一个进程可以拥有多个线程并且至少拥有一个线程。线程又被称为轻量级进程(Light Weight Process,LWP)。进程有进程控制块,线程也有线程控制块。但线程控制块比进程控制块小得多。线程间切换代价小,进程间切换代价大。每个进程都有独立的内存空间,而线程共享其所属进程的内存空间。
pstree -p pid
ps -eLf | grep pid
ps -Lf pid
pstack pid
top -Hp pid
通过“cat proc/pid/status”可以查看某个进程的进程状态信息。
[root@LHRDB ~]# top -Hp 16833
top - 10:00:28 up 10:00, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 29 total, 0 running, 29 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2046592k total, 1937088k used, 109504k free, 119212k buffers
Swap: 2097144k total, 304k used, 2096840k free, 977856k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16833 mysql 20 0 1155m 188m 11m S 0.0 9.4 0:00.16 mysqld
16834 mysql 20 0 1155m 188m 11m S 0.0 9.4 0:00.00 mysqld
16836 mysql 20 0 1155m 188m 11m S 0.0 9.4 0:00.23 mysqld
16837 mysql 20 0 1155m 188m 11m S 0.0 9.4 0:00.30 mysqld
16838 mysql 20 0 1155m 188m 11m S 0.0 9.4 0:00.22 mysqld
16839 mysql 20 0 1155m 188m 11m S 0.0 9.4 0:00.25 mysqld
[root@LHRDB ~]# pstack 16833
Thread 29 (Thread 0x7f3654ed0700 (LWP 16834)):
#0 0x0000003790e33b57 in sigwaitinfo () from /lib64/libc.so.6
#1 0x0000000000f4d06b in timer_notify_thread_func ()
#2 0x0000000000fbdbf4 in pfs_spawn_thread ()
#3 0x00000037912079d1 in start_thread () from /lib64/libpthread.so.0
#4 0x0000003790ee8b6d in clone () from /lib64/libc.so.6
Thread 28 (Thread 0x7f3648bb7700 (LWP 16836)):
#0 0x0000003790a00614 in ?? () from /lib64/libaio.so.1
#1 0x00000000010ae1b4 in LinuxAIOHandler::collect() ()
#2 0x00000000010af8d4 in LinuxAIOHandler::poll(fil_node_t**, void**, IORequest*) ()
#3 0x00000000010b12fc in os_aio_handler(unsigned long, fil_node_t**, void**, IORequest*) ()
#4 0x000000000124618d in fil_aio_wait(unsigned long) ()
#5 0x0000000001153300 in io_handler_thread ()
#6 0x00000037912079d1 in start_thread () from /lib64/libpthread.so.0
#7 0x0000003790ee8b6d in clone () from /lib64/libc.so.6
。。。。。。。。。。省略。。。。。。。。。。。。
Thread 2 (Thread 0x7f364904a700 (LWP 19060)):
#0 0x0000003790edf343 in poll () from /lib64/libc.so.6
#1 0x00000000012b740f in vio_io_wait ()
#2 0x00000000012b7503 in vio_socket_io_wait ()
#3 0x00000000012b7b38 in vio_read ()
#4 0x0000000000c6b2e3 in net_read_raw_loop(st_net*, unsigned long) ()
#5 0x0000000000c6bb7b in net_read_packet(st_net*, unsigned long*) ()
#6 0x0000000000c6be2c in my_net_read ()
#7 0x0000000000c796bc in Protocol_classic::read_packet() ()
#8 0x0000000000c78432 in Protocol_classic::get_command(COM_DATA*, enum_server_command*) ()
#9 0x0000000000d1a227 in do_command(THD*) ()
#10 0x0000000000dea0fc in handle_connection ()
#11 0x0000000000fbdbf4 in pfs_spawn_thread ()
#12 0x00000037912079d1 in start_thread () from /lib64/libpthread.so.0
#13 0x0000003790ee8b6d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f365cca1720 (LWP 16833)):
#0 0x0000003790edf343 in poll () from /lib64/libc.so.6
#1 0x0000000000deb449 in Mysqld_socket_listener::listen_for_connection_event() ()
#2 0x00000000007c7bd2 in mysqld_main(int, char**) ()
#3 0x0000003790e1ed1d in __libc_start_main () from /lib64/libc.so.6
#4 0x00000000007bd739 in _start ()
通过“cat /proc/pid/status”可以查看某个进程的进程状态信息:
[root@LHRDB ~]# cat /proc/16833/status
Name: mysqld
State: S (sleeping)
Tgid: 16833
Pid: 16833
PPid: 16666
TracerPid: 0
Uid: 27 27 27 27
Gid: 27 27 27 27
Utrace: 0
FDSize: 256
Groups: 27
VmPeak: 1182708 kB
VmSize: 1182628 kB
VmLck: 0 kB
VmHWM: 192976 kB
VmRSS: 192976 kB
VmData: 1124900 kB
VmStk: 88 kB
VmExe: 23128 kB
VmLib: 4048 kB
VmPTE: 652 kB
VmSwap: 0 kB
Threads: 28
SigQ: 0/15826
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000084007
SigIgn: 0000000000003006
SigCgt: 00000001800006e8
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: 19
nonvoluntary_ctxt_switches: 111
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




