记一次,jvm 内存溢出

1、什么是内存泄漏
内存泄漏是指,有未被释放的java对象,一直停留在内存中。GCRoot 无法追踪到此对象,导致此对象无法被回收。

2、什么是内存溢出
内存溢出是指,java程序创建对象需要内存,但是却没有内存可用了,内存就溢出了。
溢出:从字面理解,桶不够装,水溢出了

3、当时的环境:
打包成jar后,直接 运行 java -jar xx.jar。默认的jvm 运行参数 -Xms 。 因此给jvm分配的内存比较小。然后,当时上传了1个有10W条的数据的excel插入到数据库。结果就是,运行了几分钟,用top命令查看,java 的 cpu使用率为 99%。结果就是程序直接报错。

4、当时情况
1、当时不清楚自己服务器的配置情况(阿里云学生机)
2、在本地测试好好的,在服务器端就不行了,怀疑是文件没上传,怀疑内存溢出

5、解决过程

1、先查看服务器配置
①、使用free -h 查看服务器内存。

clipboard.png

②、使用top 命令查看 cpu 个数
clipboard.png
输入top 后, 按 1

2、诊断是文件在服务端没读取到,还是内存溢出。
①上传小量的数据,发现上传成功,也就是是内存不大够
②使用top 命令。 客户端上传大文件。使用top命令时,发现上传后,jvm 的cpu 使用率 直接飙到 99%。内存从5% 飙到 35%。最后客户端直接报错

3、设置 jvm 的启动参数

-Xms : 初始堆大小(堆在java中是用于给对象分配内存的)
-Xmx : 最大堆大小
jcmd [pid] VM.flags

①查看 jvm 启动参数,看是否设置小了

jcmd [pid] VM.flags

②发现确实是设置下小了,重新设置,并启动

nohup java -Xms512m -Xmx512m -jar xx.jar &

最后的结果就是,程序运行稍微快了,之前上传1000条左右的数据都很慢,现在就快很多了

总结:
原本是想着能不能通过把jvm的启动参数设置大一点,进而来支持10W条数据的上传。无耐,阿里云学生机配置不好,只能稍微修改一点,再将文件切割为小文件上传了!

jvm参数请参考: https://segmentfault.com/a/11...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钻石指标和完美的计算

钻石的高度计算公式为:钻石的高度直径的三次方(单位毫米)0.00366(允许有0.03克拉的误差)例如,0.5克拉的钻石直径是5.01毫米,则它的高为:5.01*5.01*5.01*0.003660.46说明0.5克拉的钻石直径只有0.46克拉钻石的…

Spark应用日志级别设置

Spark-core包设置默认的日志级别为info,所以我们才看到一大堆日志信息。 开发的时候,把print的日志掩盖了。 方法一: 代码中设置日志级别 JavaSparkContext contextnew JavaSparkContext(conf); context.setLogLevel("warn"); 方…

linux find 按类型查找,Linux find查找find命令详解

玩蛇网推荐图文教程:python 列表Linux命令有很多,今天要介绍的是常用的基础命令中的find命令。find是Linux系统管理员所喜爱用的必备工具命令之一,它的作用是可以很轻松地找到你想要的文件,一个命令就可以在众多文件中找到你的目标…

window安装gcc编译器

在使用 GraphLab Create 时,导入包失败,提示libs没有的导入,而这些libs的编译是需要gcc。 1、访问:http://www.mingw.org/ 下载。 2、双击安装 3、安装好后会弹出下面的组件安装界面 3、找到mingw32-gcc-g(注意cl…

element表格实现树形全选_很实用!word中全选的快捷键介绍及使用方法

全选快捷键可以提高我们在操作word时工作效率,在操作Word2003中怎么对文档中的文字进行全选呢?下面为大家提供几种全选的方法,绝对好用。Word怎样全选?方法一、使用Word全选快捷键“CtrlA”进行全选(也适用于电子表格);方法二、展开菜单栏中的“编辑”…

linux 视频编辑 ffmpeg,ffmpeg转码视频真的好用!(ffmpeg的简单使用方法)

说明转码和编辑视频今天用Android Studio(后面简称AS)里的模拟器给系统录屏,用来展示OpenGL可视化的东西,打算上传B站,后来发现AS只能保存webm格式和GIF格式的视频,并且文件体积巨大,视频图像也是顺时针旋转的。没办法…

requests库入门09-OAUTH认证

