前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过lxcfs限制docker使用的内存和CPU的实验

通过lxcfs限制docker使用的内存和CPU的实验

原创
作者头像
保持热爱奔赴山海
修改2021-02-16 11:23:11
2.5K0
修改2021-02-16 11:23:11
举报
文章被收录于专栏:DevOps数据库相关

项目地址: https://github.com/lxc/lxcfs

lxcfs安装方法

代码语言:javascript
复制
yum install fuse fuse-lib fuse-devel libtool
git clone git://github.com/lxc/lxcfs
cd lxcfs
./bootstrap.sh
./configure
make
make install

安装完成后,我们可以在前台启动测试下:

代码语言:javascript
复制
mkdir -p /var/lib/lxcfs  # 先创建下目录
lxcfs /var/lib/lxcfs     # 即可在前台启动

没问题后,建议使用systemd去控制运行。 具体启动脚本如下:

lxcfs自启动脚本

代码语言:javascript
复制
cat /lib/systemd/system/lxcfs.service
Unit
Description=FUSE filesystem for LXC
ConditionVirtualization=!container
Before=lxc.service
Documentation=man:lxcfs(1)
Service
ExecStart=/usr/local/bin/lxcfs /var/lib/lxcfs/
KillMode=process
Restart=on-failure
ExecStopPost=/usr/bin/fusermount -u /var/lib/lxcfs
Delegate=yes
Install
WantedBy=multi-user.target

配置自启动

代码语言:javascript
复制
chmod +x lxcfs.service
systemctl enable lxcfs.service
systemctl start lxcfs.service

先来一个不限制的demo

代码语言:javascript
复制
docker run --rm --name unlimited-pod -ti --memory 256m --memory-swappiness 0 ubuntu:18.04 /bin/bash

可以看到没有限制的情况下,看到的是整个宿主机
可以看到没有限制的情况下,看到的是整个宿主机

限制CPU最多使用2个核心,内存最多使用256MB,禁止使用swap

代码语言:javascript
复制
docker run --rm --name limited-pod -ti --memory 256m --memory-swappiness 0 --cpus=2 \
      -v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw \
      -v /var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw \
      -v /var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw \
      -v /var/lib/lxcfs/proc/stat:/proc/stat:rw \
      -v /var/lib/lxcfs/proc/swaps:/proc/swaps:rw \
      -v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw \
      ubuntu:18.04 /bin/bash
      
# 或者用下面的这种写法:
docker run --rm --name limited-pod -ti --memory 256m --memory-swappiness 0 --cpu-period=100000 --cpu-quota=200000 \
      -v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw \
      -v /var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw \
      -v /var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw \
      -v /var/lib/lxcfs/proc/stat:/proc/stat:rw \
      -v /var/lib/lxcfs/proc/swaps:/proc/swaps:rw \
      -v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw \
      ubuntu:18.04 /bin/bash

内存被限制在256MB并关闭swap
内存被限制在256MB并关闭swap

另外,在K8s的pod中,默认也是存在这种问题的。解决方案也是通过 lxcfs这种方式的。具体可以搜索网上相关文章。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • lxcfs安装方法
  • lxcfs自启动脚本
  • 配置自启动
  • 先来一个不限制的demo
  • 限制CPU最多使用2个核心,内存最多使用256MB,禁止使用swap
  • 另外,在K8s的pod中,默认也是存在这种问题的。解决方案也是通过 lxcfs这种方式的。具体可以搜索网上相关文章。
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档