性能问题,如何定位一个应用响应慢等性能问题
来源:互联网 发布:小企业财务会计软件 编辑:程序博客网 时间:2024/04/30 14:16
1.jstace看有没有锁
2.看awr报告,找到最耗性能的sql。然后加索引,如果索引用的不太对,用hnit加以控制
遇到的性能解决实例:
lsof -p pid 发现几千个句柄无法回收。业务无法获取信息的句柄,系统出现too many open file错误,导致业务无法接入。
jvm的堆内存结构:
年轻代,老年代,持久代
年轻代会很快GC一次,老年代会很久GC一次。
造成的原因:
对象经过0次年轻代的GC就会进入老年代,所以对象一直在老年代,很久不会GC,打开的文件越来越多,才会出现句柄泄露。
tomcat7 catalina.sh中 JVM配置 MaxTenuringThreshold=0;
另:httpclent for循环调用会造成这样的情况。
解决:在finally中加releaseConnection
或者:method.setRequestHeader("connection","close") 表示用短连接。
**句柄** 是存放在栈内存中,对象是存放在堆内存中(分老年代和年轻代),(String 放在常量池中,或者说栈内存)
User u = new User();
u就是句柄,如果循环的创建很多User,有很多指向User的句柄,就可能造成句柄泄露。
0 0
- 性能问题,如何定位一个应用响应慢等性能问题
- oracle性能问题如何定位
- mysql性能定位问题
- mysql性能问题定位
- strace 定位性能问题
- JVM性能问题定位
- [JavaEE - JPA] 性能优化: 如何定位性能问题
- nginx+tomcat 慢响应问题定位
- J2EE系统很慢,如何解决性能问题
- 多线程应用中如何避免性能问题
- Java的WEB应用性能问题定位方法总结
- jstack+top定位性能问题
- MYSQL日志定位性能问题
- Java的WEB应用性能问题定位方法总结(二):常见性能问题处理工具
- Datagridview操作性能慢的问题
- websphere问题定位和性能检测资料
- Windows日志定位系统性能问题
- oracle数据库性能问题定位方法
- JSP C标签 示例 待续
- Android底层开发之红外遥控驱动移植
- 关于el表达式,ognl表达式,JSTL的区别
- 字符数组查找-----拉手笔试
- LeetCode 01 Two Sum
- 性能问题,如何定位一个应用响应慢等性能问题
- 黑马程序员——面向对象程序设计
- [Leetcode]Flatten Binary Tree to Linked List (三种方法)
- 如何实现servlet的线程安全
- 华为荣耀3C最新版ROM的root,(4.7.1和4.8.1等等通用方法)
- servlet是只有一个实例吗
- Permutation I,II
- opencv中遍历图像(IplImage格式)
- JAVA学习笔记——多线程