tailf kafka/log/server.log

[-- ::,] FATAL (main kafka.server.KafkaServerStartable ) Fatal error during KafkaServerStartable startup. Prepare to shutdown
java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
at kafka.log.FileMessageSet$$anon$.makeNext(FileMessageSet.scala:)
at kafka.log.FileMessageSet$$anon$.makeNext(FileMessageSet.scala:)
at kafka.utils.IteratorTemplate.maybeComputeNext(IteratorTemplate.scala:)
at kafka.utils.IteratorTemplate.hasNext(IteratorTemplate.scala:)
at kafka.log.LogSegment.recover(LogSegment.scala:)
at kafka.log.Log$$anonfun$loadSegments$.apply(Log.scala:)
at kafka.log.Log$$anonfun$loadSegments$.apply(Log.scala:)
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$.apply(TraversableLike.scala:)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:)
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:)
at kafka.log.Log.loadSegments(Log.scala:)
at kafka.log.Log.<init>(Log.scala:)
at kafka.log.LogManager$$anonfun$loadLogs$$$anonfun$$$anonfun$apply$$$anonfun$apply$.apply$mcV$sp(LogManager.scala:)
at kafka.utils.CoreUtils$$anon$.run(CoreUtils.scala:)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:)
at java.util.concurrent.FutureTask.run(FutureTask.java:)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:)
at java.lang.Thread.run(Thread.java:)

看日志查询资料发现是磁盘满了。

[kafka@datanode15 kafka]$ du -sh /data11/kafka/
.4T /data11/kafka/
[kafka@ngsoc15 kafka]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 126G 126G % /dev
/dev/sda2 880G 14G 823G % /
/dev/sda1 190M 126M 51M % /boot
/dev/sdj .6T .8T 618G % /data09
/dev/sdf .6T .0T .5T % /data05
/dev/sdd .6T .5T 954G % /data03
/dev/sdi .6T .7T .8T % /data08
/dev/sdk .6T .4T .1T % /data10
/dev/sde .6T .5T 986G % /data04
/dev/sdb .6T .1T .4T % /data01
/dev/sdg .6T .4T .1T % /data06
/dev/sdh .6T .5T 948G % /data07
/dev/sdl .6T .4T % /data11
/dev/sdm .6T .0T 473G % /data12
/dev/sdc .6T .3T .2T % /data02

解决思路:

{3节点*12盘=36 ; 36/2副本=18分区}

sh bin/kafka-topics.sh --zookeeper zookeeper.host: --alter --topic flow_dns --partition 

* 为什么不直接报IO异常,而是内部错误不安全的内存操作?-----来自网络描述

此错误表示或内存访问导致SIGBUS错误,然后被 JVM 捕获并转换为异步 。sun.misc.Unsafe.getX()putX()InternalError

更多细节:

sun.misc.Unsafe是 JDK 私有 API,允许直接从 Java 访问本机内存。此 API 是直接字节缓冲区的基础,特别是映射字节缓冲区的基础。
在某些情况下,对文件的内存映射区域的访问可能会导致 OS 级异常,即 。典型的示例包括:SIGBUS 在基础文件被截断后,将访问内存映射缓冲区。
网络驱动器上的文件已映射到内存,并且在网络连接断开后访问映射的缓冲区。
尝试写入映射到文件系统上的文件的页面会导致内存不足(默认情况下,空间受总 RAM 的 % 限制)。tmpfstmpfs
热点 JVM 无法提前有效地检测这些问题。它编译对简单内存访问指令的调用。查看内存区域是否有效的其他检查将过于昂贵。Unsafe.getX / putX 相反,JVM 处理信号。如果它看到调用中发生了错误,它将发布到当前线程并继续执行。SIGBUGUnsafeInternalError
IOException更合适,但 JVM 不能引发它或任何其他异常,因为公共协定不允许其方法引发任何异常。ByteBufferget/put
如果 JIT 编译方法中的内存访问失败,JVM 不会立即引发异常(同样,对于此类热字节缓冲区 API 来说,这太贵了)。相反,它将异步发布到当前线程。这意味着错误实际上将扔到最近的本机方法或最接近 VM 运行时的调用处。因此,错误消息中的"最近"一词。UnsafeInternalError

参考:

https://zh.wikipedia.org/wiki/%E6%80%BB%E7%BA%BF%E9%94%99%E8%AF%AF

https://bugs.openjdk.java.net/browse/JDK-4454115

