绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
ScyllaDB异常重启错误排查
2022-05-25 17:30:19

前言
凌晨,钉钉上收到ScyllaDB down的报警,等一下又恢复,如此反复,对数据的读写造成了一定的影响,于是进行对Scylla的错误排查,终查到异常重启的原因,在这里给大家分享一下如何进行排错的。

排查思路
1、查看服务器资源



从上图中可以看出,这个时间段CPU和内存相对较高,我们再看看Scylla的错误日志,进一步分析异常重启的原因

2、查看ScyllaDB程序日志


上图中可以看到是客户端连接异常,没有其他有价值的日志信息,一般来讲,程序日志中看不出来具体错误,有可能是和系统有关。

3、查看系统日志messages


在系统日志里发现以上红框标记的错误信息,网上查找资料,分析原因

问题原因
默认情况下, Linux会多使用40%的可用内存作为文件系统缓存。当超过这个阈值后,文件系统会把将缓存中的内存全部写入磁盘, 导致后续的IO请求都是同步的。

将缓存写入磁盘时,有一个默认120秒的超时时间。 出现上面的问题的原因是IO子系统的处理速度不够快,不能在120秒将缓存中的数据全部写入磁盘。

IO系统响应缓慢,导致越来越多的请求堆积,终系统内存全部被占用,导致系统失去响应。

解决办法
1、升级服务器配置,简单的办法,不过成本比较大
1
2、针对上面的问题原因分析,缓存写入磁盘时间默认120秒,我们可以调整缓存写入磁盘的频率,避免因为请求堆积而导致系统异常。
vim /etc/sysctl.conf
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

vm.dirty_background_ratio: 是内存可以填充脏数据的百分比。这些脏数据稍后会写入磁盘,pdflush/flush/kdmflush这些后台进程会稍后清理脏数据。比如,我有32G内存,那么有3.2G的脏数据可以待着内存里,超过3.2G的话就会有后台进程来清理。
vm.dirty_ratio: 是可以用脏数据填充的大系统内存量,当系统到达此点时,必须将所有脏数据
————————————————
版权声明:本文为CSDN博主「平凡似水的人生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37837432/article/details/122182132

分享好友

分享这个小栈给你的朋友们,一起进步吧。

ScyllaDB
创建时间:2022-04-19 10:18:17
ScyllaDB 是用 C++ 重写的 Cassandra,每节点每秒处理 100 万 TPS。ScyllaDB 完全兼容 Apache Cassandra,拥有比 Cassandra 多 10x 倍的吞吐量,降低了延迟。 ScyllaDB 是性能优异的 NoSQL 列存储数据库。 ScyllaDB 在垃圾收集或者 Compaction 的时候不需要暂停;在常规生产负载的时候可以添加和删除节点。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~