美文网首页
常见性能问题查找命令

常见性能问题查找命令

作者: 全都是泡沫啦 | 来源:发表于2019-01-08 10:42 被阅读0次

java -Dsun.nio.MaxDirectMemorySize=4g -XX:NativeMemoryTracking=detail -jar test-mem-0.0.1-SNAPSHOT.jar

java应用的pid=23707

  1. top -p 23707 (top -H -p 23707查看详细线程)


    image.png

    按cpu排序 : 键入大写P (SHIFT+p)
    按内存排序: 键入大写M (SHIFT+m)

  2. cat /proc/23707/statm
[mmlog@mmjr-5 ~]$ cat /proc/23707/statm    (top中VIRT RES SHR的来源)
1933094 81186 3366 1 0 1896801 0
1933094 * 4k = 7732376k = 7551m VIRT 
81186  * 4k = 324744k = 317m RES (正在使用的内存)
3366  * 4k = 13464 k =  13 m
  1. pmap -x 23707 查看某个进程内存分布


    image.png
    image.png
  2. cat /proc/23707/smaps 查看某个进程内存详细

  3. java应用:jcmd 23707 VM.native_memory detail | jcmd 23707 VM.native_memory

jcmd命令显示的内存包含堆内内存、Code区域、通过unsafe.allocateMemory和DirectByteBuffer申请的内存,不包含其他Native Code(C代码)申请的堆外内存
  1. 监控系统内存分配情况 strace -f -e"brk,mmap,munmap" -p 23707


    image.png

23734 为十进制线程号对应到16进制为0x5cb6
jstack -l 23707 | grep 5cb6 可查看内存的调用者

  1. 查看内存中的内容
    gdp -pid pid 进入GDB 使用命令 dump memory mem.bin startAddress endAddressdump
    (其中startAddress和endAddress可以从/proc/pid/smaps中查找)
    strings mem.bin查看dump的内容

  2. jmap 的使用,其中-histo:live 会触发gc

jmap -histo:live 23707 | head -n 13  :显示gc后占用内存前10对象类型
jmap -histo:live 23707  |sort -k 2 -nr | head -n 13  :显示gc后占用数量大小前10对象类型
jmap -histo:live 23707  |sort -k 3 -nr | head -n 13  :显示gc后占用内存大小前10对象类型
jmap -dump:live,format=b,file=heap.bin 23707 

8.1 jstat -gcutil process_id 1000
8.2 cat /proc/29835/smaps | grep Rss | grep -E -o '[0-9]*' | awk '{(sum=sum+$1)} END {print sum}'
8.3 UseAdaptiveSizePolicy影响SurvivorRatio=8的设置
8.4 jvm -XX:+AlwaysPreTouch java启动使用所有设置内存

  1. 使用strace没有发现问题也可以使用ltrace尝试一下
  2. 常用的系统监控命令


    image.png

相关文章

  • 常见性能问题查找命令

    java -Dsun.nio.MaxDirectMemorySize=4g -XX:NativeMemoryTra...

  • 初识命令行之ls cat mv touch

    目录:一. 如何查找命令行的常见用法二. 几个命令行的常见用法三. 如何查找命令行释义 一.如何查找命令行的常见用...

  • Linux学习之find命令

    Find命令简介: find命令是linux查找命令之一,相对于whereis和which来说查找性能可能不是那么...

  • Linux性能优化实战——CPU调优

    前言 本文基于CPU核心性能指标系统原理,讲解使用排查工具查找常见性能问题,总结CPU调优的一般套路。 性...

  • Redis 常见的性能问题

    Redis 常见的性能问题都有哪些?如何解决?1).Master写内存快照,save命令调度rdbSave函数,会...

  • docker + gitlab + jenkins ...

    docker 常见命令操作吗命令 重启容器查找CONTAINER ID docker ps -a 完成重启操作 在...

  • find--linux

    Linux中find常见用法示例(转) find命令的参数; pathname: find命令所查找的目录路径。例...

  • 磁盘问题排查

    磁盘问题比较基础,有可能是功能问题,也有可能引发性能问题。常见的定位命令和思路有以下这些。 磁盘空间是否充足 磁盘...

  • Linux的五个查找命令

    本文为转载:Linux的五个查找命令 find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件...

  • 2019-04-05 第三周作业

    1. 总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim 查找/查找的内容 从光标处向文件尾部...

网友评论

      本文标题:常见性能问题查找命令

      本文链接:https://www.haomeiwen.com/subject/iqqvrqtx.html