容器数量增加香港赛马平台搭建导致fs.inotify.max_user_instances超过限制

1.现象描述
2.问题分析
3.解决办法
4.总结
5.参考链接
1.现象描述

平台架构:Rancher,k8s,微服务

问题的香港赛马平台搭建论坛:haozbbs.com Q1446595067 出现发生在最近,当服务的数量增加到一定程度时,出现了容器日志不定期丢失的情况,通过以下方式均没有日志信息输出:
1)通过Rancher,Kubernetes UI查看容器日志
2)通过docker logs查看
2.问题分析
2.1 初步分析

由于是日志出现问题,首先考虑到的是rsyslog和journal服务是否工作正常;通过修改如下配置测试:

rsyslog配置文件:/etc/rsyslog.conf

// 日志频率限制
$IMUXSockRateLimitInterval 0
$IMJournalRatelimitInterval 0
// 打开文件数
$MaxOpenFiles 5000

1
2
3
4
5
6

journal配置文件:/etc/systemd/journald.conf

[Journal]
Storage=yes
Compress=yes
// 日志频率和使用内存
RateLimitInterval=0
RuntimeMaxUse=20M(实际默认10M即可)

1
2
3
4
5
6

重启组件

systemctl restart systemd-journald.service
systemctl restart rsyslog.service

1
2

然而,这样的措施只是暂时的解决了问题,一段时间之后问题仍会出现。可能只是重启了服务的作用;
2.2 进一步分析

在对所有服务器做相同的配置修改时,重启服务时遇到了如下提示信息:

: Too many open files

1

首先考虑的是文件句柄(fd)超出限制,所以对比以下两个命令的返回结果:

ulimit -n

100001(当前用户限制句柄数)

1
2
3
4

/proc/sys/fs/file-nr

第一列值为系统总的句柄数

1
2
3

发现实际当前用户是没有超过限制的;

如果超过限制,可参考这篇文章进行修改https://blog.csdn.net/sunny05296/article/details/54952009

为了找到具体的问题,使用以下命令追踪journal输出:

strace -f journalctl -fn

1

输出:

...
inotify_init1(O_NONBLOCK|O_CLOEXEC) = -1 EMFILE (Too many open files)
...

1
2
3

于是,我们开始关注inotify的配置:

执行以下两个命令查看inotify实例创建情况:

当前限制值(默认为128):

sysctl fs.inotify.max_user_instances

1

用户级:

find /proc//fd/ -type l -lname ‘anon_inode:inotify‘ -print 2>/dev/null | cut -d/ -f3 |xargs -I ‘{}‘ -- ps --no-headers -o ‘%U‘ -p ‘{}‘ | sort | uniq -c | sort -nr

1

进程级:

find /proc//fd/ -type l -lname ‘anon_inode:inotify‘ -print 2>/dev/null | cut -d/ -f3 |xargs -I ‘{}‘ -- ps --no-headers -o ‘%U %p %c‘ -p ‘{}‘ | sort | uniq -c | sort -nr

1

于是,我们有了最终的解决方案。
3.解决办法

最终,通过fs.inotify.max_user_instances限制值问题得到解决,具体操作如下:

修改当前值:

sysctl fs.inotify.max_user_instances=1024

1

添加配置到文件(目录/etc/sysctl.d/):

sysctl fs.inotify.max_user_instances=1024

1

关于限制值:每一个instance大约会消耗5KB的内存,所以在内存允许的情况下可以适当增加。

4.总结

虽然最终只通过修改fs.inotify.max_user_instances解决了问题,但是还是建议可适当优化rsyslog和journal的配置以应对多容器,日志量大的环境;

原文地址:http://blog.51cto.com/13857066/2137610

时间: 2024-08-30 10:48:20

容器数量增加香港赛马平台搭建导致fs.inotify.max_user_instances超过限制的相关文章

如何搭建基于容器的工业互联网PaaS平台

随着传统工业巨头的衰落和新兴"数字原生"企业的崛起,企业的竞争力正在被重新定义.对制造企业来说,硬件产品和实体资产已经不再是企业竞争力的必然保证.制造企业开始重新审视和定义自身的竞争力,寻找新的增长动能. 当下,我国工业转型升级迫在眉睫,工业互联网便是其间不可忽视的新兴信息技术力量.将其与制造业深度融合,可以为传统制造企业提供转型的新基础设施及应用模式. 8月9日,"2018中国制造业智能服务论坛"在长沙举行,会议聚焦传统制造业信息化转型及智能化发展.Rancher

fs.inotify.max_user_watches默认值太小,导致too many open files

