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的最大堆内存

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

时间: 2024-10-10 16:49:09

out of memory kill process (java) score or a child的相关文章

Out of memory: Kill process 内存不足

服务直接被 killed,感觉特别奇怪.代码肯定是没有问题的,但为什么放到服务器上就出错了呢. 部署时报错如下: Shell代码   Failed to add the deployment content to the repository: java.util.concurrent.CancellationException: Operation was cancelled wildfly 报错如下: Shell代码   ./standalone.sh: line 307: 12526 Ki

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

解:内存不足,自动查杀了进程,即杀死了项目进程,项目不能启动 这个问题的原因是low memory耗尽."内核使用low memory来跟踪所有的内存分配,一旦low memory耗尽,就会查杀进程,以保持系统的正常运转.说白了 OOM Killer 就是一层保护机制,用于避免 Linux 在内存不足的时候不至于出太严重的问题,把无关紧要的进程杀掉 解:找到:bin/catalina.sh,在这个前面 echo "Using CATALINA_BASE:   $CATALINA_BAS

There is insufficient memory for the Java Runtime Environment to continue问题解决

在linux系统下长时间进行性能测试,连续几次发生服务器假死无法连接上的情况,无奈只能重启服务器.在测试路径下发现hs_err_pid17285.log文件,打开文件查看其主要内容如下: # There is insufficient memory for the Java Runtime Environment to continue.# Cannot create GC thread. Out of system resources.# Possible reasons:#   The sy

Android Kill Process

/********************************************************************** * Android Kill Process * 说明: * 在Android App中杀死其他的App进程. * * 2017-8-5 深圳 龙华樟坑村 曾剑锋 *********************************************************************/ 一.参考文档: 1. Why KILL_BACKG

jmap(Memory Map For Java)

功能 jmap(Memory Map For Java)命令用于生成堆转储快照(一般称为heaphump或dump文件).如果不使用jmap命令,要想获取Java堆转储快照还有一些比较“暴力”的手段:使用-XX:HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件:通过-XX:HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成dump文件,又或者在Linux系统下通过Kill -3命令发送进程退

Android 如何将一个app 设置为持久app, 不被low memory kill 关闭

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 如何将一个app 设置为常住app, 不被low memory kill 关闭 [Keyword] app 持久 persistent [Solution] 1. 将app 的manifest.xml 中的 application 中添加属性 android:

LeetCode 582. Kill Process 解题报告

[例子1]  Kill Process Problem statement: Given n processes, each process has a unique PID (process id) and its PPID (parent process id). Each process only has one parent process, but may have one or more children processes. This is just like a tree str

LeetCode:Kill Process

582. Kill Process Given n processes, each process has a unique PID (process id) and its PPID (parent process id). Each process only has one parent process, but may have one or more children processes. This is just like a tree structure. Only one proc

Caused by: java.lang.IllegalArgumentException: addChild: Child name 'localhost' is not unique

1.错误描述 严重: End event threw exception java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl