麒麟v10 SP2系统容器化部署MySQL、RabbitMQ、redis-ha-haproxy等出现OOMkill内存异常升高问题处理

news/2024/9/20 16:48:43

问题场景

操作系统:麒麟系统v10 SP2

k8s版本:v1.23.17

容器运行时:containerd

Rabbitmq镜像版本:3.9.11-debian-10-r0(3.11.10-debian-11-r0版本已正常)

Mysql镜像版本:mysql_5.7.37-debian-10-r95(8.0.20版本已正常)

redis-ha-haproxy镜像版本:haproxy:2.0.22-alpine、haproxy:2.0.25-alpine

问题描述

容器化部署Rabbitmq,mysql,出现OOM内存异常升高导致系统内存无限制打满,以及kubesphere安装部署redis-ha-haproxy时异常(CrashLoopBackOff ,System OOM encountered)无法正常运行。

  • mysql

  • redis-ha-haproxy

问题原因

与麒麟系统工程师沟通了下,麒麟反馈在麒麟系统v10 SP2版本上,systemd版本已经升级到了243,内存异常容器镜像使用的systemd为240版本,当使用SP2系统版本部署容器化中间件会因为open file数目巨大导致内存占用异常。

问题修复

修改docker或containerd的容器运行时ulimit nofile

  • docker

    可以从配置修改daemon.json,或是从systemd服务层面进行修改,建议从systemd服务层面进行修改

    • docker配置修改daemon.json

      "default-ulimits": {"nofile": {"Name": "nofile","Hard": 1048576,"Soft": 1048576}
      }
      
    • systemd服务层面进行修改

      vim /lib/systemd/system/docker.service
      # 将LimitNOFILE=infinity改为LimitNOFILE=1048576
      LimitNOFILE=1048576 
      

      修改完成后进行reload,重启

      systemctl daemon-reload
      systemctl restart docker 
      

      查看容器ulimit值为设置的1048576则正常

      ulimit -n 
      1048576
      
  • containerd

    systemd服务层面进行修改

    vim /lib/systemd/system/containerd.service
    # 将LimitNOFILE=infinity改为LimitNOFILE=1048576
    LimitNOFILE=1048576 
    

    修改完成后进行reload,重启

    systemctl daemon-reload
    systemctl restart containerd 
    

    查看容器ulimit值为设置的1048576则正常

ulimit -n 
1048576

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/47463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024.6.24 CTF MISC 任务清单

题目: 黑客帝国 https://buuoj.cn/challenges#%E9%BB%91%E5%AE%A2%E5%B8%9D%E5%9B%BD 打开发现是txt文档 看起来像是16进制的,我们把它挪到 010 中 此时出现了 rar 的标志,说明要保存为 .zip的形式 于是破解了密码,但是图片显示错误 从网上搜到的结果可知: PNG(png)文件…

【Playwright+Python】系列教程(二)手把手带你写一个脚本

一、如何使用代理方式打开网页 在 playwright.chromium.launch() 中传入 proxy 参数即可,示例代码如下: 1、同步写法: from playwright.sync_api import sync_playwrightproxy = {server: http:/127.0.0.1:8080}def run():with sync_playwright() as p:browser = p.chromium…

【游记】中考后SH四日游

中考后SH四日游6.22 6.23本来接下来还有拍摄的东方明珠旁云彩的移动的,体验到了什么是“风云变幻”,但由于是视频,懒得传了。6.246.25 6.26 6.27本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18265950,未经允许严禁转载。 版…

(Redis 理论与实践学习)Redis的数据结构:String类型

目录String的主要实现内部编码模式何为简单动态字符串SDS的底层实现C语言字符串和SDS的区别, SDS的优点有哪些?常数获取字符串长度避免缓冲区溢出,通过对数组的扩增实现空间增大合理的资源分配,减少内存分配的次数扩增时的空间预分配缩短时的惰性空间释放二进制安全总结一下…

STM32内存分布,启动过程及bootloader

STM32怎么说也用了好几年了,但是对于它的内存分布,启动过程,总是模棱两可;所以说决定写这篇文章做下梳理,水平有限,欢迎指正; 以下以F407为例 1. STM32地址空间分布图片出自M3与M4权威指南+-------------------------+----------------------------------+Address Range…

花样玩转“所见即所得”的可视化开发UI

随着技术的发展,用户对软件的界面美观度和交互体验的要求越来越高。在这样的背景下,可视化开发UI(User Interface)成为了提升用户体验和开发效率的重要工具。 通过图形界面来设计和构建用户界面的方法,可视化开发UI可以说改变了软便开发的生态,与传统的代码编写相比,它允…

UNIQUE VISION Programming Contest 2024 Summer (AtCoder Beginner Contest 359)

A - Count Takahashi 数 Takahashi 字符串的数量。 模拟。点击查看代码 #include<bits/stdc++.h> using namespace std; #define int long long const int maxn=2e5+3; char s[maxn]; int n,cnt; signed main(){cin>>n;for(int i=1;i<=n;i++){cin>>s;cnt…

【内网渗透】全网最详细的端口转发教程

场景介绍最近在真实环境测试和编写靶场实战教程时,总会遇到内网主机无法直接访问,需要通过转发端口、建立代理隧道等方式去访问,以方便后续进一步的横向渗透测试。本文章主要介绍一些端口转发工具的使用。测试场景拓扑图中所标注的IP地址为本地测试地址Kali服务只能ping通19…