系统问题排查命令
top
top -c将系统资源使用情况实时显示出来 (-c参数可以完整显示命令)。接着输入大写 P将应用按照CPU使用率排序,第一个就是使用率最高的程序。常规操作第二步自然是得知道这个应用中最耗CPU的线程到底再干嘛。利用top -Hp pid然后输入P依然可以按照CPU使用率将线程排序。
记住线程的 ID 将其转换为 16 进制存储起来,通过jstack pid >pid.log生成日志文件,利用刚才保存的 16 进制进程ID去这个线程快照中搜索即可知道消耗CPU的线程在干啥了。
通过jstat -gcutil pid 200 50将内存使用、gc 回收状况打印出来(每隔 200ms 打印 50次)。
通过命令jmap -dump:live,format=b,file=dump.hprof pid 可以导出一份内存快照文件。借助MAT这类的分析工具或者使用快照信息分析平台。
网友评论