out of memory kill process (java) score or a child

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了out of memory kill process (java) score or a child相关的知识,希望对你有一定的参考价值。

最近在跑大数据,发现 out of memory kill process (java) score or a child,查资料发现是操作系统linux low mem 太低,后来加大内存一样不管用,开始分析代码:

  1. 将代码中的String 字符串拼接改成StringBuilder(单线程速度比StringBuffer快)

  2. 将获取文件名称的方法file.listFiles() 改成 file.list()

  3. 将代码中的不必要的创建对象、数组开销去掉,尤其是在循环里



发现仍然有问题,通过free -lm发现low mem free 不断减小,buffer/cache不断增大,cpu利用率在百分之零点几,查阅资料发现,操作系统是先将数据放在cache中,一定时间后,然后将cache数据刷进磁盘中,之前误解以为free是可用内存,其实可用内存= free + cache, 于是做以下几点

  1. 把数据直接放入磁盘,这样的问题是cpu会很高,我的机器有4个cpu,跑下来没有问题

  2. 设置jvm的最大堆内存


跑了一下午没有问题,在这记一下。

本文出自 “11576716” 博客,请务必保留此出处http://11586716.blog.51cto.com/11576716/1905270

以上是关于out of memory kill process (java) score or a child的主要内容,如果未能解决你的问题,请参考以下文章

Out of memory: Kill process 解决

out of memory kill process (java) score or a child

Linux中:Out of memory: Kill process 29650 (java) score 174 or sacrifice child

Linux中:Out of memory: Kill process 1270 (java) score 478 or sacrifice child 或者:java.lang.OutOfMemory

Linux OOM-killer机制(out of memory)

出现 CUDA out of memory 的解决方法