[linux] 记一次服务器cpu飙高

1、先通过top命令找到消耗cpu很高的进程id假设是24186,如果该进程是java进程的话,执行2~8步,否则找运维查看服务器状况
2、执行top -p 24186 单独监控该进程
3、在第2步的监控界面输入H,获取当前进程下的所有线程信息
以上确定是java 程序
sudo su tomcat

  • jps 查询 PID

  • jstat -gc pid
    执行jmap -histo pid 查看堆中存活对象

  1. dump jvm 内存
    命令格式:jmap -dump:format=b,filie=ai-mem-dump.bin PID
    举例:dump pid 为 4738 的 java 进程的内存到 ai_mem_dump.bin 文件
    jmap -dump:format=b,filie=ai_mem_dump.bin 4738

  2. dump jvm 线程栈
    命令格式:jstack pid > dump_file_name
    举例:dump pid 为 4738 的 java 进程的线程栈到 app_thread_dump.txt 文件
    jstack 4738 > app_thread_dump.txt

上一篇:62.(php) var_dump() 函数返回变量的数据类型和值


下一篇:jvm的传唱-常用调试指令