暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何查看某个进程的具体线程信息?

DB宝 2017-11-08
867


Q
题目如下所示:

如何查看某个进程的具体线程信息?


     

A
答案如下所示:



答案:一个线程必定属于也只能属于一个进程;而一个进程可以拥有多个线程并且至少拥有一个线程。线程又被称为轻量级进程(Light Weight ProcessLWP)。进程有进程控制块,线程也有线程控制块。但线程控制块比进程控制块小得多。线程间切换代价小,进程间切换代价大。每个进程都有独立的内存空间,而线程共享其所属进程的内存空间。

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

 



DB笔试面试历史连接

http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:230161599

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。



最后修改时间:2020-01-10 20:56:44
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论