无Docker不OpenStack,当前讨论OpenStack总是离不开Docker。这里我先嚼一下剩饭,下面是OpenStack上Docker技术分布的老图。
线程数量上限" fork: Cannot allocate memory"
我们的环境中出现过1次,表现为宿主机无法ssh登录,通过IPMI Console进行登录闪断。这个问题原因是由于某个应用的问题导致生成大量的线程,达到了系统线程的上线。
1. pid_max 和 threads-max 值如何设置不影响单个进程的线程数量,上限目前为32768
2. pid_max 和 threads-max 影响所有线程的总量,二者较小者为系统上限。超过系统上限后部分系统命令都无法使用。
3. 调整系统上限后虽然可以有更多的线程,但是太多的线程将会对系统稳定性造成影响。
解决思路
1. 环境中所有宿主机将/proc/sys/kernel/pid-max设置为65535,并通过nagios监控告警宿主机上的线程数量。
2. 从应用层(tomcat)限制线程上限。
参考:
http://www.tuicool.com/articles/ziYbY3n