当前位置: 首页 > 编程日记 > 正文

Thrift抛直接内存OOM一点解决思路

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

最近使用Thrift TThreadedSelectorServer服务方式,运行一段时间就会抛OutOfMemoryError: Direct buffer memory异常;

java.lang.OutOfMemoryError: Direct buffer memoryat java.nio.Bits.reserveMemory(Bits.java:658) ~[na:1.7.0_67]at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123) ~[na:1.7.0_67]at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306) ~[na:1.7.0_67]at sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:174) ~[na:1.7.0_67]at sun.nio.ch.IOUtil.read(IOUtil.java:195) ~[na:1.7.0_67]at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379) ~[na:1.7.0_67]at org.apache.thrift.transport.TNonblockingSocket.read(TNonblockingSocket.java:142) ~[libthrift-0.9.2.jar:0.9.2]at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.internalRead(AbstractNonblockingServer.java:539) ~[libthrift-0.9.2.jar:0.9.2]at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.read(AbstractNonblockingServer.java:388) ~[libthrift-0.9.2.jar:0.9.2]at org.apache.thrift.server.AbstractNonblockingServer$AbstractSelectThread.handleRead(AbstractNonblockingServer.java:203) ~[libthrift-0.9.2.jar:0.9.2]at org.apache.thrift.server.TThreadedSelectorServer$SelectorThread.select(TThreadedSelectorServer.java:590) ~[libthrift-0.9.2.jar:0.9.2]at org.apache.thrift.server.TThreadedSelectorServer$SelectorThread.run(TThreadedSelectorServer.java:545) ~[libthrift-0.9.2.jar:0.9.2]

很可能是直接内存没有做垃圾回收;

“垃圾收集进行时,虚拟机虽然会对Direct Memory进行回收,但是却不能像新生代和老年代一样,发现空间不足就通知收集器进行回收,它只能等到老年代满后做full gc,然后顺便帮它清理掉内存的废气对象”

如上引用自《深入理解java虚拟机》,程序可能一直在运行没有做过full gc,然后导致直接内存用光,另外直接内存默认值和堆大小一致

转载于:https://my.oschina.net/shipley/blog/418762

相关文章:

C/C++、嵌入式开发岗笔试集锦

图标链接 C运算符检索&#xff08;点击查看 - 转&#xff09; C构造函数、拷贝函数等理解&#xff08;点击查看 - 转&#xff09; 题目 ⭐⭐⭐1.&#xff08;STL库&#xff09;请问C的STL库中map的底层数据结构为&#xff08;&#xff09;&#xff0c;multimap的底层数据结…

Blender制作3D模型导出到UE5完整学习教程

学习如何在Blender中创建AAA游戏资产&#xff0c;然后导出到虚幻引擎5的完整指南 你会学到什么 遵循关于创建一套AAA游戏就绪的优质中世纪市场摊位的完整指南 最大化您的推荐人的潜力&#xff0c;以开发强大的游戏资产概念 使用Blender并了解其界面和快捷方式 从初级水平到世界…

[纪录]仿IOS滚轮效果(竖直滑动选择器)

今天想做一个类似这样的一个效果,可是UI的模板是参考IOS做的,于是就各种百度各种搜,最后让我找到了一个仿IOS滚轮的一个Demo,稍微研究了一下,发上来,大家一起学习,以后也方便我查看,就不用再去百度了,嘿嘿! 仿IOS滚轮效果 首先是一个类,继承了ScrollView public class WheelVie…

win7如何设置wifi热点_xp系统怎么设置无线网络热点(电脑设置wifi热点步骤)

现在手机基本都是可以开启wifi热点功能&#xff0c;但有时候因为各种原因&#xff0c;比如没有无线或者路由器有问题等情况&#xff0c;手机又需要使用网络&#xff0c;这个时候需要用电脑设置wifi热点。那么&#xff0c;怎么用电脑设置wifi热点呢&#xff1f;下面分别用win10系…

汇编语言第二课作业-实验1

Debug命令-摘自百度百科A 汇编命令 功能&#xff1a; 将指令直接汇编成机器码输入到内存中。说明&#xff1a; 用于小段程序的汇编及修改目标程序&#xff0c;所有输入的数字均采用十六进制&#xff0c; 用户装入内存的汇编语句是连续存放的&#xff0c;若没有指定地址&#xf…

C++、嵌入式软开之数据结构

总结&#xff1a; 1.二叉树搜索树是需要进行比较大小&#xff0c;满足传递性才可&#xff1b; 刷题总结&#xff1a; 1.&#xff08;二叉树遍历&#xff09;已知某二叉树的后序遍历序列是dabec&#xff0c;中序遍历序列是debac&#xff0c;它的前序遍历是&#xff08;&#xf…