看到too many open files可能想到fs.file-max参数,其实还受下面参数影响: fs.inotify.max_queued_events:表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件. fs.inotify.max_user_instances:表示每一个real user ID可创建的inotify instatnces的数量上限,默认128. f

centos 7 香港×××平台搭建安装遇到dracut等问题的总结

Linux发行版之香港×××平台搭建论坛:haozbbs.com Q1446595067 前用的是Ubuntu , 乌托邦Linux做的非常友好,无论是安装还是测试,我感觉比windows10还好,仅次于windows7,近期因为测试服务器软件移植需要,需要增加主流的Linux发行平台Redhat一线的平台,因为centos比较流行,就选择了CentOS 7的X86-64版,很早很早的时候,曾经用源代码编译的方式安装过Redhat Linux,经过那么多年的发展,以为再次安装应该很简单了,至少不

高效成熟的微信牛牛平台搭建软件开发流程和团队

下面是开发管理最规范一家软件公司的开发流程,该公司总部位于美国硅谷,其开发的产品曾获得PC Magazine的最高五星级的优秀好评.供大家参考. 1. 项目计划 在一个产品发布并使用之后,其中肯定有许多地方不如意和值得改进的地方.客户在使用的过程中会发现一些问题,提出更高的需求,市场也在发生变化,我们的竞争对手也在发展,新的技术不断地产生,这些因素推动着我们的产品不断地向前发展,使它的版本不停地往上增长.这些发展的需求不是一下子提出来的,在客户使用的过程中发现某些不如意不方便的地方,他们会向我们

记一次PHP优化极速、赛车源码平台搭建架设案例

一.案例分析.极速.赛车源码平台搭建架Q:2947702644我们可以想到,既然是访问缓慢,有时候直接访问不了,以前是没问题的,到现在就突然出现了问题,那必定是我们的nginx与php响应不过来导致的,原因可能是其他域名网站的用户连接数巨增导致的.那我们找到问题的根源解决并优化就可以了.接着凭着自己的经验与百度,去解决问题. 二.问题解决与过程分析 1.Nginx优化: 1.查看nginx的日志,找出错误 $ cat /usr/local/nginx/logs/error.log | grep

狗崽乐园系统平台搭建

狗崽乐园系统平台搭建<苏经理/134-1619-5045>狗崽乐园系统开发模式,狗崽乐园系统平台搭建,狗崽乐园模式游戏开发系统,狗崽乐园模式APP软件系统开发. 随着年初互联网 现代农业写入国家十三五百项规划,作为微信认证第三方开发商软件系统,今年就接到了非常多的客户咨询开发农场养殖类系统.今天小编就和大家分享这当中比较有代表性的农场游戏模式. 游戏详细规则: 1. 开地:选择地块类型开地,仓库小狗数量满足地块养狗数量范围就开地成功 备注:5块金地,10块绿地 2.增养:选择已开的地,按地块养

基于H3C CAS的云计算平台搭建

基于H3C CAS的云计算平台搭建 1.H3C CAS介绍 H3C CAS(CloudAutomation System)云计算管理平台是H3C 公司推出的构建云计算基础架构的资源管理平台,它为数据中心云计算基础架构提供虚拟化管理解决方案,实现对数据中心云计算环境的集中管理和控制.此外,CAS 还支持vStor 分布式存储管理功能,即整合多个宿主机内的硬盘资源,构建IP SAN 提供给本云计算资源平台或其他业务系统使用. 2.产品组件 CAS 由四个组件构成: CVK(Cloud Virtual

Openstack平台搭建之第二天

Openstack平台搭建之第二天 环境准备:RHEL6.5 内存4G 硬盘70Gyum源的制定(分别制定三个yum源,其中前面三个是自己本地定制的yum源)baseurl=ftp://instructor.example.com/pub/rhel6.5/Serverbaseurl=ftp://instructor.example.com/pub/erratabaseurl=http://instructor.example.com/pub/OpenStack/baseurl=ftp://ftp

Storm on Yarn :原理分析+平台搭建

Storm on YARN: Storm on YARN被视为大规模Web应用与传统企业应用之间的桥梁.它将Storm事件处理平台与YARN(Yet Another Resource Negotiator)应用管理框架进行了组合,为此前进行批处理的Hadoop应用提供了低延迟的处理能力. 诞生背景(yahoo): 雅虎公司平台副总裁Bruno Fernandez-Ruiz表示,他们发现Hadoop在处理海量数据时的速度还不够快.Hadoop和MapReduce的速度无法满足用户事件,比如电子邮件