一、背景 线程属于系统稀缺资源,在使用线程时,如果无限制创建线程,达到CPU高负荷时,会导致系统运行缓慢,更有甚者直接宕机。 在这样的基础上我们希望在使用线程时,竟可能使系统线程数处于一个可控范围,尽可能实现线程的重用。 二、Executors 分析 Executors 示例 DEMO 示例分析: ...
分类:
编程语言 时间:
2018-01-25 00:32:44
阅读次数:
199
一、业务背景+系统架构 本次场景为kafka+storm+redis+hbase,通过kafka的数据,进入storm的spout组件接收,转由storm的Bolt节点进行业务逻辑处理,最后再推送进kafka。 表数据相关的逻辑为:查询Hbase表数据,首次查询会写入redis和storm cach ...
分类:
其他好文 时间:
2018-01-24 16:51:38
阅读次数:
436
先查询进程 top 再根据进程号,查出进程的线程 ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd 得到最高使用率CPU的线程TID,转换成16进制 printf "%x\n" 3251 记住这个字符码 cb3,16进制就是0xcb3 再查,使用jstack工具 ...
分类:
其他好文 时间:
2017-12-29 20:54:48
阅读次数:
120
top命令找出最高占用的进程(command为java) 输入:top -H -p PID 或 ps -mp PID -o THREAD,tid,time 找出最高占用的线程并记录thread_id 使用命令将pid转换为十六进制 printf "%X\n" thread_id 查看dump信息(- ...
分类:
Web程序 时间:
2017-12-14 16:33:34
阅读次数:
196
功能问题,通过日志,单步调试相对比较好定位。 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。 做为开发人员,肯定会遇到这类问题,介绍一下分析CPU 100%的方法,先确认是那个进程耗CPU高,再确认进程中的那个线程,最后根据javacore找到对应的 ...
分类:
其他好文 时间:
2017-12-13 19:47:16
阅读次数:
150
《程序员的思维修炼:开发认知潜能的九堂课》【PDF】下载链接: https://u253469.ctfile.com/fs/253469-231196325 内容简介 运用一门程序设计语言编程对大多数普通程序员来说是“小菜一碟”,那么如何更上层楼成为一名专家级的软件开发者呢?本书给出了答案——优秀的... ...
分类:
其他好文 时间:
2017-12-13 16:58:07
阅读次数:
108
一、计算机系统漫游 本章通过运行一个hello程序为例,概述了计算机操作系统的运行过程,讲述了组成计算机系统的硬件和系统软件,讲到了处理器处理一个程序的过程。 这一章中出现了一个我首次听说到的词汇Amdahl定律,该定律的主要思想是,当我们对系统的某个部分加速时,其对整体性能的影响取决于该部分的重要 ...
分类:
其他好文 时间:
2017-11-19 16:05:41
阅读次数:
104
解决CPU高速执行能力和IO设备龟速严重不匹配的方法: 同步IO:用多线程和多进程。但是线程的数目不能无限增大,否则,CPU的时间就花在线程切换上了。 异步IO:CPU只发出io指令,并不等待io结果。 异步IO: 按照普通顺序写出的代码实际上是没法完成异步IO的。 异步IO模型需要一个消息循环,在 ...
分类:
其他好文 时间:
2017-11-16 23:57:58
阅读次数:
410
说明: 一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环 以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。 通过ps aux | grep PID命令,可以进一步确定是 ...
分类:
其他好文 时间:
2017-11-06 12:37:52
阅读次数:
171
前一段时间突然收到一条服务器CPU告警,大致看了下是一台测试机,刚刚开始以为是在做压力测试,但是再认真看下服务器的CPU是在极高的负载下发的告警,就去咨询了下发现此时并没有在压力测试,平时如果测试服务没有做压测的时候CPU是几乎负载都极地的,此时服务器突然CPU高负载..
分类:
其他好文 时间:
2017-10-09 09:58:12
阅读次数:
261