容器docker的ulimit

Ulimit

在linux里ulimit命令可以对shell生成的进程的资源进行限制。

常用的ulimit限制

  • 打开文件句柄数
  • core文件大小
  • 设置进程能够消耗的虚拟内存
  • 设置用户能够打开的进程数目

不太常用的ulimit限制

设置数据段的最大值.单位:kbytes
设置创建文件的最大值.单位:blocks
设置在内存中锁定进程的最大值.单位:kbytes
设置可以使用的常驻内存的最大值.单位:kbytes
设置内核可以同时打开的文件描述符的最大值.单位:n
设置管道缓冲区的最大值.单位:kbytes
设置堆栈的最大值.单位:kbytes
设置CPU使用时间的最大上限.单位:seconds

ulimit设置限制的两条水线

ulimit设置限制的时候会设置两条线soft和hard线,当资源到达了soft线那么只是告警,如果达到了hard线那么内核就强制限制了。

在docker里使用ulimit限制

从上面小节中可以看到linux系统可以通过配置ulimit对很多资源进行限制。在docker内部如何使用ulimt这个工具便利性呢。

在dockerd中为所有容器配置默认的ulimit

  • 在/etc/docker/daemon.json里通过

“ulimit”:ulimit-resource=M:N 对所有容器默认某个资源进行限制。

表2-1

上表中M为soft水线,N为hard水线。如果“=”右边只有一个那么同时设置soft水线=hard水线

  • 在dockerd启动参数中设置
    这种方式是指通过修改docker.service文件或者直接命令行启动dockerd的方式

--default-ulimit unlimit-resources=M:N

表2-2

表2-2中的M和N和表2-1中的同义

在docker run时为某个容器设置ulimit

除了在dockerd里设置容器的默认ulimit值,还可以为某个容器指定一个的ulimit值。这借助在docker run时带参数

--ulimit ulimit-resources=M:N

表2-3
表2-3中的M和N和表2-1中同意义

docker中能够设置的ulimit参数

常用的docker ulimit设置项

参数意义例子
nofileshell进程打开文件数目docker run --ulimit nofile=20
core进程生成core文件的尺寸docker run --ulimit core =-1 //开启进程core
nprocshell能打开的进程多少Na
fsize进程写文件的最大尺寸na

其他docker ulimit设置项

参数意义例子
cpuulimit cpu 限制进程能够使用的cpu资源,单位为s。当达到soft线后触发SIGXCPU,默认为杀死进程(可以忽略此信号)。达到hard线后,发送SIGKILLna
dataulimit datana
locksulimit locksna
memlockulimit memlockna
msgqueueulimit msgqueuena
Niceulimit nicena
rssulimit rssna
rtprioulimit rtpriona
rttimeUlimit rttimena
Sigpendingulimit sigpendingna
stackulimit stackna

Docker里如何实现ulimit的传递

ulimit参数定义和解析

docker里对ulimit参数的定义在go-unit/ulimit.go里,这里定义了docker可以传递的ulimit参数。

  • 参数解析是通过
    opts/ulimit.Set()设置内部结构
    opts/ulimit.GetList()取用
  • 参数解析过程
    NewRunCommand()/NewCreateCommand() --->opts.AddFlags()—->pflag.FlagSet.Var()解析命令行传递过来的ulimit参数,FlagSet最终调用opts/ulimit.Set()将命令行传递的参数转换为内部格式。
    Container.runCreate()—>runconfigopts.Parse==opts.Parse()将内部格式转换为container.HostConfig格式。而这个HostConfig格式最终变成一个runc的spec(config.json)里的hostconfig字段rlimit。
    而runc解析configxx.json,完成ulimit配置。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity3d————协程原理讲解

1.协程的本质 协程可以分成两部分1.协程函数本体 2.协程调度器 协程本体就是一个能够中间暂停返回的函数 协程调度器是Unity内部实现的,会在对应的时机帮助我们继续执行协程函数 Unity只实现了协程调度部分协程的本体本质上就是一个 C#的迭代器方法 2.协程本体是…

丹摩征文活动|CogVideoX-2b:从0到1,轻松完成安装与部署!

丹摩征文活动 | CogVideoX-2b:从0到1,轻松完成安装与部署! CogVideoX 介绍 CogVideoX的问世,标志着视频制作技术迈入了一个全新的时代。它不仅打破了传统视频制作在效率与质量之间的平衡难题,还通过其先进的3D变分自…

知识库搭建|员工培训的效率利器

在企业的快速发展过程中,知识库的搭建成为了提升员工培训效率的关键一环。一个高效的知识库不仅能够为员工提供便捷的学习资源,还能促进知识的持续积累和传承。本文将探讨如何借助知识库工具,来提升员工培训的效率。 一、知识库在员工培训中…

OneRestore: A Universal Restoration Framework for Composite Degradation 论文阅读笔记

这是武汉大学一作单位的一篇发表在ECCV2024上的论文,文章代码开源,文章首页图如下所示,做混合图像干扰去除,还能分别去除,看起来很牛逼。文章是少见的做混合图像干扰去除的,不过可惜只包含了3种degradation…

2024最新版JavaScript逆向爬虫教程-------基础篇之Proxy与Reflect详解

