HBASE遇到的java.lang.OutOfMemoryError: unable to create new native thread解决方法

本文介绍了解决在特定用户下因线程限制导致的问题的方法。通过调整系统的最大线程数设置,包括减少栈大小和增加可创建进程的数量,解决了无法创建更多线程的问题。

简单分享一下,类似问题的解决方法

刚才在某机器上xxx用户下压测时遇到这个问题,连xxx都进不去了

说明xxx用户下无法创建跟多的线程了(当然root用户没这个问题)

 

系统能够创建的最大线程数:(MaxProcessMemory - JVMMemory – 系统内存) / (ThreadStackSize) = Number of threads

有两种方式:

          减少xxx下的ThreadStackSize

          增加xxx下的nproc数量

修改

[lsmpusr@wxlab28bin]$ ulimit -a

core filesize          (blocks, -c) 0

data segsize           (kbytes, -d)unlimited

schedulingpriority            (-e) 0

filesize              (blocks, -f) unlimited

pendingsignals                (-i) 256636

max lockedmemory       (kbytes, -l) 64

max memorysize         (kbytes, -m) unlimited

openfiles                     (-n) 65536

pipesize            (512bytes, -p) 8

POSIX messagequeues     (bytes, -q) 819200

real-timepriority             (-r) 0

stacksize             (kbytes, -s) 10240-----可以减小这个,建议在jvm –xss中减少

cputime              (seconds, -t) unlimited

max userprocesses             (-u) 1024-----可以增加这个到32000

virtualmemory          (kbytes, -v)unlimited

filelocks                     (-x) unlimited

修改/etc/security/limits.conf

*    soft    nofile    65536
*    hard    nofile    65536
xxx soft nproc  32000
xxx hard nproc  32000
xxx soft stack  1024
xxx hard stack  1024

 

其中 xxx表示启动hbase的用户,如使用hadoop启动hbase,则配置如下:

hadoop           hard    nproc           32000

hadoop           soft    nproc           32000

hadoop           hard    stack           1024

hadoop           soft    stack           1024

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值