每天分享知识,欢迎来白嫖!
一、有一个50万PV的资料类网站(从磁盘提取文档到内存)原服务器32位,1.5G 的堆,用户反馈网站比较缓慢,因此公司决定升级,新的服务器为64位,16G 的堆内存,结果用户反馈卡顿十分严重,反而比以前效率更低了
1. 为什么原网站慢? 很多用户浏览数据,很多数据load到内存,内存不足,频繁GC,STW长,响应时间变慢。
2. 为什么会更卡顿? 内存越大,FGC时间越长 。
3. 咋办? PS -> PN + CMS 或者 G1。PS+PO无论怎么设置,卡顿还是会出现。
java对象看产生的大小,回收完还会回收到老年代文档对象本身可以走代理服务器。
二、系统CPU经常100%,如何调优?(面试高频) CPU100%那么一定有线程在占用系统资源
1. 找出哪个进程cpu高(top)
2. 该进程中的哪个线程cpu高(top -Hp)
3. 导出该线程的堆栈 (jstack)
4. 查找哪个方法(栈帧)消耗时间 (jstack)
5. 工作线程占比高 | 垃圾回收线程占比高
三、系统内存飙高,如何查找问题?(面试高频)
1. 堆栈比较多,导出堆内存 (jmap)· 100 · JVM 调优实战
2. 分析 (jhat jvisualvm mat jprofifiler ... )
四、如何监控JVM ? jstat jvisualvm jprofifiler arthas top...像这类的工具我会给大家讲些典型的。
今天主要带大家了解了一些常用的参数,来告诉大家日志怎么样去阅读。还有调优的一个吞吐量、响应时间。什么是调优。