实际登陆中,认证用到的token会变的,不过可以在GIthub设置一个私人token。 如图,登录GIthub,然后用户下面选择Settings/Developer settings/Personal access tokens,点击Generate new token,然后随便输个描述&#xff0…

深入了解HashMap

什么是hash?哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找…

snort入侵检测系统下载Linux,入侵检测系统Snort 2.9.0.2 发布

Snort 是一个免费的、跨平台的软件包,用作监视小型 TCP/IP 网的嗅探器、日志记录、侵入探测器。Snort 是全世界上使用最广泛的入侵预防与侦测软件。Snort 有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并…

linux shmmax单位,Linux核心参数Shmmax,shmall,shmni

Linux 下核心参数调整kernel.shmmaxshmmax是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,shmmax设置应足够大,能在一个共享内存段下容纳下整个的SGA,设置的过低可能会导致需要创建多个共享内存段,可能…

Failed to find Build Tools revision 26.0.1

Error:A problem occurred configuring project :app. > Failed to find Build Tools revision 26.0.1 在build.gradle 中buildToolsVersion 如何修改。看本地安装了哪些版本的 进入文件夹Android SDK 目录下build-tools,修改为里面有的版本

小学数学动画 android,小学数学动画教学下载-小学数学动画 安卓版v5.0-pc6手机下载...

小学数学动画教学软件是一款能让孩子爱上数学的客户端应用,小学数学动画app以动画的形式带领孩子学习数学知识以及各类公式原理,测底掌握数学方法。功能介绍小学数学动画通过形象、生动、清楚、易懂的触摸动画向你解释小学数学知识和原理(小学数学原理和…

Tomcat下找不到properties文件

在java core项目里,目录结构如下: 当使用 InputStream ipsnew FileInputStream("config/config.properties");能读到properties文件。但是在java web项目时,部署到Tomcat后。上面的读法就不行了。 javaweb项目结构如下&#xff1a…

Linux下查看软件安装路径(whereis)

原文链接:http://blog.csdn.net/ly_feng/article/details/7898649----------------------------------------------------------------一、查看文件安装路径:由于初次大部分软件的安装都是系统自动安装的,所有先说查看文件安装的所有路径(地址…

CloudDBA新功能上线--SQL过滤/限制/防火墙

1 前言 CloudDBA是阿里云数据库团队开发的智能诊断和优化平台,可以帮助用户更好使用阿里云数据库。CloudDBA不断提升算法和规则,更好的匹配更多用户场景,刚刚上线了SQL过滤功能,用来解决某类SQL给系统带来的冲击。 2 功能描述 匹配…

android主流技术框架,android开发现在流行什么IDE和开发框架?

慕仙森idea, AS (android studio), adt, 其中 AS 是google 非常推荐的.看官网就知道了. 框架的话: xutils , andbase , volley等等,还有比较流行的UI界面效果,个性化控件等等.  关于 IDE 的优劣势. 个人认为:各有各的好处.  对于以前 Java 的开发人员来说(我就是的,嘿嘿) ,…

联想拯救者y7000加内存条_关于2020款联想拯救者Y7000、R7000和Y7000P,r7000p选哪个好?看这里就对了...

朋友咨询:作为传媒行业,经常用到ps,pr,lr,ae,au,flash,3d max,edius等这些软件,8000以内的预算,那么2020款联想拯救者Y7000、R7000和Y7000P&#…

android 释放bitmap fragment,,为什么重复Replace Fragment会内存泄漏

如图&#xff0c;当点击下面的两个按钮时&#xff0c;REPALCE上面的Fragmnet&#xff0c;共两个&#xff0c;反复切换时发生了内存泄漏这是Fragment的代码&#xff1a;public class Fragment2 extends Fragment {private List lb new ArrayList<>();NullableOverridepub…

Improved GAN

https://www.bilibili.com/video/av9770302/?p16 从之前讲的basic gan延伸到unified framework&#xff0c;到WGAN 再到通过WGAN进行Generation和Transformation 复习一下GAN&#xff0c; 首先我们有一个目标&#xff0c;target分布&#xff0c;Pdata&#xff0c; 蓝色部分表示…

机器学习:样本集、验证集(开发集)、测试集

样本集、验证集&#xff08;开发集&#xff09;、测试集。 Ripley, B.D&#xff08;1996&#xff09;在他的经典专著Pattern Recognition and Neural Networks中给出了这三个词的定义。 Training set: A set of examples used for learning, which is to fit the parameters [i…