限制 kubernetes 跑的业务容器所起的进程数

xiaoxiao2021-02-28  52

现象描述

发现业务容器,不停地起线程,现象如下:

[root@master ~]# kubectl logs appserv-2336744132-qhd2d -n xiaojiang ... WARNING: Bean creation exception on non-lazy FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testService': Invocation of init method failed; nested exception is java.lang.OutOfMemoryError: unable to create new native thread Jan 29, 2018 10:25:40 AM org.springframework.beans.factory.support.DefaultListableBeanFactory getTypeForFactoryBean WARNING: Bean creation exception on non-lazy FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testService': Invocation of init method failed; nested exception is java.lang.OutOfMemoryError: unable to create new native thread Jan 29, 2018 10:25:40 AM org.springframework.beans.factory.support.DefaultListableBeanFactory getTypeForFactoryBean WARNING: Bean creation exception on non-lazy FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testService': Invocation of init method failed; nested exception is java.lang.OutOfMemoryError: unable to create new native thread Jan 29, 2018 10:25:40 AM org.springframework.beans.factory.support.DefaultListableBeanFactory getTypeForFactoryBean WARNING: Bean creation exception on non-lazy FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testService': Invocation of init method failed; nested exception is java.lang.OutOfMemoryError: unable to create new native thread

这种情况下,会把所在的节点资源耗光,从而触发各种问题的产生

处理方法

限制docker 容器所起的进程数,执行以下命令就可以解决此类问题

#!/bin/bash MAX_PIDS=1000 CGROUP_PIDS=/sys/fs/cgroup/pids SYSTEM_SLICE=/sys/fs/cgroup/pids/system.slice/ DOCKER=/sys/fs/cgroup/pids/docker/* KUBEPODS=/sys/fs/cgroup/pids/kubepods echo "set @ `date`">/tmp/pids_setting.latest if [ ! -d $CGROUP_PIDS ];then mkdir -p $CGROUP_PIDS mount -t cgroup -o pids none $CGROUP_PIDS fi for i in `find $DOCKER -type d`; do echo $MAX_PIDS > $i/pids.max done for i in `find $KUBEPODS -name "pod*" -type d`; do echo $MAX_PIDS > $i/pids.max done

更多精彩分享博客: http://www.lijiaocn.com/tags/kubernetes.html

转载请注明原文地址: https://www.6miu.com/read-1700043.html

最新回复(0)