使用cgroup工具对服务器某些/全部用户进行计算资源限制

这篇具有很好参考价值的文章主要介绍了使用cgroup工具对服务器某些/全部用户进行计算资源限制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用cgroup工具对服务器某些/全部用户进行计算资源限制

主要介绍,如何对指定/所有用户进行资源限定(这里主要介绍cpu和内存占用限制),防止某些用户大量占用服务器计算资源,影响和挤占他人正常使用服务器。

  • 安装cgroup管理工具
    sudo apt-get install cgroup-tools
    
  • 使用mount -t cgroup 命令检查验证

使用cgroup工具对服务器某些/全部用户进行计算资源限制,服务器,运维

可以通过编写 /etc/cgconfig.conf/etc/cgrules.conf 文件进行计算资源的配置,其中:

  • /etc/cgconfig.conf 实现具体的配置设置
  • /etc/cgrules.conf 确定每个用户属于哪个配置

cgroup工具,会根据上面的两个文件中的不同资源限制,自动生成一些具体的配置文件,放在/sys/fs/cgroup/下的对应文件夹下,有点类似CMakeLists.txt

使用group限制单用户/多用户计算资源

使用 group字段,创建资源限制组,进行组内成员的资源控制限制

  1. /etc/cgconfig.conf添加如下配置,将会对组users_mem_limit 内的用户所能申请的最大内存进行限制。

    # `group`是特殊字段,`users_mem_limit`是组的名称
    group users_mem_limit{
            memory{
                    memory.limit_in_bytes = 15G;
                    memory.memsw.limit_in_bytes = 16G;
            }
    }
    

    其中:

    • memory.limit_in_bytes 只限制实际的物理内存使用,不包括交换空间

    • memory.memsw.limit_in_bytes 限制实际物理内存和交换空间的总使用

    • 一般来说,两个参数需要使用字节(bytes)为单位,但是也可以直接使用这里的G

  2. /etc/cgrules.conf添加如下配置,实现将某个/某些用户添加到该组。

    #用户名			   #限制类型        #所属组
    user01               memory          users_mem_limit/
    user02               memory          users_mem_limit/
    
  3. 设置限制服务开机启动

    #开机启动
    systemctl enable cgconfig
    systemctl enable cgred
    #重启服务
    systemctl restart cgconfig
    systemctl restart cgred
    

注意点:

  • 这种情况下,该组内的用户将会共用受限的15G内存,而不是每个人最大15G,例如上面的例子中,user01user02将共用15G内存;

  • 如果程序申请不到内存,自己会停下来并报错。如果仅限制物理内存的容量,不限制swap的容量,那么进程不会被杀死。可以保持运行。

使用template限制多个用户的内存和CPU占用

刚才使用group 也可以实现多用户的限制,但是被限制的用户将会共用受限资源,如何实现对每个用户的计算资源进行同等配置,同时限制所有用户对共用服务器CPU和内存资源的过度使用? 这里使用template 实现。

template 本质上只是一个模板,本质上是会对所有用户都单独生成一个组?。

  1. /etc/cgconfig.conf添加如下配置,使用template,设置了memory 不能超过60GB,最多100%占用36个CPU核心。

    template users/%u {
            memory {
                    memory.limit_in_bytes = 60G;
                    memory.memsw.limit_in_bytes = 61G;
            }
            cpu {
                    cpu.cfs_quota_us = 3600000;
                    cpu.cfs_period_us = 100000;
            }
    }
    

    其中cpu的限制逻辑是:

    • cpu.cfs_period_us 周期内,只能使用最多cpu.cfs_quota_us 的cpu资源。

    • 默认情况下,cpu.cfs_period_us的单位为微秒,默认值为100000cpu.cfs_quota_us的值为-1,即不做限制。

    • 例子中,利用两个参数的比值cpu.cfs_quota_us/cpu.cfs_period_us=3600% ,实现最多100%占用36个CPU核心。

  2. /etc/cgrules.conf添加如下配置,对所有用户的cpu和内存进行控制。

    #所有用户		 限制类型	           模板
    *               cpu,memory          users/%u
    
  3. 设置服务

    #开机启动
    systemctl enable cgconfig
    systemctl enable cgred
    #重启服务
    systemctl restart cgconfig
    systemctl restart cgred
    

一些注意点

/sys/fs/cgroup下,有不同的文件夹,这些文件分别包含了不同的资源配置文件。

cgroup根据 /etc/cgconfig.conf配置文件,自动生成一些具体的文件,然后在在/sys/fs/cgroup的不同文件夹下生成对应的配置,例如:

  1. 刚才使用的group配置中生成的cgroup文件在/sys/fs/cgroup/memory/users_mem_limit目录下。

  2. 刚才使用的template 将会自动生成以下数据

    • /sys/fs/cgroup/memory/users/user01
    • /sys/fs/cgroup/memory/users/user02
    • /sys/fs/cgroup/cpu/users/user01
    • /sys/fs/cgroup/cpu/users/user02
  3. 可以使用如下指令删除某个用户的配置,当他重新登录时,就会自动取消文章来源地址https://www.toymoban.com/news/detail-682498.html

    cgdelete cpu:/users/user01
    cgdelete memory:/users/user01
    

