Docker下的资源限制问题


问题背景

公司某产品出现了一个奇怪的OOM 错误提示. 

问题现象是 前台产品 提示 OOM cannot create native thread
但是同时查看 机器的资源和容器cadviser的资源, 资源限制都很少. 内存远远没有到达瓶颈, 并且看gclog也没有看到很多 GC信息
所以怀疑是资源限制导致的. 但是具体哪种资源限制也比较难以确认. 我这边也没有一个比较好的思路.
只能自己做下测试与验证.

查看宿主机的限制和容器的限制

我拿一个单节点的K8S节点进行一下简单的验证:
宿主机的限制:
open files (-n) 65535
stack size (kbytes, -s) 8192
max user processes (-u) 125328 容器内的限制
open files (-n) 1048576
stack size (kbytes, -s) 8192
max user processes (-u) unlimited 发现容器内外的限制总量不一致.
然后计划基于此进行一下验证

进入容器内

使用如下命令创建无数进程
注意需要先试用如下命令进入容器
kubectl -exec -n namespace pod's_name bash
然后执行命令
for i in $(seq 1 100000);do sleep 1000 & done 注意这个命令非常耗费资源, 一定要慎用. 随着线程数量的越来越多. 机器创建的速度会越来越慢.
然后发现可以突破 65535的资源限制, 也就是如下: 在容器内部:
Tasks: 66302 total, 1 running, 66301 sleeping 说明跟宿主机的部分咸芝士没有关系的.

内存使用情况

Tasks: 66302 total,   1 running, 66301 sleeping,   0 stopped,   0 zombie
%Cpu(s): 2.0 us, 3.8 sy, 0.0 ni, 93.6 id, 0.0 wa, 0.1 hi, 0.4 si, 0.0 st
MiB Mem : 31368.9 total, 411.7 free, 29466.7 used, 1490.5 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1359.5 avail Mem kill 所有的sleep 进程之后:
Tasks: 164 total, 1 running, 3 sleeping, 0 stopped, 160 zombie
%Cpu(s): 1.0 us, 0.4 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.1 hi, 0.1 si, 0.0 st
MiB Mem : 31368.9 total, 13212.6 free, 16554.4 used, 1601.9 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 14307.7 avail Mem

其他限制学习

未完待续

Docker下的资源限制问题的更多相关文章

  1. Docker管理控制相关资源

    一台宿主机可以放多个容器,默认的情况下,Docker 没有对容器进行硬件资源的限制,当容器负载过高时会尽可能的占用宿主机资源,所以有时候我们需要对容器的资源使用设置一个上限,这里就需要管理 Docke ...

  2. Docker运行时资源限制

    Docker 运行时资源限制Docker 基于 Linux 内核提供的 cgroups 功能,可以限制容器在运行时使用到的资源,比如内存.CPU.块 I/O.网络等. 内存限制概述Docker 提供的 ...

  3. 设想 Docker 下部署 KVM

    设想 Docker 下部署 KVM 一.安装 $ yum -y install kvm # kvm base , must $ yum -y install libvirt -y # libvirtd ...

  4. maven 编译部署src/main/java下的资源文件

    maven 编译部署src/main/java下的资源文件 maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到targ ...

  5. android访问asset目录下的资源

    android提供了AssetManager来访问asset目录下的资源, 在activity中通过getAssets()获取AssetManager 常用的api如下: 1.列举路径下的资源Stri ...

  6. 安卓获取Assets目录下的资源

    获取Assets目录下的资源 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 ! ...

  7. 在Docker下部署Nginx

    在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...

  8. Android 如何引用com.android.internal.R目录下的资源

    Android 如何引用com.android.internal.R目录下的资源 项目需求 有一个资源跟系统上的一个资源相同,想要引用它:frameworks/base/core/res/res/dr ...

  9. Docker下redis的主从、持久化配置

    Docker下redis的主从.持久化配置 redis是k-v型nosql数据库,支持字符串(string).列表(list).集合(set).散列(hash).有序集合(zset:形如member: ...

  10. java中根据key获取resource下properties资源文件中对应的参数

    properties资源文件是放在resource目录下的: 新建工具类: package com.demo.utils; import java.io.InputStream; import jav ...

随机推荐

  1. 查看电脑、手机中已保存的wifi密码

    电脑: 以管理员身份运行CMD,执行 netsh wlan show profile netsh wlan export profile folder=C:\ key=clear 此时,用记事本打开对 ...

  2. 8种超简单的Golang生成随机字符串方式

    本文分享自华为云社区<Golang生成随机字符串的八种方式与性能测试>,作者: 张俭. 前言 这是**icza**在StackOverflow上的一篇高赞回答,质量很高,翻译一下,大家一起 ...

  3. Java 插入Excel页眉、页脚

    前言 在Excel文档中,我们常用页眉页脚来显示文档的附加信息,例如日期.公司名称.Logo或作者信息等.本文将通过Java程序来介绍如何给Excel文档添加页眉页脚.代码示例主要从以下几方面来演示添 ...

  4. 案例解析关于ArkUI框架中ForEach的潜在陷阱与性能优化

    本文分享自华为云社区<深入解析ForEach的潜在陷阱与性能优化:错误用法与性能下降的案例分析>,作者:柠檬味拥抱 . 在ArkUI框架中,ForEach接口是基于数组类型数据进行循环渲染 ...

  5. 这场世界级的攻坚考验,华为云GaussDB稳过

    摘要:实践证明,华为云GaussDB完全经受住了这场世界级的攻坚考验,也完全具备支撑大型一体机系统迁移上云的能力,并积累了丰富的经验. 本文分享自华为云社区<这场世界级的攻坚考验,华为云Gaus ...

  6. Python 可以满足你任何 API 使用需求

    摘要:在本教程中学到的概念和技术将允许您使用自己喜欢的任何 API 进行练习,并使用 Python 来满足您可能拥有的任何 API 使用需求. 本文分享自华为云社区<Python 和 API:读 ...

  7. Net 高级调试之十六:平台互用性及P/Invoke和内存泄漏调试

    一.简介 今天是<Net 高级调试>的第十六篇文章,也是这个系列的最后一篇文章了.既然是最后一篇文章,我需要在这里说明一下,我当前的这个系列,不是针对<Net 高级调试>这本书 ...

  8. 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅵ)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...

  9. C# 使用SqlDataAdapter和DataSet来访问数据库

    使用SqlDataAdapter和DataSet来访问数据库 报:已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭 解决方法,使用 using 包住 connectio ...

  10. 虚拟现实 VR 碰撞 3D 可视化,图扑打造一体化管控平台

    前言 工信部<虚拟现实产业发展白皮书 5.0 >中明确提出:"通过财政资金促进虚拟现实技术产业化,支持面向工业.文化.教育等重点行业的虚拟现实技术应用". 虚拟现实 V ...