PThread创建失败的Linux



我一直在做一个项目,移动应用程序调用我的java应用程序并存储数据。我在虚拟实例的日志中至少每10次看到以下错误。我确信这不是应用程序错误。

18 threadpool_pthread_impl.cc:51] Check failed: res == 0 (11 vs. 0) pthread_create failed

***检查故障堆栈跟踪:***

我在内核中检查了我的线程最大值

cat /proc/sys/kernel/threads-max

线程最大值->508172

我可以看到交换内存为14GB,堆栈大小为8MB,最大用户处理器为4096

我试图找到一个解决方案已经有很长一段时间了,但没有找到。

我确信这不是应用程序错误。

你很可能搞错了。常见的原因是在线程退出后没有加入线程,或者创建没有绑定的新线程。

错误11是EAGAIN,这意味着某个限制已用尽。发件人pthread_create:

EAGAIN遇到系统对线程数量的限制。有许多限制可能会触发此错误:达到了RLIMIT_NPROC软资源限制(通过setrlimit(2(设置(,该限制限制了真实用户ID的进程和线程数量;达到了内核对进程和线程数量的系统范围限制/proc/sys/kernel/threads max(见proc(5((;或达到pid的最大数量/proc/sys/kernel/pid_max(参见proc(5((。

最大用户处理器为4096

你指的是max user processes。这似乎很低(注意,这会计算当前用户创建的所有进程中的所有线程(。我会先把它设置得更高。

相关内容

  • 没有找到相关文章

最新更新