java多线程程序性能调优 优化过程
来源:互联网 发布:仿微信朋友圈php源码 编辑:程序博客网 时间:2024/06/03 17:44
有句话叫“只要推力大,板砖也能飞上天”, 那换到我们it, 只要cpu强大,那么再烂的程序也能跑的飞快,但是cpu肯定是不够强大的,她是不够用,不然也就没多核心,分布式什么事情了,那java中我们如何找出我们的代码中的多线程瓶颈呢,比如这个线程当前在干什么?哪个线程的cpu 占用了100%了?哪个线程当前正在等待锁?
下面主要用的命令有两个top 以及jstack
在命令行输入top 后我们看到如下内容
找到需要调优的进程id 24207 (ps:不会top 命令的自行百度去),
执行命令 top -H -p 24207 看到如下内容
这个命令上面显示的pid 就是物理的线程id,只是命令显示成了pid, 这个阶段我们就以及进入了一个java进程的内部, 可以看到每一个线程使用的cpu了, 比如18827就是一个线程, 它占用1% 的cpu, 如果理论上1% 是会跑到100%的, 那现在为什么只跑到1%?, 我们针对现在情况进行分析, 那现在就要用到我们另外一个工具 jstack 了;
执行命令sudo jstack 18798 > /tmp/jstack.log 在文件中我们找到nid=0x498b(线程ID 18827的16进制)
神奇吧, 居然发现了调用堆栈, 我们的线程居然在睡觉,这么懒得线程它的cpu 肯定上不去只有1%也就不奇怪了, 那查下为毛在睡觉吧.修改好了就能上天上100%的了!
百万qps不再是梦啊!
阅读全文
0 0
- java多线程程序性能调优 优化过程
- java多线程程序性能调优 优化过程
- JVM虚拟机调优过程总结--来自java程序性能优化一书
- Java程序性能优化-调优层次
- Java程序性能优化——性能调优层次
- Java程序性能优化 !
- Java程序性能优化
- Java程序性能优化 !
- Java程序性能优化
- Java程序性能优化
- java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- mybatis入门基础(九)----逆向工程
- Android 分享邀请卡
- 云平台建设学习1
- 增加National data roaming 菜单定制
- Snackbar相关工具类
- java多线程程序性能调优 优化过程
- Nginx代理功能与负载均衡详解
- 运输问题的表上作业法
- priority_queue
- Swift UIMenuController中的坑
- jmeter JDBC 连接数据库
- FLV封装格式分析
- Java_synchronized_class_and_this
- Android中设置Activity的滑入效果