zoukankan      html  css  js  c++  java
  • pstack跟踪进程栈

    一:简介

    这个命令可以显示每个进程的栈跟踪。pstack命令必须由相应进程的宿主或root运行。可以使用pstack来确定进程挂起的位置。此命令允许使用唯一选项就是进程的PID

    这个命令在排查进程问题时非常有用。比如我们发现一个服务一直处于work状态(如假死状态,似死循环),使用这个命令就能轻松定位问题所在;

    可以在一段时间内,多次执行pstack,若发现代码栈总是停在同一个位置,那这个位置就需要重点关注,很可能就是出问题的地方

    二:使用示例

    # ps aux|grep php
    root      4602  0.0  0.0 112648   960 pts/0    R+   18:52   0:00 grep --color=auto php
    root     11886  0.0  0.2 213900  5008 ?        Ss   Apr22   1:30 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
    www      11887  0.0  0.3 216004  6344 ?        S    Apr22   0:00 php-fpm: pool www
    www      11888  0.0  0.3 215992  6400 ?        S    Apr22   0:00 php-fpm: pool www
    www      11889  0.0  0.3 215992  6408 ?        S    Apr22   0:00 php-fpm: pool www
    www      11890  0.0  0.3 215992  6400 ?        S    Apr22   0:00 php-fpm: pool www
    
    # pstack 11887
    #0  0x00007facadab0400 in __accept_nocancel () from /lib64/libc.so.6
    #1  0x00000000008772f1 in fcgi_accept_request (req=req@entry=0x7ffc465923d0) at /usr/local/php/sapi/fpm/fpm/fastcgi.c:852
    #2  0x000000000043372c in main (argc=<optimized out>, argv=<optimized out>) at /usr/local/php/sapi/fpm/fpm/fpm_main.c:1891
  • 相关阅读:
    Linux 命令笔记
    MySQL指令笔记
    悲观锁与乐观锁
    缓存在高并发场景下的常见问题
    死锁相关问题
    Java并发性和多线程
    Java同步和异步,阻塞和非阻塞
    内存溢出和内存泄漏
    JavaAndroid项目配置文件笔记
    Maven安装配置
  • 原文地址:https://www.cnblogs.com/jiujuan/p/9029550.html
Copyright © 2011-2022 走看看