3dsMax插件V-Ray渲染与合成学习课程 3ds Max: Rendering for Compositing in V-Ray Next

使用渲染元素&#xff0c;3ds Max的V-Ray Next对创建高质量合成所需的参数(如反射、阴影、遮罩等)提供了精细的控制。在本课程中&#xff0c;布莱恩布拉德利展示了如何在Photoshop和After Effects等应用程序中使用V-Ray Next为后期制作工作流专门创建渲染。探索渲染元素用户界面…

对找数程序的理解

经过几个小时的思考&#xff0c;总算是对老师出的这个程序题有了一定的了解。该C#程序是一个对数字进行查找的程序。程序清单如下&#xff1a; using System; using System.Collections.Generic; using System.Text; namespace FindTheNumber {  class Program  {    s…

win10鼠标灵敏度怎么调_和平精英最稳压枪灵敏度怎么调教程,适合所有段位以及适合国际版PUBG手游压枪...

和平精英(原刺激战场)主播最稳压枪灵敏度怎么调&#xff1f;不妨看看花了五个小时调试的最稳和平精英压枪灵敏度吧。废话不多&#xff0c;上图按照调。保证你满意&#xff0c;你离主播只差点意识此和平精英压枪灵敏度适合所有段位 也适合PUBG(和平精英国际版)-------分割线---…

C++基本知识点集锦(2022秋招)

&#xff08;1&#xff09;构造函数是一种特殊的类成员函数&#xff0c;是当创建一个类的对象时&#xff0c;它被调用来对类的数据成员进行初始化和分配内存。&#xff08;构造函数的命名必须和类名完全相同&#xff09; &#xff08;2&#xff09;C的空类&#xff0c;编译器会…

Sketchup插件Vray户外场景设计渲染教程 Vray Next For Sketchup Exterior

Sketchup户外场景设计的Vray Next 你会学到什么 渲染白天和夜晚场景 后期制作 Sketchup的Vray Next 中级sketchup用户 大小解压后&#xff1a;3.83G 1280X720 mp4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 大家好&#xff0c; 我是…

实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

贺邦原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的&#xff1a; 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用&#xff0c;理解系统调用的工作机制。 实验过程&#xff1a; 本文实验选择24号…

三菱plc232数据线驱动下载_三菱PLC与西门子PLC有什么区别?

三菱PLC与西门子PLC有什么区别&#xff1f;分别有什么优点和缺点&#xff1f;该如何选择&#xff1f;学习哪种品牌&#xff1f;首先它们的编程理念不同&#xff0c;三菱PLC是日系品牌&#xff0c;编程直观易懂&#xff0c;学习起来会比较轻松&#xff0c;西门子PLC是德国品牌&a…

Github 树形菜单插件

ajax显示gitlab的&#xff0c;很像mac的树形展示。 直接在左侧做了一个ajax的树&#xff0c;每次访问gitlab自动加载。非常方便呢&#xff0c;在国内网速这么慢的情况下更显得好用了。 下载地址&#xff1a; https://github.com/buunguyen/octotree/tree/master/dist chrome安装…

C/C++、嵌入式秋招之SQL篇

⭐⭐1.选取最大&#xff08;小&#xff09;值 SELECT * FROM employees order by hire_date desc limit 0,1解释&#xff1a; 知识点 ORDER BY 根据指定的列对结果集进行排序&#xff0c;默认按照升序&#xff0c;降序 ORDER BY DESCLIMIT(m, n) 从第 m 1 行开始取 n 条记录…

C4D样条曲线建模大师班 Cinema 4D MasterClass: Master Modelling using Splines

通过本课程&#xff0c;快速学习使用样条曲线建模的基础知识&#xff0c;并将您的技能提升到一个新的水平 你会学到什么 能够使用样条线对整个对象进行建模 三维建模和UV展开 能够找到模拟复杂形状的最佳方法 无数的提示和技巧 在项目中应用蓝图的真实尺寸 对Uv制图有更好的理…

从头到尾彻底解析Hash表算法

从头到尾彻底解析Hash表算法 发布时间: 2013-10-02 10:26 阅读: 25156 次 推荐: 14 原文链接 [收藏] 作者&#xff1a;July、wuliming、pkuoliver 说明&#xff1a;本文分为三部分内容&#xff0c; 第一部分为一道百度面试题Top K算法的详解&#xff1b;第二部分为关于H…

ftp windows无法访问此文件夹请确保输入的文件名_企业实战|企业FTP搭建

