源:http://daiwa.ninja/index.php/2015/07/18/storm-cpu-overload/ 2015-07-18AUTHORDAIWA STORM在线业务实践-集群空闲CPU飙高问题排查有2条评论 STORM在线业务实践-集群空闲CPU飙高问题排查 最近将公司的在线业务迁移到Storm集群上,上线后遇到低峰期CPU耗费严重的情况.在解决问题的过程中深入了解了storm的内部实现原理,并且解决了一个storm0.9-0.10版本一直存在的严重bug,目前代码已经合并…
最近将公司的在线业务迁移到Storm集群上,上线后遇到低峰期CPU耗费严重的情况.在解决问题的过程中深入了解了storm的内部实现原理,并且解决了一个storm0.9-0.10版本一直存在的严重bug,目前代码已经合并到了storm新版本中,在这篇文章里会介绍这个问题出现的场景.分析思路.解决的方式和一些个人的收获. 背景 首先简单介绍一下Storm,熟悉的同学可以直接跳过这段. Storm是Twitter开源的一个大数据处理框架,专注于流式数据的处理.Storm通过创建拓扑结构(Topolog…
今天测试团队反馈说,服务A的响应很慢,我在想,测试环境也会慢?于是我自己用postman请求了一下接口,真的很慢,竟然要2s左右,正常就50ms左右的. 于是去测试服务器看了一下,发现服务器负载很高,并且该服务A占了很高的cpu.先用top命令,看了load average,发现都到了1.5左右(双核cpu)了,并且有一个java进程(20798)占用cpu一直很高,如下图: 于是,用命令jps -l看了一下java的20798,刚好就是服务A. 究竟服务A在跑什么,毕竟是测试环境.于是使用to…
现状 生产系统CPU占用过高,并且进行了报警 排查方法 执行top命令,查看是那个进程导致的,可以确定是pid为22168的java应用导致的 执行top -Hp命令,查看这个进程的那个线程导致cpu过高,如下图,可以看到是22749线程导致的 top -Hp 22168 由于jstack里面的线程号为16进制,需要转换线程号为16进制,如下图得到16进制值为58dd printf "%x\n" 22749 执行jstack生成线程快照保存至1.txt文件中,22168为进程id js…
一.发现问题 在一次系统上线后,我们发现某几个节点在长时间运行后会出现CPU持续飙升的问题,导致的结果就是Kubernetes集群的这个节点会把所在的Pod进行驱逐(调度):如果调度到同样问题的节点上,也会出现Pod一直起不来的问题.我们尝试了杀死Pod后手动调度的办法(label),当然也可以排除调度节点.但是在一段时间后还会复现,我们通过监控系统也排查了这段时间的流量情况,但应该和CPU持续占用没有关联,这时我们意识到这可能是程序的问题. 二.排查问题 定位Pod 这里使用kubectl t…
本文由  网易云发布. 作者:范欣欣 本篇文章仅限本站分享,如需转载,请联系网易获取授权. HBase自身具有极好的扩展性,也因此,构建扩展集群是它的天生强项之一.在实际线上应用中很多业务都运行在一个集群上,业务之间共享集群硬件.软件资源.那问题来了,一个集群上面到底应该运行哪些业务可以最大程度上利用系统的软硬件资源?另外,对于一个给定业务来说,应该如何规划集群的硬件容量才能使得资源不浪费?最后,一个给定的RegionServer上到底部署多少 Region比较合适?想必这些问题都曾经困惑过很多…
一.服务器特点 01.傻瓜式部署,一键式启动: 02.单机支持10万以上在线用户聊天(8G内存,如果内存足够大,并发量可超过10万): 03.支持服务器集群,集群间高内聚.低耦合,可动态横向扩展IM服务器,最大支持200台IM服务器的集群: 04.高并发.高稳定性: 05.支持群组聊天: 06.IM业务完全独立:只需uid(用户id)和gid(群组id),可方便的将IM业务集成到上层业务中: 07.内置HTTP访问接口,用于查询用户状态(上线/离线): 07.基于websocket协议,轻松实现…
 在线安装TiDB集群 服务器准备 说明:TiDB8需要能够连接外网,以便下载各类安装包 TiDB4非必须,但最好是有一台,因为后续测试Mysql数据同步或者进行性能比较时,都要用到 TiKV最好是采用Ext4文件格式,所以使用挂载盘的方式增加(如果没有数据盘,那么不配置也能安装成功) 机器名 IP 操作系统 配置 用途 TiDB1 ***.62 CentOS7.4 X64 4C+8G+60G+200G扩展 TiKV+TiSpark TiDB2 ***.63 CentOS7.4 X64 4C+8…
storm本地运行和集群运行是存在区别的: 本地可以读取本地文件系统及java项目中的文件,但是提交集群后就不能读取了,storm只是将topology提交到了集群,所以只能在main方法中将需要读取的配置在提交topology之前读出来,然后再解析,而不是在spout和bolt中读取配置文件: 同理,外部jar包也不会提交到集群,会有ClassNotFound异常,解决办法是将依赖包全部放进集群storm目录的extlib目录下. 我用的打包方式:export->JAR file -> Ex…
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication) Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制 Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案 Apache shiro集群实现 (六)分布式集群系统下的高可用session…
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication) Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制 Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案 Apache shiro集群实现 (六)分布式集群系统下的高可用session…
k8s集群应用例如jenkins启动问题排查思路 待办 rancher上的事件报告>pods日志>pods内容器日志(现获取容器id再查看容器日志,获取容器id 使用的是相应问题pod的名来抓取,docker ps | grep "podname"…
yarn就先不介绍了,这次排坑经历还是有收获的,从日志到堆栈信息再到源码,很有意思,下面听我说 问题描述: 集群一台NodeManager的cpu负载飙高. 进程还在但是看日志已经不再向ResourceManager发送心跳,不断重复下文2的动作. 心跳停止一段时间后会重连上RM但是cpu仍然很高,再过一段时间心跳再停,一直循环. NodeManager的日志解析 1.NM的localizing过程 localizing:container开始从hdfs下载resource,hdfs文件的状态从…
GitHub 20k Star 的Java工程师成神之路,不来了解一下吗! GitHub 20k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 20k Star 的Java工程师成神之路,真的真的不来了解一下吗! 前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右. 因为最近接入了新的业务,业务方给出的数据是日常QPS可以达到2000,大促峰值QPS可能会达到1万. 所以,为了评估水位,我们进行了一次压测.压测在预发布…
问题描述: 最近几天生产环境上的mongodb一直在报警,cpu飙高,其他如内存.iops.连接数.磁盘操作等都正常.通过定位业务,发现是由于mongodb的表其中一个查询未建立索引导致,110多W的数据,每秒经历的查询10次左右.但是未建立索引导致数据查询走全表扫描,从而致使导致cpu飙高. 解决方式:db.preservationlog.createIndex({eid:1}) ; 为preservationlog表的eid字段创建索引,问题得以解决. cpu曲线图 mongodb所在服务器…
现网CPU飙高,Full GC告警 https://www.cnblogs.com/QG-whz/p/9647614.html 问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后,现网机器出现了Full GC告警,同时CPU飙高99%.在优先恢复现网服务正常后,开始着手定位Full GC的问题.在现场只能够抓到四个GC线程占用了很高的CPU,无法抓到引发Full GC的线程.查看了服务故障期间的错误日志,发现更多的是由于Full GC引起的问题服务异常日志,无法确定Full…
因为这段时间一直在弄监控,但是工作还是在进行中 因为机器不多,所以今天早上巡检了一下,看到一台生产机器上的CPU飙高 top…
在项目快速迭代中版本发布频繁  近期上线报错一个JVM导致服务器cpu飙高 但内存充足的原因现象.  对于耗内存的JVM程序来而言,  基本可以断定是线程僵死(死锁.死循环等)问题. 这里是纪录一下排查linux服务器下JVM线程的基本流程,做一个排查手册: 1. 查看服务器运行情况, 找到一直占用cpu的进程[pid]:  top 2. 获得JVM进程信息 : jps -l 3. 通过进程[pid] 获得JVM进程的线程运行情况:  top -Hp [pid] 4.获取到长时间运行的线程[pi…
以下四步轻松定位CPU飙高问题: ①top pid 查看cpu耗CPU进程 ②top -Hp pid 查看该进程所有线程的运行情况,找到占用 CPU 过高的线程 pid ③ printf %x pid 打印出 pid 的 16 进制值(jstack 命令结果中的线程 ID 为 nid,且用 16 进制表示) ④ jstack -l pid grep nid 命令查看线程快照,根据上一步得到的 16 进制值找到具体的线程,就能知道这个进程在执行什么代码了…
原文地址:https://www.javatang.com/archives/2018/04/26/25582403.html 上篇文章中说明了解决IntelliJ IDEA中文输入法无提示的问题,最近将IntelliJ IDEA升级到了最新的2018.1,发现在编辑文件的时候CPU飙高,从而显得有一些卡顿.于是开始下面的一些设置: 目录 [隐藏] 1 软硬件环境 2 设置JVM的启动参数 3 设置编译和Maven的JVM内存 4 取消除了Error级别之外的代码检查 5 更改启动的JDK 6 …
1.排查现网服务器cpu飙高问题的思路 1.查看java进程id ps -ef|grep java 2.使用top -Hp 进程id 查看cpu比较高的线程 3.执行jstack 进程id > threadStack进程id.log 命令 4.使用printf %x  线程的PID 命令,将线程的将线程的PID转为十六进制 5.在jstack导出的文件中查找第4步得到的十六进制线程pid 可以用vim的查找功能/0x1234,或是grep 0x1234 -A 20 根据线程堆栈跟踪代码,解决问题…
CPU飙高,系统性能问题如何排查? 原创 雍雍 阿里技术 2020-09-29 https://mp.weixin.qq.com/s/fzLcAkYwKhj-9hgoVkTzaw  …
面试过程中,场景类的问题更容易检测出一个开发人员的基本能力. 这不,一个小伙伴去阿里面试,第一面就遇到了关于"CPU飙高系统反应慢怎么排查"的问题? 对于这个问题,我们来看看普通人和高手的回答! 普通人: 嗯, CPU飙高的原因可能是线程创建过多导致的. 高手: 好的,关于这个问题,我从四个方面来回答. CPU是整个电脑的核心计算资源,对于一个应用进程来说,CPU的最小执行单元是线程. 导致CPU飙高的原因有几个方面 CPU上下文切换过多,对于CPU来说,同一时刻下每个CPU核心只能运…
cpu是整个电脑的核心计算资源,对于一个应用进程来说,cpu的最小执行单元是线程. 导致cpu飙高的原因有几个方面: cpu上下文切换过多,对于cpu来说,同一时刻下每个cpu核心只能运行一个线程,如果有多个线程要执行,cpu只能通过上下文切换的方式来执行不同的线程.上下文切换需要做两个事情: 保存运行线程的执行状态 让处于等待中的线程执行 这两个过程需要CPU执行内核相关指令实现状态保存,如果较多的上下文切换会占据大量cpu资源,从而使得cpu无法去执行用户进程中的指令,导致响应速度下降. 在…
本文环境例如以下: 操作系统:CentOS 6 32位 ZooKeeper版本号:3.4.8 Storm版本号:1.0.0 JDK版本号:1.8.0_77 32位 python版本号:2.6.6 集群情况:一个主控节点(Master)和两个工作节点(Slave1,Slave2) 1. 搭建Zookeeper集群 安装參考:CentOS下ZooKeeper单机模式.集群模式安装 2. 在Nimbus和worker机器上安装依赖包 Java 6 Python 2.6.6 以上的版本号是官方说已经有測…
前期博客 apache-storm-1.0.2.tar.gz的集群搭建(3节点)(图文详解)(非HA和HA) 启动storm集群(HA) 本博文情况是 master(主) nimbus slave1(主)(从)  nimbus supervisor slave2(从)  supervisor 1.先在master上启动  nohup bin/storm nimbus >/dev/null 2>&1 & [hadoop@master storm]$ jps 2374 Quorum…
使用trident接口时,storm读取kafka数据会将kafka消费记录保存起来,将消费记录的位置保存在tridentTopology.newStream()的第一个参数里, 如果设置成从头开始消费,在单机情况下,消费记录没能保存下来,每次都是从头消费,但是在集群模式下,消费记录是被保存在zookeeper中的,再次提交集群运行并不会从头开始消费,而是从zookeeper中记录的位置开始消费,要想从新开始消费, 可以通过改变tridentTopology.newStream()的第一个参数来…
1.es与MySQL的概念对比 2.概念理解 2.1 Index : 一个索引即是文档的集合 2.2 Document : 一个文档即是一个可被索引的基础单元信息,一条记录: 2.3 Replicas : 索引一份或多份存储,可以理解成冗余存储以防数据丢失: 2.4 shards : 一个索引被截断若干小片存储,每个片就是一个shard. 参考:http://www.dataguru.cn/thread-608747-1-1.html https://www.cnblogs.com/keving…
一.Redis Sentinel 介绍    1.Sentinel     数据库环境搭建,从单机版到主备.再到多数据库集群,我们需要一个高可用的监控:比如Mysql中,我们可能会采用MHA来搭建我们的高可用数据库服务: 目前很多项目都用到了redis,比如我们采用1+2的模式,也就是一主两从:我们设置Redis主从复制,将主节点数据同步给从节点,从而达到: 1.主机异常宕机,从节点作为主节点顶上来,让服务正常运行,给运维留足时间: 2.采用读写分离,分担主节点的读压力: 那么Redis 怎么解…
之前一直运行正常的数据分析平台,最近一段时间没有注意发现日志索引数据一直未生成,大概持续了n多天,当前状态: 单台机器, Elasticsearch(下面称ES)单节点(空集群),1000+shrads, 约200G大小. 问题排查 服务器内存,CPU状态检查 使用 top 查看服务器 cpu,内存等占用情况,如下图示(当时楼主的服务器ES应用的CPU占用在90%以上,肯定有问题) 内存占用也极高(当时楼主的8G内存的服务器仅剩下150M左右的空闲,肯定是ES的问题) ES集群状态 查看ES集群…