第5章 调优案例分析与实践
来源:互联网 发布:互联网运营工资 知乎 编辑:程序博客网 时间:2024/06/04 19:38
概述:
了解调优的思想
1、高性能硬件上的程序部署策略
如果堆的内存设置较大的时候,GC将会产生较大停顿,如果大文件不会在新生代而直接进入老生代,导致老生代内存被耗尽。
在高性能硬件上部署程序,目前主要有两种方式:
- 通过64位JDK来使用大内存
- 使用若干个32位虚拟机建立逻辑集群利用硬件资源
大内存就是在夜间某个时间内进行GC不会影响用户体验
类型建立负载均衡来对于32位虚拟机集群访问。
2、集群间同步导致的内存溢出
-XX:+HeapDumpOnOutOfMemoryError 生成dump文件 ,写频繁耗资源,读耗资源较小
3、堆外内存导致的溢出错误
NIO操作使用的Direct Memory 与堆内存没有关系
通过 -XX:MaxDirectMemorySize 调整大小
4、外部命令导致系统缓慢
使用外部命令执行shell脚本
java的Runtime.getRuntime().exec()方法调用,直接会开另个线程
5、服务器JVM进程崩溃
并发访问产生大量的socket请求,最后出现 java.net.SocketException:Connection reset
这是异步出现问题,可以通过生产者和消费者模式的消息队列完成
6、实战:Eclipse运行速度调优
6.1 可以通过修改eclipse.ini进行调优
-startupplugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar--launcher.libraryplugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417-productorg.eclipse.epp.package.jee.product--launcher.defaultActionopenFile--launcher.XXMaxPermSize256M-showsplashorg.eclipse.platform--launcher.XXMaxPermSize256m--launcher.defaultActionopenFile--launcher.appendVmargs-vmargs-Dosgi.requiredJavaVersion=1.7-Xms256m-Xmx1024m
6.2、设置 JDK1.6需要明确指定-XX:MaxPermSize=254M 设置永久代的内存
6.3 编译时间和垃圾收集时间
编译时间:是指定虚拟机的JIT编译器(Just In Time Compiler) 如果某些代码被循环使用就是直接编译成本地执行二进制码
垃圾收集时间:主要是老年代内存的扩展花费,可以在启动的时候指定内存大小
最后增加的设置:
-Xverifiy:none (表示取消字符验证)
-Xmx 512m 最大内存
-Xms 512m 实际分配大小
-Xms 128m
-XX:PermSize =96 永久代内存
-XX:MaxPermSize=96 最大永久代内存。
-XX:+DisableExplicitGC (屏蔽System.gc(),自动执行gc)
-XX:+UseConcMarkSweepGC 老生代垃圾收集器
-XX:+UseParNewGC 新生代垃圾收集器
-XX:CMSInitiatingOccupancyFraction=85 将GC临界值提升到85%
- 第5章 调优案例分析与实践
- 笔记:深入理解JVM 第5章 调优案例分析与实战
- 第6章 需求分析与建模最佳实践
- JVM调优案例分析与实战
- 《Spark商业案例与性能调优实战100课》第6课:商业案例之通过Spark SQL实现大数据电影用户行为分析
- Spark商业案例与性能调优实战100课》第16课:商业案例之NBA篮球运动员大数据分析系统架构和实现思路
- <<《Spark商业案例与性能调优实战100课》第17课:商业案例之NBA篮球运动员大数据分析系统代码实战
- 《Spark商业案例与性能调优实战100课》第19课:商业案例之NBA篮球运动员大数据分析核心业务逻辑代码实战
- MI-系列第5篇 案例分析
- 《Spark商业案例与性能调优实战100课》第21课:Spark性能调优之系统资源使用原理和调优最佳实践
- 《大数据分析原理与实践》——第3章 关联分析模型
- 调优案例分析
- 第4周 Redis使用场景与案例分析
- 第4周 Redis使用场景与案例分析
- Spark商业案例与性能调优实战100课》第11课:商业案例之通过纯粹通过DataFrame分析大数据电影点评系仿QQ和微信、淘宝等用户群分析与实战
- JVM之调优案例分析与实战
- JVM笔记——调优案例分析与实战
- 调优案例分析与实战(五)
- 初次使用git遇到的问题
- Odoo 创建特定布局的页面
- 万能头文件&&clock
- 字符流
- 爬虫之旅(四)
- 第5章 调优案例分析与实践
- Python作为PHP扩展
- [bzoj4373]算术天才⑨与等差数列
- GPS定位基本原理
- java复制数组的四种方法
- HDOJ_1004这个题做了好久
- HDU 6038 (2017 多校训练赛1 1006) Function(图论)
- gitlab如何删除一个项目
- Android 一天搞定 NDK和JNI编程 3分钟学会写NDK实例