druid灌库报错-Not enough direct memory

kafka生产者发送消息经常失败,集群报错direct buffer memory,占用cpu达到200%,频繁YGC 背景: kafka测试集群,5台节点 问题描述: 生产者发送消息失败概率大,尤其是连接建立的时候。查看内存信息,发现cpu占用过高,一直发生gc 查找原因: 查找kafka服务日志,发现5号节点有如下报错: top命令详解 top -d 1 jstat -gcutil 23518 jmap -heap 23518 jstat参数说明:S0C:第一个幸存区的大小   S1C:第二个幸存区的大小   S0U:第一个幸存区的使用大小   S1U:第二个幸存区的使用大小   EC:伊甸园区的大小   阅读详情

Druid灌库脚本提交之后,看灌库控制台,报错如下

2) Not enough direct memory.  Please adjust -XX:MaxDirectMemorySize, druid.processing.buffer.sizeBytes, druid.processing.numThreads, or druid.processing.numMergeBuffers: maxDirectMemory[954,728,448], memoryNeeded[1,677,721,600] = druid.processing.buffer.sizeBytes[335,544,320] * (druid.processing.numMergeBuffers[2] + druid.processing.numThreads[2] + 1)

  at io.druid.guice.DruidProcessingModule.getIntermediateResultsPool(DruidProcessingModule.java:110) (via modules: com.google.inject.util.Modules$OverrideModule -> com.google.inject.util.Modules$OverrideModule -> io.druid.guice.DruidProcessingModule)

 

上面的报错日志非常详细,原因是druid灌库使用的内存超过jvm的直接内存

 

给的解决方案也很详细

要设置jvm的directMemorySize > druid.processing.buffer.sizeBytes[335,544,320] * (druid.processing.numMergeBuffers[2] + druid.processing.numThreads[2] + 1)

 

将middleManager节点上的

jvm的directMemorySize 调大

druid.processing.buffer.sizeBytes 调小

druid.processing.numMergeBuffers 调小

druid.processing.numThreads 调小

意思是jvm的直接内存调大,这个上限是整个物理机的内存上限,不是jvm最大内存

druid灌库的单个缓冲区调小,线程数调小,使用到的合并缓冲区调小

 

为什么调middleManager节点

灌库的indexService服务,由overload节点担任主节点,middleManager节点具体执行灌库任务,所以调节middleManager

 

登录druid集群中的middleManager节点,看到两个配置文件

running.properties

jvm.properties

直接内存(Direct Memory) 直接内存(Direct Memory)是在Java中使用较为底层的内存管理方式,它通过Java的`NIO包中的ByteBuffer类`来实现,让Java能够在堆外分配内存。这种方式通常用于需要大量、频繁的IO操作的场景,因为它可以减少在Java堆和本地堆之间复制数据的次数,从而提高性能。以下是关于直接内存的一些分析和代码示例。 阅读详情

相关推荐

ns3-gym入门(二):linear-mesh例子详解

学习ns3-gym中关于IEEE 802.11网状网络中控制随机接入的例子linear-mesh

zoe2222226666的博客 1843

如何搭建一个站内搜索引擎(二) 第2章 概述

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34085658的博客 393

VC Spyglass CDC实战:从TCL脚本到SDC约束的完整避坑指南

本文是一份针对数字IC验证工程师的VC Spyglass CDC实战指南。文章详细阐述了从TCL脚本环境搭建、SDC约束编写到典型CDC违规(如SETUP_PORT_UNCONSTRAINED)诊断与修复的完整流程,旨在帮助读者高效避坑,深入理解工具逻辑,从而完成可靠的时钟域交叉验证。

go5gopher的博客 382

druid 错误

1) Not enough direct memory.  Please adjust -XX:MaxDirectMemorySize, druid.processing.buffer.sizeBytes, druid.processing.numThreads, or druid.processing.numMergeBuffers: maxDirectMemory[259,522,560], ...

大JAVA解决方案 1013

STM32F407通过SMBus协议精准读取BQ40Z50电池电量