安装Vsftpd提前关闭selinux 和firewalld防火墙1.安装vsftp软件包 $ yum -y install vsftpd*2.启动vsftpd服务器 $ systemctl restart vsftpd $ systemctl enable vsftpd3.检查服务是否正常启动 $ ps -ef|grep vsftp && netstat -tunlp|grep 21至此 匿名用户的ft…

C++、嵌入式软开之指针

1.(指针数据)int* pa[5]; 描述: pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针; 2.(二级指针)以下程序的输出结果是: #include <iostream> using namespace std; void func(char **m){++m;cout

3dsMax插件V-Ray建筑可视化三维渲染细节技术学习教程

通过学习可用于相机放置、建模、修整等的策略&#xff0c;生成令人印象深刻且逼真的建筑三维渲染。了解如何将您的3D渲染场景提升到一个新的水平&#xff0c;以使您的图像引人入胜、有趣且讨人喜欢。在本课程中&#xff0c;讲师Verena Tatiana首先讨论了不同的细节处理方法&…

所有表单对象_Laravel 表单方法伪造与 CSRF 攻击防护

1、表单方法伪造有时候&#xff0c;我们可能需要手动定义发送表单数据所使用的 HTTP 请求方式&#xff0c;而 HTML 表单仅支持 GET 和 POST 两种方式&#xff0c;如果要使用其他的方式&#xff0c;则需要自己来定义实现。HTTP 请求方式概述最常见的 HTTP 请求方式自然是 GET 和…

使用按钮控制HTML5背景音乐开关

<!DOCTYPE HTML> <html> <head> <meta charset"utf-8"> <meta name"viewport" content"widthdevice-width; initial-scale1.0"> <title>演示&#xff1a;使用按钮控制HTML5背景音乐开关</title></…

hibernate和struts2实现分页功能

1.DAO层接口的设计&#xff0c;定义一个PersonDAO接口&#xff0c;里面声明了两个方法&#xff1a; public interface PersonDAO {public List<Person> queryByPage(String hql, int offset, int pageSize);public int getAllRowCount(String hql); } 2.DAO层接口的实现类…

Cmake软件编译opencv报错,CMake Warning at cmake/OpenCVDownload.cmake:193 (message): FFMPEG: Download...

当执行如下操作时&#xff1a; 出现下面报错&#xff0c; 在链接ipaddress.com查询raw.githubusercontent.com地址&#xff0c;然后将ip添加至C:\Windows\System32\drivers\etc\hosts中&#xff1a; 保存后&#xff0c;重新在cmake软件中点击“Configure”等待即可。

Blender+SP+UE5游戏艺术工作流程学习

Blender到虚幻引擎5 Blender游戏艺术 Blender for Game Art 你会学到: 如何在Blender中创建三维模型 UV如何展开和布局 如何在Substance Painter中表现肌理 如何使用虚幻引擎5 如何在UE5中点亮室内环境 MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&…

JQ 全选后获取选中的值_为什么在PBI中还需要切片器之三:Excel切片器之度量值切换...

Excel切片器之度量值切换原创 海峰没想到上篇文章一经发出&#xff0c;很快就过了10个留言&#xff0c;大喜过望&#xff0c;今天立马揭晓切片器之度量切换的应用。切片器之度量切换----参数法创建参数表&#xff0c;如下并导入数据模型创建需要的度量值&#xff0c;利润合计万…

layoutSubviews总结(转)

- (void)setNeedsDisplay- (void)drawRect但是是用initWithFrame 进行初始化时&#xff0c;当rect的值不为CGRectZero时,也会触发 You should override this method only if the autoresizing behaviors of the subviews do not offer the behavior you want. layoutSubviews, …

PHP日期格式转时间戳

PHP 提供了函数可以方便的将各种形式的日期转换为时间戳&#xff0c;该类函数主要是&#xff1a; strtotime()&#xff1a;将任何英文文本的日期时间描述解析为时间戳。mktime()&#xff1a;从日期取得时间戳。strtotime() strtotime() 函数用于将英文文本字符串表示的日期转换…

TFmini传感器使用

使用激光传感器 打开地面站&#xff0c;Mavlink控制台输入tfmini start --> tfmini status -->显示 current_distance:数字 即可得到距离&#xff1b; 将timini插到口UART&I2C B上面 需要在自启动文件中添加tfmini的自启动&#xff0c;否则出来的数据是0&#xff1b;…

3DsMax渲染插件VRay NEXT完整的视频指南

要求 基本的计算机和三维软件知识 这门课程对初学者和进阶者都有好处 我们确实经历了许多你甚至不知道存在的功能 VRay NEXT for 3Ds Max – Complete Video Guide 欢迎来到V-RAY视频手册 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:aac&#xff0c;44100 Hz语言…