目录 一、监听对象的操作二、Proxy基本使用2.1 创建空代理2.2 定义捕获器2.2.1 Proxy的set和get捕获器2.2.2 Proxy(handler)的13个捕获器 三、Reflect的作用3.1 Reflect的使用3.2 Reflect其余方法(9个)3.3 Proxy与Reflect中的receiver参数3.4 Reflect中的construct方法 ECMAScr…

文献解读-DNAscope: High accuracy small variant calling using machine learning

关键词:基准与方法研究;基因测序;变异检测; 文献简介 标题(英文):DNAscope: High accuracy small variant calling using machine learning标题(中文):DNAsc…

自动驾驶3D目标检测综述(一)

文章地址:[2206.09474] 3D Object Detection for Autonomous Driving: A Comprehensive Survey (arxiv.org) 这篇综述简单易懂,非常合适对自动驾驶和3D目标检测感兴趣的小白阅读,对相关算法进行初步理解。 目录 一、摘要 (一&a…

微软域名邮箱:如何设置管理烽火域名邮箱?

微软域名邮箱的设置技巧?免费域名邮箱注册设置教程? 微软域名邮箱为企业提供了一个强大且灵活的解决方案,帮助企业轻松管理其域名邮箱。烽火将详细介绍如何设置和管理微软域名邮箱,确保您的团队能够高效地使用这一工具。 微软域…

DirectShow过滤器开发-写AVI视频文件过滤器

下载本过滤器DLL 本过滤器将视频流和音频流写入AVI视频文件。 过滤器信息 过滤器名称:写AVI 过滤器GUID:{2EF49957-37DF-4356-A2A0-ECBC52D1984B} DLL注册函数名:DllRegisterServer 删除注册函数名:DllUnregisterServer 过滤器有…

新版 idea 编写 idea 插件时,启动出现 ClassNotFound

IntelliJ IDEA 2024.1.6 (Ultimate Edition) Build #IU-241.19072.14, built on August 8, 2024 Licensed to Sophia Tout Subscription is active until June 29, 2025. For educational use only. Runtime version: 17.0.111-b1207.30 amd64 Kotlin: 241.19072.14-IJ 新版本…

vue2.x elementui 固定顶部、左侧菜单与面包屑,自适应 iframe 页面布局

vue elementui 固定顶部、左侧菜单与面包屑,自适应 iframe 页面布局 疑问点:iframe无法高度100%,如果写了100%就会有滚动条,所以只写了99.5% 【效果图】 路由示例 const routes [{title: Index,path: /,name: "Index"…

godot——主题、Theme、StyleBox

我刚开始被这些术语吓到了,一直不敢去接触它们,都用的默认样式。现在好不容易有点思路了,记录下来。 下面看看怎么自定义样式。 1.先新建一个Theme 2.再次点击创建好的Theme 得到 图1 这样一个面板。(看不懂没事,继…

web——sqliabs靶场——第二关

今天来搞第二关,来看看是什么咸蛋 1.判断是否存在sql注入漏洞 输入1 存在sql注入,报错语句为 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near LIMIT 0,1 …

基于Matlab 火焰识别技术

课题介绍 森林承担着为人类提供氧气以及回收二氧化碳等废弃气体的作用,森林保护显得尤其重要。但是每年由于火灾引起的事故不计其数,造成重大的损失。如果有一款监测软件,从硬件处获得的图像中监测是否有火焰,从而报警&#xff0…

【动手学电机驱动】STM32-FOC(5)基于 IHM03 的无感 FOC 控制

STM32-FOC(1)STM32 电机控制的软件开发环境 STM32-FOC(2)STM32 导入和创建项目 STM32-FOC(3)STM32 三路互补 PWM 输出 STM32-FOC(4)IHM03 电机控制套件介绍 STM32-FOC(5&…

深入理解接口测试:实用指南与最佳实践5.0(一)

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

战略共赢 软硬兼备|云途半导体与知从科技达成战略合作

2024年11月5日,江苏云途半导体有限公司(以下简称“云途”或“云途半导体”)与上海知从科技有限公司(以下简称“知从科技”)达成战略合作,共同推动智能汽车领域高端汽车电子应用的开发。 云途半导体与知从科…

计算机毕业设计Hadoop+Spark高考推荐系统 高考分数线预测 知识图谱 高考数据分析可视化 高考大数据 大数据毕业设计 Hadoop 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

【实用技能】ASP.NET Core:在同一个 Razor 视图中使用文档编辑器和查看器

Essential Studio for ASP.NET Core UI控件库是构建应用程序所需的卓越套件,提供支持的 ASP.NET Core 工具包拥有超过 85 个组件,包含构建业务线应用程序所需的一切,包括数据网格、图表、甘特图、图表、电子表格、时间表、数据透视网格等流行…

Mapwindow5代码BUG记录1

Mapwindow5代码BUG记录 一、查询功能多次点击后窗体错误1、正常情况2、BUG界面位置3、BUG表现4、BUG代码位置5、BUG代码修改6、BUG影响版本 一、查询功能多次点击后窗体错误 1、正常情况 2、BUG界面位置 表编辑器——》工具——》查找 Table editor——》Tools——》Find …