干货必读 | Java类初始化死锁——记一次Cassandra死锁问题排查
背景
最近压测Cassandra的时候,发现一个Cassandra进程一直没有完成初始化。经过排查后发现是死锁问题,这篇文章将会带领大家回顾整个排查过程,学习如何排查Java死锁问题,是一个非常值得学习的经验。
调查过程
1.问题发现
首先是启动后,通过Cassandra命令nodetool netstats观察何时进入NORMAL状态。如下图所示:
但是过了很久都没有进入NORMAL,一直处于STARTING状态。
2.jstack排查
想要知道为啥一直处于STARTING状态,当然是用Jstack去观察进程到底在做什么。
jstack显示主线程处于WAITING状态。这符合我们观察到的现象,因为确实一直卡在STARTING状态没有走下去。使主线程卡住的地方是AbstractCommitLogSegmentManager.awaitAvaila
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python列表统计重复元素
方法一 使用list的内置方法list.count() l = [1, 1, 2, 3, 3] sl = set(l) for i in sl: if l.count(i) > 1: print("元素{},重复{}次".format(i, l.count(i))) 方法二 使用python内置方法collections的Count()模块 from collections import Counter l = [1, 1, 2, 3, 3] cl = Counter(l) for k, v in cl.items(): if v > 1: print("元素{}, 重复{}次".format(k, v)) 方法三 使用for循环 l = [1, 1, 2, 3, 3] sl = set(l) d = {} for s in sl: count = 0 for i in l: if i == s: count += 1 d[s] = count for k, v in d.items(): if v > 1: print("元素{}, 重复{}次".format(k,...
- 下一篇
通过Datax将CSV文件导入Hbase,导入之前的CSV文件大小和导入之后的Hadoop分布式文件大小对比引入的思考
由于项目需要做系统之间的离线数据同步,因为实时性要求不高,因此考虑采用了阿里的datax来进行同步。在同步之前,将数据导出未csv文件,因为需要估算将来的hbase运行的hadoop的分布式文件系统需要占用多少磁盘空间,因此想到了需要做几组测试。几个目的:1、估算需要的hadoop的分布式文件系统需要占用的磁盘空间大小。2、估算需要同步的时间3、整个过程中的主要瓶颈是什么?4、通过系统参数调优,优化整个数据同步过程。当然,你需要一定的准备工作,需要有一个hadoop,hbase运行正常,hive和hbase已经整合完成。 使用python临时生成一些测试数据: # -*- coding=UTF-8 -*- ''' Created on Nov 11, 2018 临时生成需要测试的数据 @author: hadoop ''' import pandas as pd import numpy as np import datetime def pt(comments): print('===Step:' + comments + '|' + datetime.datetime.now()....
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境