目的参数步骤
实例操作
目的
减小响应时间提高吞吐量 参数
-XX:UseXXXGC-Xms和-Xmx-XX:NewRatio-XX:SurvivorRatio-XX:+UseAdaptiveSizePolicy-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath-XX:MaxTenuringThreshold-Xloggc:/xxx/logs/xxx-gc-%t.log
-XX:+UseGCLogFileRotation
-XX:+NumberOfGCLogFiles=5
-XX:+GCLogFileSize=20M
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
熟悉业务场景选择合理的垃圾收集器计算内存需求设定年轻代老年大小设置日志参数压力测试分析日志调整参数 实例操作
运行打包好的jar 对比测试
比对一:nohup java -jar xxx.jar >stock.log 2>&1&
比对二:nohup java -jar -Xmx1500m -Xms1500m -XX:SurvivorRatio=8 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:./gclogs xxx.jar >stock.log 2>&1&
查看是否运行
jps -l
进行模拟10个用户10W次请求
命令:ab -c 10 -n 100000 http://127.0.0.1:9091/stock/xxxx
注:若没有ab命令,安装yum -y install httpd-tools
打印日志:
jstat -gc 4102 5000 20|awk '{print $13,$14,$15,$16,$17}'
最后可以通过gcviewer工具 查看分析
通常遇到CPU 100%或者占用率非常高的时候,可以进行以下方法查找:
使用top 命令
[root@localhost ~]# top
根据进程号,查看堆栈的情况
[root@localhost ~]# jps -l [root@localhost ~]# jstack 4856
导出文件
[root@localhost ~]# jstack 4856 >> 4856.txt
由于导出的文件内容信息多,需要定位线程信息
[root@localhost ~]# ps -mpp 4856 -o THREAD,tid,time
由于结果查找出来得结果为16进制,需转换成10进制
[root@localhost ~]# printf "%xn" 4856
根据10进制数,进入4856.txt文件查找
[root@localhost ~]# vi 4856.txt
谢谢观看阅读,麻烦点个赞呀呀呀呀呀呀,谢谢~~~~



