Docker下的资源限制问题
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下的资源限制问题的更多相关文章
- Docker管理控制相关资源
一台宿主机可以放多个容器,默认的情况下,Docker 没有对容器进行硬件资源的限制,当容器负载过高时会尽可能的占用宿主机资源,所以有时候我们需要对容器的资源使用设置一个上限,这里就需要管理 Docke ...
- Docker运行时资源限制
Docker 运行时资源限制Docker 基于 Linux 内核提供的 cgroups 功能,可以限制容器在运行时使用到的资源,比如内存.CPU.块 I/O.网络等. 内存限制概述Docker 提供的 ...
- 设想 Docker 下部署 KVM
设想 Docker 下部署 KVM 一.安装 $ yum -y install kvm # kvm base , must $ yum -y install libvirt -y # libvirtd ...
- maven 编译部署src/main/java下的资源文件
maven 编译部署src/main/java下的资源文件 maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到targ ...
- android访问asset目录下的资源
android提供了AssetManager来访问asset目录下的资源, 在activity中通过getAssets()获取AssetManager 常用的api如下: 1.列举路径下的资源Stri ...
- 安卓获取Assets目录下的资源
获取Assets目录下的资源 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 ! ...
- 在Docker下部署Nginx
在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...
- Android 如何引用com.android.internal.R目录下的资源
Android 如何引用com.android.internal.R目录下的资源 项目需求 有一个资源跟系统上的一个资源相同,想要引用它:frameworks/base/core/res/res/dr ...
- Docker下redis的主从、持久化配置
Docker下redis的主从.持久化配置 redis是k-v型nosql数据库,支持字符串(string).列表(list).集合(set).散列(hash).有序集合(zset:形如member: ...
- java中根据key获取resource下properties资源文件中对应的参数
properties资源文件是放在resource目录下的: 新建工具类: package com.demo.utils; import java.io.InputStream; import jav ...
随机推荐
- VSCode C++开发环境配置:CMake 调试配置 launch.json
相关内容 VSCode C++开发环境配置: LLVM clang clangd 安装 cmake sudo apt install cmake 安装 VSCode 插件 CMake CMakeToo ...
- 【scikit-learn基础】--『监督学习』之 均值聚类
聚类算法属于无监督学习,其中最常见的是均值聚类,scikit-learn中,有两种常用的均值聚类算法:一种是有名的K-means(也就是K-均值)聚类算法,这个算法几乎是学习聚类必会提到的算法:另一个 ...
- 2023-08-26:请用go语言编写。开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A、B、C、D四个球队,且每个村民只会喜欢其中的一支球队, 但是说
2023-08-26:请用go语言编写.开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A.B.C.D四个球队,且每个村民只会喜欢其中的一支球队, 但是说 ...
- 论文分享丨Holistic Evaluation of Language Models
摘要:该文为大模型评估方向的综述论文. 本文分享自华为云社区<[论文分享]<Holistic Evaluation of Language Models>>,作者:DevAI. ...
- 了解库开发,我们从STM32标准库开发学起
摘要:从STM32新建工程.编译下载程序出发,让新手由浅入深,尽享STM32标准库开发的乐趣. 自从CubeMX等图像配置软件的出现,同学们往往点几下鼠标就解决了单片机的配置问题.对于追求开发速度的业 ...
- 十八般武艺玩转GaussDB(DWS)性能调优:Plan hint运用
摘要:本文介绍GaussDB(DWS)另一种可以人工干预计划生成的功能--plan hint. 前言 数据库的使用者在书写SQL语句时,会根据自己已知的情况尽力写出性能很高的SQL语句.但是当需要写大 ...
- 解读Java内存模型中Happens-Before的8个原则
摘要:本文我们就结合案例程序来说明Java内存模型中的Happens-Before原则. 本文分享自华为云社区<[高并发]一文秒懂Happens-Before原则>,作者: 冰 河. 在正 ...
- 华为中国生态大会2021举行在即,GaussDB将重磅发布5大解决方案
摘要:企业数字化转型如火如荼,云成为数字化与新基建的关键要素,数据成为智能时代新的生产资料和企业数字化的生命,而数据库则是支撑数据生命线的底座. 本文分享自华为云社区<华为中国生态大会2021举 ...
- MindSpore:不用摘口罩也知道你是谁
[本期推荐专题]从三大主流前端技术出发,看看它们各自特性,以及如何从业务特性出发,选择合适的框架. 摘要:我们基于MindSpore设计了一种人脸识别算法,以解决口罩遮挡场景下的人脸识别问题.该算法的 ...
- CodeLab:一款让你体验丝滑般的云化JupyterLab
摘要:从AI开发特点着手,华为云AI DTSE技术布道师陈阳在DTT第五期带来主题为<云化JupyterLab:华为云CodeLab介绍>技术分享. DTSE Tech Talk是华为云开 ...