java 获取unlix时间,再谈 Unlix (Linux, AIX, HPUX) 上 Java 的 java.lang.OutOfMemoryError: unable to create new...

首先很容易排除是 程序问题

内存用了很少,64 位 Java也没有内存限制,线程也不多,-Xss 堆栈也没人会配置很大。

那么肯定是 limit 不足引起

配置 ulimit 就可以了,问题看起来很简单,但是问题为什么有时候难以解决,因为涉及 Uinux 下面因素

到底那一个 limit 控制

到底 soft 还是 hard

设置在 /etc/security/limits.conf, 还是用户 Profile

如果是 crontab 启动又如何配置

澄清概念

Java 线程数多少是受 max user processes 控制

max user processes 是什么

也就是 /etc/security/limits.conf 下面:

* soft nproc 4096

* hard nproc 16384

或者是下面

bash-3.2$ ulimit -a

max user processes              (-u) 4096

hard / soft 区别

hard 只能 root 设置,允许的最大值。

soft 意味着用户的默认值。用户自己用户可以通过  ulimit -u  重新配置成为小于 hard 的值。

怎么修改

hard 只能 root 设置- 修改文件/etc/security/limits.conf,并重启 OS

Soft - ulimit -u 10240 , 比如这个命令就改成 10240 了,没超过 hard 的 16384 。

crontab 环境变量

注意和用户登录到 OS shell 得到的是不一样的,它不读任何的用户 profile

所以要特别使用 source xxxx/profile  或者  . xxxx/profile 来引入环境变量 (务必不能 sh xxxx/profile, 这是设置到新启动的 shell 里面了)。

如何配置

如下配置,并重启 OS 是最最简单的方法,也就是 /etc/security/limits.conf 下面:

* soft nproc16384

* hard nproc 16384

如果是其它不同的配置,要理解上面的概念并相应操作

附一段最简单代码来测试能启动的线程数:

public class ThreadsTest extends Thread {

public ThreadsTest() {

start();

}

public void run() {

while(true) {

try {

Thread.sleep(120000);

}catch (Exception e)

{System.out.print(e);}

}

}

public static void main(String[] args) {

for(int i = 0;; i++){

new ThreadsTest();

System.out.println("Thread ...: " + i);}

}

}

随机推荐

android的apk逆向工程后的文件目录介绍

一.用压缩软件打开apk,得到五个文件或文件夹 1.META-INF 2.res 3.AndroidManifest.xml 4.classes.dex 5.resources.arsc 二.xml文 ...

对话框AlertDialog.Builder使用方法

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...

C#模拟浏览器发get,post请求

调用: JArray ja = (JArray)JsonConvert.DeserializeObject("["+GetDataPost()+"]"); Re ...

careercup-递归和动态规划 9.10

9.10 给你一堆n个箱子,箱子宽w,高h,深d.箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子.实现一个方法,搭出最高的一堆箱子,箱堆的高度为每个箱子高度的总和. 解法: ...

MVC-Easy-UI-datagrid-分页-查询

时间仓促,代码写的乱,莫怪,着影区不用理会(功能之外)

自定义JSTL函数标签(一)

jstl标签库的配置 * 将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar) 注意:jstl必须在能够支持j2ee1.4/servl ...

基于HTML5 Canvas 实现商场监控

伴随国内经济的高速发展,人们对安全的要求越来越高.为了防止下列情况的发生,您需要考虑安装安防系统: 提供证据与线索:很多工厂银行发生偷盗或者事故相关机关可以根据录像信息侦破案件,这个是非常重要的一个线 ...

oracle 多版本

并发控制 concurrency control 数据库提供的函数集合,允许多个人同时访问和修改数据. 锁(lock)是Oracle管理共享数据库资源并发访问并防止并发数据库事务之间“相互干涉”的核心 ...

01JAVA语言基础课后作业

1.问题 一个Java类文件中真的只能有一个公有类吗? 请使用Eclipse或javac检测一下以下代码,有错吗? 回答  真的只能有一个公有类 一个Java源文件中最多只能有一个public类,当有 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值