本文详细介绍了STM32F407通过SMBus协议精准读取BQ40Z50电池电量的实现方法。从硬件连接到软件驱动开发,再到通信异常排查,提供了完整的解决方案。重点解析了SMBus协议的特殊时序要求、GPIO模拟驱动的关键代码,以及实际调试中的常见问题与对策,帮助开发者高效完成电池管理系统开发。

weixin_29189003的博客 251

jlink驱动安装

jlink驱动下载安装及keil识别

qq_43868701的博客 3万+

RAG灌库,帮助大模型背诵古诗

我尝试使用chat-gpt和Chatglm-6b去鉴赏古诗文,在他们能正确的知道古诗的时候,鉴赏能力还是不错的,但是他们很多时候会将古诗背诵错误,诗人或者诗句背诵错误,并且他们还非常自信。所以,我使用RAG给大模型增加一下知识库,这样就不需要微调了(我的最终目标是想部署一个可以精确鉴赏诗歌的模型,目前也在努力中)。

disbubu的博客 745

用户消费行为分析(MapReduce实现,Hive分析)

一、题目要求 数据来自CDNow网站的一份用户购买CD明细,本数据集共有 6 万条 左右数据,数据为 CDNow 网站 1997年1月至1998年6月的用户行为 数据

紫烟的博客 3013

11-直接内存 Direct Memory

文章目录直接内存 Direct Memory非直接缓存区和缓存区存在的问题 直接内存 Direct Memory 不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存 通常,访问直接内存的速度会优于Java堆。即读写性能高。 因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存。 Java的NIO库允许Java程序使用直接内存,用于数据缓冲区

qq_41318268的博客 470

开源项目 ruoyi-sso-oauth2(一)环境配置

Ruoyi若依实现单点登录SSO、oauth2认证

Xiaoweidumpb 9683

190、LLC谐振变换器的样机调试实战(问题定位)

这篇实战笔记总结了LLC谐振变换器样机调试中的五大典型问题及解决方案:1)空载炸机源于谐振电容纹波电流能力不足;2)轻载啸叫因控制环路不稳定,需调整突发模式阈值;3)MOSFET过热由死区时间不当导致,需精确优化实现ZVS;4)输出纹波大由PCB布局耦合引起,需优化共模抑制;5)启动过冲需延长软启动时间。作者强调调试需结合示波器、热成像仪等工具,理论计算与实测并重,并详细记录每次参数调整。文章指出LLC调试是不断试错的过程,关键是通过现象分析本质原因。

Jack010169的博客 48

druid学习-安装

最近因为业务需要,需要部署druid来做olap分析,关于选型可以看下知乎里大神的分析 https://www.zhihu.com/question/41541395?sort=created (此druid非阿里的数据库连接池druid) 步入正题,druid安装,可以选择imply ( https://imply.io/ ),我这儿选择的是druid-0.10.1 1. 解压 tar

men子烦高的烂笔头 1685

让 ABAP 开发更聪明的搭档:SAP Joule for Developers 与 ABAP AI Capabilities 全面实战

摘要:SAP已将生成式AI集成到ABAP开发工具中,推出Joule for Developers功能。该功能直接嵌入Eclipse开发环境,提供代码解释、生成、测试构造和遗留代码迁移等辅助功能。Joule支持ABAP Cloud项目开发,能围绕当前开发对象提供上下文相关的建议,帮助开发者高效完成应用开发与迁移任务。启用该功能需升级ADT并获取相应许可,典型应用场景包括RAP应用构建和S/4HANA迁移中的代码重构。官方资源提供了多个实践案例,帮助开发者快速上手这一AI辅助开发功能。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 491

Kafka生产者和消费者

Kafka生产者和消费者

weixin_42496486的博客 244

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

kafka服务器性能要求,Kafka性能测试及分析

Kafka 简介Kafka 是一种基于 Zookeeper 协调的分布式消息系统,使用 Scala 编写。其主要设计目标如下:以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 Pa...

weixin_42395498的博客 2023

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jvm学习——11.JVM直接内存(Direct Memory)