参考

  1. 使用 nice、cpulimit 和 cgroups 限制 cpu 占用率
  2. 如何对占据服务器大量cpu资源的用户进行限制
  3. Linux系统使用cgroup限制用户进程过度使用内存
  4. 精准限制CPU:Cgroups

到了这里,关于使用cgroup工具对服务器某些/全部用户进行计算资源限制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用ipmitool配置X86服务器的BMC网络和用户信息

    当不知道服务器的BMC(Baseboard Management Controller)的管理IP和用户信息时,可以在服务器安装的系统上安装ipmitool工具,然后通过带内的方式来直接配置BMC的网络和IP等信息,省去重启机器去寻找BMC配置界面进行设置的步骤。 以下示例是通过带内方式来配置,如果要通过带外的

    2024年02月12日
    浏览(13)
  • windows系统旧服务器RAID5硬盘全部更换扩容实例

    windows系统旧服务器RAID5硬盘全部更换扩容实例

    目录 一、场景 二、要解决的问题 三、问题分析和解决思路 四、具体操作(重新配置磁盘阵列)  各菜单项解释说明 一、场景         因业务需求,要架设1台服务器,而为了节约成本,利旧约10年前的1台旧服务器。 二、要解决的问题         将旧的3块160G容量RAID5硬

    2024年02月09日
    浏览(11)
  • 使用服务器的妙妙工具

    使用服务器的妙妙工具

    一台电脑的性能终究是有限的,所以当计算量太大时,我们可以借助服务器,它的运算速度快,存储空间大。 和个人电脑不同,服务器通常由一个管理员进行管理,而有多用户同时使用。当需要使用服务器时,我们首先需要向管理员申请一个账号,获得 用户名和密码 。 这时

    2024年02月09日
    浏览(7)
  • 解决不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接的问题

    解决不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接的问题

    用windows server 2012 r2 vl x64搭了个文件服务器,在使用时有个问题,老是用户登录有问题,提示“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接”。出现的原因不详,网上也没查到合理的解释。 解决方法: 1、重新启动Workstation服务 2、用命令删除当前

    2024年02月13日
    浏览(11)
  • 使用cobbler 安装工具批量安装服务器

    使用cobbler 安装工具批量安装服务器

    Cobbler官网 =================================================================== http://cobbler.github.io/ cobbler集成的服务 ====================================================================== PXE服务支持 DHCP服务管理 DNS服务管理(可选bind,dnsmasq) 电源管理 Kickstart服务支持 YUM仓库管理 TFTP(PXE启动时需要) Apache(提供

    2024年04月28日
    浏览(12)
  • 【Samba】win 11 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接

    【Samba】win 11 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接

    之前使用两个用户登录过,没有释放 1、打开cmd命令窗口: net use * /del /y 命令中断开所有连接. 2、重新登录 删除后重启

    2024年02月04日
    浏览(14)
  • 原来服务器这么有用-使用轻量应用服务器搭建一个自己的工具站it-tools

    原来服务器这么有用-使用轻量应用服务器搭建一个自己的工具站it-tools

    ​ IT-Tools是一款开源的个人工具箱,专为IT从业人员打造,支持Docker私有化部署,包含众多实用的IT工具。其功能丰富多样,涵盖二维码生成、数据格式转换、MAC地址生成等,可满足用户多样化的需求。 GitHub地址:CorentinTh/it-tools Docker Hub地址:corentinth/it-tools - Docker Image | Doc

    2024年02月22日
    浏览(14)
  • ubuntu上使用 SSH 工具连接到远程服务器

    以下内容由ChatGPT生成,仅供学习参考 在 Ubuntu 中,可以使用终端应用程序(也称为“终端”或“命令行”)来连接到远程服务器。以下是如何使用 SSH 工具连接到远程服务器的步骤: 打开终端应用程序。你可以通过按下 Ctrl + Alt + T 键来快速打开终端应用程序,或者在 Ubuntu

    2024年02月15日
    浏览(14)
  • 服务器能效测试工具BenchSEE使用方法简介

    服务器能效测试工具BenchSEE使用方法简介

    BenchSEE是由中国标准化研究院开发的一款针对 服务器产品能效 测试的基准软件。BenchSEE基准的设计参考了全球众多服务器厂家、芯片厂家、能效认证机构和IT节能领域科研机构的意见,旨在满足服务器市场应用对能效测评的需求。BenchSEE基准负载工具支持的服务器类型包括:机

    2024年03月16日
    浏览(222)
  • 保姆级阿里云ESC服务器安装nodejs和服务器node服务管理工具PM2安装使用

    保姆级阿里云ESC服务器安装nodejs和服务器node服务管理工具PM2安装使用

    默认 /opt 下边 /opt/node 也可建到其他地方,如/usr/local/node 等 创建后切换到文件夹下 cd /opt/node 使用命令下载node wget https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz 或者到node官网下载tar包到本地然后上传到node所在位置 上传 scp命令为 scp node-v18.12.0-linux-x64.tar.xz root@0.0.0.0:/opt/

    2024年02月08日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包