docker – Kubernetes OOM pod被杀死,因为内核内存增长很多

weixin_38104933 2019-09-12 01:19:47
我正在开发一个java服务,它基本上在网络文件系统中创建文件来存储数据.它运行在Ubuntu 18.04 LTS中的k8s集群中.当我们开始限制kubernetes(限制:内存:3Gi)的内存时,pod开始被kubernetes OOMKILL. 一开始我们认为这是java进程中的内存泄漏,但更深入地分析我们注意到问题是内核的内存.我们验证了查看文件/sys/fs/cgroup/memory/memory.kmem.usage_in_bytes 我们将案例分离为仅使用DD命令创建文件(不带java),如下所示: for i in {1..50000}; do dd if=/dev/urandom bs=4096 count=1 of=file$i; done 使用dd命令我们看到同样的事情发生了(内核内存增长到OOM).在k8s重新启动pod后,我做了一个describe pod: >最后状态:终止>原因:OOMKilled>退出代码:143 创建文件会导致内核内存增长,删除这些文件会导致内存减少.但我们的服务存储数据,因此它会不断创建大量文件,直到因为OOMKilled而终止pod并重新启动. 我们测试了使用带有-kernel-memory参数的独立docker来限制内核内存,并且它按预期工作.内核内存增长到极限并且不再上升.但我们没有找到任何方法在kubernetes集群中这样做.有没有办法限制K8S环境中的内核内存?为什么文件的创建会导致内核内存增长并且不会被释放?
...全文
1569 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38113341 2019-09-12
  • 打赏
  • 举报
回复
感谢所有这些信息,它非常有用! 在我的应用程序中,我通过使用以下命令创建一个运行cron作业的新侧容器,每5分钟解决一个问题: echo 3 > /proc/sys/vm/drop_caches (请注意,您需要侧容器以特权模式运行) 它运行良好,具有可预测的优点:每隔5分钟,您的内存缓存将被清除.
内容概要:本文围绕城市场景下无人机三维路径规划中的导航变量多目标优化问题,提出了一种改进的多目标粒子群优化算法(NMOPSO),旨在应对高维、多约束条件下路径规划的复杂性。研究在Matlab平台上实现了算法仿真,通过构建精细化的城市三维环境模型,综合考虑路径长度、飞行安全性、能耗等多个优化目标,有效提升了无人机在复杂城市环境中执行任务时的路径规划效率与可靠性。文中系统阐述了NMOPSO算法的设计原理、实现流程及关键参数配置,并通过大量对比实验验证了该算法在收敛速度、解集多样性和Pareto前沿质量方面相较于传统多目标优化算法的显著优势; 适合人群:具备一定优化算法理论基础和Matlab编程能力的研究生、科研人员及从事无人机路径规划、智能优化算法研发的工程技术人员; 使用场景及目标:①应用于城市环境下的无人机物流配送、电力巡检、应急救援等实际任务中的高效路径规划;②为高维多目标优化问题的研究与先进智能算法的改进提供高质量的参考案例,推动智能优化技术在无人系统自主决策领域的深入应用; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,重点研读目标函数的数学建模、环境约束的处理机制以及算法性能评价指标的设计,以深入理解NMOPSO算法的核心创新点与工程实现细节。

479

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