107 直接内存 1.直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 2.直接内存是Java堆外的、直接向系统申请的内存区间。 3.简单理解: java process memory = java heap + native memory 示例代码: /** * IO NIO (New IO / Non-Blocking IO) * byte[] / char[] Buffer * Stream .

知北行的博客 2851

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

1JVM内存四大类型问题:Heap、Stack、Contant、DirectMemory

第一 heap 堆溢出: heap中只能保存对象,对象存储过多会报错 java heap space 测试时修改JVM的默认参数:  代码: import java.util.ArrayList; import java.util.List; class Person{ } public class HelloHeapOutOfMemory { publ

数据创造价值 1154

问题排查: spring kafka memory leak

为什么80%的码农都做不了架构师?>>> ...

weixin_34294649的博客 464

Druid原理分析之内存池管理(转)

为了减轻JVM垃圾回收带来的性能波动,Druid尽量使用对外内存和系统内存。使用临时文件,在索引创建和合并的过程中,中间临时结果会占用大量的内存。为了减少JVM内存的使用,采用临时文件,通过文件IO的方式,巧妙地利用内核的Page Cache。为了提升IO的性能,Linux操作系统增加了Page Cahe。文件IO的写操作会写到Page Cache中立即返回,内核会定时将脏页也就是还没写到磁盘的页...

小龙的博客 1300

Caused by: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.and

使用以下命令中的其中一个即可 1. gradlew compileDebug --stacktrace 2. gradlew compileDebug --stacktrace -info 3. gradlew compileDebug --stacktrace -debug 4.(推荐) gradlew compileDebugSources --stacktrace -info Cause...

王人冉的博客 9086

java.util.concurrent.ExecutionException 错误解决。

错误: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/recommender]] at jav

Arog的博客 10万+

Python中调用help()报错:Not enough Memory

系统环境:win7 SP1 Python3.6 最近在ipython中调用help()函数,提示:Not enough Memory[In1]: help(help) Not enough Memory记得以前使用时没有问题的,然后再网上查了一下, http://bugs.python.org/issue19914 For posterity for anyone that finds

慧眼识^(* ̄(oo) ̄)^的博客 5321

CentOS7.1.x+Druid0.12集群配置

CentOS7.1.x+Druid0.12集群配置2018-04-03 14:13:33      0个评论    来源:大树叶 技术专栏  收藏   我要投稿先决条件:安装版本列表? 本次安装满足下面的条件:CentOS v7.3.xDruid v0.12.xHadoop v2.9.0 (HDFS)MySql v5.6?其中,Mysql 和 Hadoop在别的文章中有讲述,本次安装不在涉及。在本...

大JAVA解决方案 886

内存不足(OutOfMemory)的调试分析

32位操作系统的寻址空间是4G,其中有2G被操作系统占用,也就是说留给用户进程的内存只有2G(其中还要扣除程序加载时映像占用的部分空间,一般只有1.6G~1.8G左右可以使用)。 如果进程运行中需要申请内存,而操作系统无法为其分配内存空间,则会产生内存不足的异常,在.net中为

ABlog 2万+

java.util.concurrent.ExecutionException错误

今天导入项目运行的情况下出现了这个错误,在网上找的说是汤姆猫的server.xml配置的问题,但是配置以后发现虽然可以不报错。但是也无法正常启动运行程序。 后来发现是自己在配置检查过程中忽略了原来项目使用的tomcat的版本。我只加入了自己的版本,但是没有删除原来的tomcat的版本导致。 这也算是一种可能,提供给大家参考。 ...

qq_27859843的博客 5509

Android解决Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException:异常

今天在写代码时,ios端告诉我说,默认头像需要修改,于是给了我一张经过压缩的图片,这个图片是png格式的,可是没压缩之前是jpg格式的,我把图片导入mipmap中然后运行,直接就爆出了Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException:这个错误,一开始,并没有在意,我就cle

yanxiaosa的博客 1万+
上一篇: druid灌库报错-灌库数据中的时间戳和json中的intervals
下一篇: OLAP引擎这么多,为什么苏宁选择用Druid?
千淘万漉
博客等级 码龄10年 115粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值