工作小总结

【经验】通过JVM调优,让凯哥个人博客响应速度提升了不少

不知道大家有没有注意到,在22.10.3121点之后,凯哥的个人博客站点访问速度提升了不少。那是应为凯哥对站点做了优化。优化从以下几个方面入手的:1:JVM调优2:日志打印前提条件:凯哥个人博客,是购买阿里云最廉价的机器。配置如下:1C2G1M的共享性。一:JVM调优先来看看优化前凯哥配置的Tomcat启动参数

为什么你的个人博客访问慢?

不知道大家有没有注意到,在22.10.31 21点之后,凯哥的个人博客站点(凯哥Java:www.kaigejava.com)访问速度提升了不少。那是因为凯哥对站点做了优化。本文就记录优化方面:

优化从以下几个方面入手的:

1:JVM调优

2:日志打印

3:删除已经不用的代码

前提条件:

凯哥个人博客,是购买阿里云最廉价的机器。配置如下:1C2G1M的共享性。

e6f3799f3bbb43d800f5682b7202976a.png

一:JVM调优

先来看看优化前凯哥配置的Tomcat启动参数

934fd563f8c1145a634464ef1c029a63.png

-Xms512m -Xmx512m -Xmn512m -Xss1024K -XX:MaxPermSize=256m -XX:MaxNewSize=256m

再来看看修改前服务器情况:

85c818035d2faffa7c13245bcc66b1f7.png

是不是很刺激。

排查网站访问慢,主要原因是CPU使用率太高了。不小心就100%的使用率。CPU处理不过来,页面可不响应慢吗。

这真好是一个CPU占用过高的案例。我们就来讲讲CPU占用过高排查流程吧

 1:CPU占用过高排查流程

1:利用top命令查出CPU最高的进程PID。比如是16379

top

5ec7845bed54a418eb14d77f3899c124.png

2:查看该进程下占用最高的线程ID .

公式:【top -Hp pid】

top -Hp 16379

 f6c18913daeb37e884b9729bc6b333f4.png

3:根据占用率最高的线程ID。将其转换成16精致形式(因为java native线程以16进制形式书城)

公式:【printf '%x\n' 线程id】 

比如上图占用最高的线程id是16383。所以查看命令:

printf '%x\n' 16383

 ced455933ce6615ef210bab211b85442.png

 4:利用jstack打印出线程调用栈信息。

公式:【jstack top最高pid | grep printf出来的十六进制 -A50 --color】

jstack 16379 | grep '3fff' -A50 --color

fb93034f4d877abac2e720759e52283c.png

可以看到GC相关的线程在runnable。吆西。那我们就来看看GC的情况:

9f0c9d94e240aa134b02b1b729ced7af.png

从上图,我们可以看到Full GC 还是很频繁啊。

我们再来看看JVM调优一些理论知识:

低延迟。延迟时间是值STW时间。STW越短,响应时间越好。度量标准是缩短由于垃圾收集引起的停顿时间或完全消除因垃圾收集所引起的停顿,避免应用程序运行时发生抖动。暂停时间越短算法越好。

3:MinorGC尽可能多地收集垃圾。这个原则就是MinorGC原则。准守这一原则可以降低应用程序FullGC的发生频率。

4:堆大小调整的着手点,分析点:

a、统计Minor GC持续

原创不易,完成人机校验,阅读全文

相关推荐