kafka 磁盘写满导致 InternalError的更多相关文章

  1. 使用df -h命令查看磁盘空间使用率不算高,还有很多空余空间,但是创建文件或写入数据时一直报错磁盘写满

    关于磁盘空间中索引节点爆满的问题还是挺多的,借此跟大家分享一下: 一.发现问题 在公司一台配置较低的Linux服务器(内存.硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h ...

  2. 阿里云rds 磁盘空间满导致实例锁定

    1.RDS 数据日志已经快满了, 导致数据库不能写入,只读. 2. Binlog日志的保存及清理规则 MySQL实例的空间内默认清理binlog日志的规则如下: 实例空间内默认会保存最近18个小时内的 ...

  3. DG备库磁盘空间满导致无法创建归档

    上周五去某客户那里做数据库巡检.是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Stan ...

  4. RDS数据库磁盘满导致实例锁定

    问题描述: 阿里云RDS空间不足,进行报警.收到报警后.对数据库中不重要的数据备份后执行delete删除操作.执行成功后发现数据删掉了.但是数据库的空间并没有释放.数据占用空间反而越来越大,最后RDS ...

  5. DB磁盘满导致Zabbix Server Crash一例

    故障描述 今天线上zabbix出现几次数据中断的情况,经排查为DB服务器磁盘空间不足导致的.还好我们目前我们zabbix,falcon两套监控系统并存,哈哈. 故障排查过程没什么技术含量,简单的将故障 ...

  6. 一次 KVM 虚拟机磁盘占满的排查过程

    一次 KVM 虚拟机磁盘占满的排查过程 KVM 虚拟机系统为 CentOS,文件系统为 XFS. 现象如下: 使用 df -h 命令发现磁盘剩余空间为30k(总大小为30G),使用 df -i 发现 ...

  7. Linux索引节点(Inode:no space for device)用满导致的一次故障

    问题描写叙述 在storm測试环境集群上上nimbus和supervisor自己主动挂调.重新启动时显示no space for device,也不能创建,加入文件及文件夹,df -h查看 ilesy ...

  8. hadoop Namenode因硬盘写满无法启动

    当写元数据的分区写满,可能导致namenode挂掉从而导致及时清理出大块的空间也无法启动namenode,那此时系统namenode会报错 org.apache.hadoop.hdfs.server. ...

  9. linux磁盘空间满的处理

    Java中运行SQL插入数据时报错: linux磁盘空间满处理: 1.df -h  查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) 2.分别查看输入以下命令 (面对磁盘满了,通过下列命令 ...

随机推荐

  1. 洛谷P4124 手机号码

    传送 这题也就是条件限制多了点,也没有别的,套板子就好了 注意这里没有前导零,所以第一位是从1开始填 看注释叭 #include<iostream> #include<cstdio& ...

  2. PHP会话

    B/S请求响应模式是无状态的.任意的请求间不存在任何的联系,不能将请求状态保持下去. 会话技术可以给每个浏览器分配持久数据,这些数据不会随着一次请求和相应结束而销毁. COOKIE cookie是一种 ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第1节 异常_1_异常概念&异常体系

    Throwable是可抛出的意思.

  4. 【ABAP系列】SAP ABAP实现发送外部邮件(添加附件)功能

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP实现发送外部邮件(添 ...

  5. 19c的 rac在oracle linux7.4上搭建总结

    准备: 1,ASM磁盘空间最低要求OCR的磁盘占用需求有了明显增长.为了方便操作,设置如下:External: 1个卷x40GNormal: 3个卷x30GHight: 5个卷x25GFlex: 3个 ...

  6. Monte Carlo Control

    Problem of State-Value Function Similar as Policy Iteration in Model-Based Learning, Generalized Pol ...

  7. 关于ES6语法的 一些新的特性

    1.新的变量声明 :let :块级作用域,解决全局污染问题 const :常量 ,如π:3.1415927 class :类 .var:弱类型  funciton :方法 , import : 导入参 ...

  8. 15 (H5*) JS第5天 对象

    目录 1:创建对象 2:工厂模式创建对象 3:自定义构造函数创建对象 4:自定义构造函数做了那些事情 5:字面量方式创建对象:一次性对象 6:对象总结 7:json数据类型 8:简单数据类型和复杂数据 ...

  9. [Python3 填坑] 007 多才多艺的 len()

    目录 1. print( 坑的信息 ) 2. 开始填坑 (1) 总的来说 (2) 举例说明 (3) 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/10 明细 坑的编码 内容 Py0 ...

  10. Mybatis中SqlSessionFactory和SqlSession学习和原理

    源码git地址:https://github.com/mybatis/mybatis-3 目标结构: mybatis是数据持久化解决方案将用户从JDBC访问中解放出来,用户只需要定义需要操作的SQL语 ...