1.线程dump命令 jstack -l pid > xxx.file ##pid java 进程id 2.top命令查看CPU 3.高手是怎么使用jstack精确找到异常代码的 一个CPU密集型线程的demo: package chapter1; public class FindJavaThre ...
分类:
其他好文 时间:
2019-10-13 19:09:10
阅读次数:
136
二、CPU多级缓存 2-1 CPU高级缓存-缓存一致性(MESI协议) 1.为什么需要CPU缓存? 答:CPU的频率太快了,快到主存赶不上,这样在处理器时钟周期内,CPU常常要等待主存,浪费了资源。所以缓存的出现,是为了缓解CPU和内存之间速度不匹配的问题。(结构:cpu->cache->memor ...
分类:
其他好文 时间:
2019-10-07 23:47:27
阅读次数:
170
参考资料: https://mp.weixin.qq.com/s/fb9YxJr-yDdYQ86RE47y1w 1)通过针对此软件专业的分析工具或命令,找到占用cpu高的函数,2)通过调用栈(或源码搜索)分析何种场景会频繁调用此函数解决方案(1 修改调用逻辑,避免繁调用此函数;2 优化此函数)优化此 ...
分类:
其他好文 时间:
2019-09-24 10:29:41
阅读次数:
80
一、引子 坚持到底就是胜利,终于我们?起来到了专栏的最后一个主题。让我一起带你来看一看,CPU到底能有多快。在接下来的两讲里,我会带你一起来看一个开源项目Disruptor。看看我们怎么利用CPU和高速缓存的硬件特性,来设计一个对于性能有极限追求的系统。 不知道你还记不记得,在第37讲里,为了优化4 ...
分类:
其他好文 时间:
2019-09-14 22:48:08
阅读次数:
154
非常非常抱歉,今天上午的故障又一次给大家带来麻烦了,再次恳请大家的谅解。在昨天升级阿里云 RDS SQL Server 实例的配置后,万万没有想到,今天上午更高配置的阿里云 RDS 实例依然出现了 CPU 居高不下的问题。在数据库 CPU 高的情况下,有时对访问速度影响不大,有时巨慢无边,在今天上午... ...
分类:
数据库 时间:
2019-09-06 21:22:38
阅读次数:
115
参考链接: "cpu缓存java性能问题初探" 高速缓存 在内存与cpu寄存器之间,还有一块区域叫做cpu高速缓存,即我们常常说的cache。 cache分为L1、L2、L3三级缓存,速度递减,离cpu越来越远 L1、L2每个内核自己都有,L3是每个插槽上的多个内核共用一个。 cpu按照值使用频道来 ...
分类:
其他好文 时间:
2019-08-31 17:17:02
阅读次数:
65
CPU性能优化手段-缓存为了提高程序运行的性能,现代CPU在很多方面对程序进行了优化。例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。多级缓存L1Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。一般服务器CPU的L1缓存的容量通常在32-4096KB。L2由于L1级高速缓存容量的限制,为了再次提高CPU的运算速度,在
分类:
其他好文 时间:
2019-08-29 00:29:09
阅读次数:
135
CPU性能优化手段 缓存 为了提高程序运行的性能,现代CPU在很多方面对程序进行了优化。 例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。 多级缓存 L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。一般服务器CP ...
分类:
其他好文 时间:
2019-08-28 22:18:34
阅读次数:
86
一、top之负载高 top -H -p pid 首先看load average 数值若小于0.7*CPU个数,则系统工作正常,如果超过这个值,甚至达到cpu核数的四五倍,则系统的负载就说明偏高且存在进一步升高的趋势,就需要进一步定位具体原因。通过vmstat命令查看cpu的上下文切换次数,上下文切换 ...
分类:
编程语言 时间:
2019-08-22 18:40:29
阅读次数:
170
步骤如下: 1.使用top命令定位异常进程。可以看见12836的CPU和内存占用率都非常高 2.使用top H p 进程号查看异常线程 3.使用printf "%x\n" 线程号将异常线程号转化为16进制 4.使用jstack 进程号|grep 16进制异常线程号 A90来定位异常代码的位置(最后的 ...
分类:
其他好文 时间:
2019-07-30 15:45:09
阅读次数:
96