当前位置: 首页 > news >正文

2016企业网站建设合同wordpress双语安装

2016企业网站建设合同,wordpress双语安装,个人备案网站服务内容,下列( )是计算机网页制作工具Docker Cgroups——Docker 资源限制背后的技术原理虽然在容器内部进程只能看到“掩饰”过的视图#xff0c;但是在宿主机上#xff0c;它就是一个普通的进程#xff0c;与其他所有进程之间是平等竞争的关系。这就意味着虽然表面上被隔离了#xff0c;但它实际上在与其他进程… Docker Cgroups——Docker 资源限制背后的技术原理虽然在容器内部进程只能看到“掩饰”过的视图但是在宿主机上它就是一个普通的进程与其他所有进程之间是平等竞争的关系。这就意味着虽然表面上被隔离了但它实际上在与其他进程共享资源。 Cgroups控制组 是 Linux 内核的另一个特性全称叫 Linux Control Group用来限制一个进程组能够使用的资源上限包括 CPU、内存、磁盘、网络带宽等资源。Cgroups 还可以对进程进行优先级设置、审计。 在 Linux 中Cgroups 以文件和目录的方式组织在 /sys/fs/cgroup 路径下。 $ ll /sys/fs/cgroup/ total 0 drwxr-xr-x 15 root root 380 May 3 14:50 ./ drwxr-xr-x 9 root root 0 May 3 20:29 ../ dr-xr-xr-x 5 root root 0 May 3 14:50 blkio/ lrwxrwxrwx 1 root root 11 May 3 14:50 cpu - cpu,cpuacct/ dr-xr-xr-x 5 root root 0 May 3 14:50 cpu,cpuacct/ lrwxrwxrwx 1 root root 11 May 3 14:50 cpuacct - cpu,cpuacct/ dr-xr-xr-x 3 root root 0 May 3 14:50 cpuset/ dr-xr-xr-x 5 root root 0 May 3 14:50 devices/ dr-xr-xr-x 3 root root 0 May 3 14:50 freezer/ dr-xr-xr-x 3 root root 0 May 3 14:50 hugetlb/ dr-xr-xr-x 5 root root 0 May 3 14:50 memory/ lrwxrwxrwx 1 root root 16 May 3 14:50 net_cls - net_cls,net_prio/ dr-xr-xr-x 3 root root 0 May 3 14:50 net_cls,net_prio/ lrwxrwxrwx 1 root root 16 May 3 14:50 net_prio - net_cls,net_prio/ dr-xr-xr-x 3 root root 0 May 3 14:50 perf_event/ dr-xr-xr-x 5 root root 0 May 3 14:50 pids/ dr-xr-xr-x 2 root root 0 May 3 14:50 rdma/ dr-xr-xr-x 6 root root 0 May 3 14:50 systemd/ dr-xr-xr-x 5 root root 0 May 3 14:50 unified/这个路径下的子目录都是这台机器可以被 Cgroups 限制的资源种类也叫子系统。 $ ll /sys/fs/cgroup/cpu,cpuacct/ total 0 dr-xr-xr-x 5 root root 0 May 3 20:30 ./ drwxr-xr-x 15 root root 380 May 3 14:50 ../ -rw-r--r-- 1 root root 0 May 3 20:38 cgroup.clone_children -rw-r--r-- 1 root root 0 May 3 20:38 cgroup.procs -r--r--r-- 1 root root 0 May 3 20:38 cgroup.sane_behavior -rw-r--r-- 1 root root 0 May 3 15:04 cpu.cfs_period_us -rw-r--r-- 1 root root 0 May 3 15:04 cpu.cfs_quota_us -rw-r--r-- 1 root root 0 May 3 15:04 cpu.shares -r--r--r-- 1 root root 0 May 3 20:38 cpu.stat -r--r--r-- 1 root root 0 May 3 20:38 cpuacct.stat -rw-r--r-- 1 root root 0 May 3 20:38 cpuacct.usage -r--r--r-- 1 root root 0 May 3 20:38 cpuacct.usage_all -r--r--r-- 1 root root 0 May 3 20:38 cpuacct.usage_percpu -r--r--r-- 1 root root 0 May 3 20:38 cpuacct.usage_percpu_sys -r--r--r-- 1 root root 0 May 3 20:38 cpuacct.usage_percpu_user -r--r--r-- 1 root root 0 May 3 20:38 cpuacct.usage_sys -r--r--r-- 1 root root 0 May 3 20:38 cpuacct.usage_user drwxr-xr-x 2 root root 0 May 3 15:04 docker/ -rw-r--r-- 1 root root 0 May 3 20:38 notify_on_release -rw-r--r-- 1 root root 0 May 3 20:38 release_agent drwxr-xr-x 88 root root 0 May 3 15:03 system.slice/ -rw-r--r-- 1 root root 0 May 3 20:38 tasks drwxr-xr-x 4 root root 0 May 3 20:38 user.slice/大多数都是文件里面保存着一些配置参数。 $ cat /sys/fs/cgroup/cpu,cpuacct/cpu.cfs_period_us 100000 $ cat /sys/fs/cgroup/cpu,cpuacct/cpu.cfs_quota_us -1我们首先来构建一个跑 Python 死循环脚本的容器镜像 Dockerfile 如下 FROM python:3.6.8-alpine3.9 RUN echo -e while True:\n pass app.py CMD [python3, app.py]这个脚本为了吃满 CPU。 接下来直接构建一个 Docker 镜像 $ docker build -t cgroups_test:latest . Sending build context to Docker daemon 2.048kB Step 1/3 : FROM python:3.6.8-alpine3.9 3.6.8-alpine3.9: Pulling from library/python bdf0201b3a05: Pull complete 59c926705abf: Pull complete dd4853571cc7: Pull complete 3a45eb710779: Pull complete f4700a9d59e5: Pull complete Digest: sha256:54b604a4f1937b370d2daf2344594dbd76305048b705ca786cd467125f36759d Status: Downloaded newer image for python:3.6.8-alpine3.9--- ed8897654bd1 Step 2/3 : RUN echo -e while True:\n pass app.py--- Running in fbd12ca97a57 Removing intermediate container fbd12ca97a57--- d1e64aa6624f Step 3/3 : CMD [python3, app.py]--- Running in b5834c5ef957 Removing intermediate container b5834c5ef957--- a76fa98dd418 Successfully built a76fa98dd418 Successfully tagged cgroups_test:latest docker images REPOSITORY TAG IMAGE ID CREATED SIZE cgroups_test latest a76fa98dd418 3 minutes ago 79.1MB python 3.6.8-alpine3.9 ed8897654bd1 8 days ago 79.1MB直接启动容器 $ docker run -d cgroups_test $ top top - 22:20:15 up 5:35, 2 users, load average: 0.72, 0.24, 0.09 Tasks: 172 total, 2 running, 132 sleeping, 0 stopped, 0 zombie %Cpu(s): 50.2 us, 0.3 sy, 0.0 ni, 49.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 4034008 total, 2943452 free, 439008 used, 651548 buff/cache KiB Swap: 2097148 total, 2095100 free, 2048 used. 3355620 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 29223 root 20 0 7916 7184 2876 R 99.7 0.2 1:12.09 python3python3容器进程 对 CPU 的占用率已经接近百分百了。。。 docker ps看一下容器的 ID $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9226c3249105 cgroups_test python3 app.py 8 minutes ago Up 3 minutes reverent_euclid $ docker inspect --format{{.Id}} reverent_euclid 9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2得到完整的 container ID9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2 然后查看 /sys/fs/cgroup/cpu,cpuacct/docker/ 路径 ll /sys/fs/cgroup/cpu,cpuacct/docker/ total 0 drwxr-xr-x 3 root root 0 May 3 22:24 ./ dr-xr-xr-x 5 root root 0 May 3 20:30 ../ drwxr-xr-x 2 root root 0 May 3 22:24 9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2/ -rw-r--r-- 1 root root 0 May 3 22:25 cgroup.clone_children -rw-r--r-- 1 root root 0 May 3 22:25 cgroup.procs -rw-r--r-- 1 root root 0 May 3 22:25 cpu.cfs_period_us -rw-r--r-- 1 root root 0 May 3 22:25 cpu.cfs_quota_us -rw-r--r-- 1 root root 0 May 3 22:25 cpu.shares -r--r--r-- 1 root root 0 May 3 22:25 cpu.stat -r--r--r-- 1 root root 0 May 3 22:25 cpuacct.stat -rw-r--r-- 1 root root 0 May 3 22:25 cpuacct.usage -r--r--r-- 1 root root 0 May 3 22:25 cpuacct.usage_all -r--r--r-- 1 root root 0 May 3 22:25 cpuacct.usage_percpu -r--r--r-- 1 root root 0 May 3 22:25 cpuacct.usage_percpu_sys -r--r--r-- 1 root root 0 May 3 22:25 cpuacct.usage_percpu_user -r--r--r-- 1 root root 0 May 3 22:25 cpuacct.usage_sys -r--r--r-- 1 root root 0 May 3 22:25 cpuacct.usage_user -rw-r--r-- 1 root root 0 May 3 22:25 notify_on_release -rw-r--r-- 1 root root 0 May 3 22:25 tasks看到 docker 路径下多了一个 9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2 子目录就是正在运行的容器的 ID。 $ ll /sys/fs/cgroup/cpu,cpuacct/docker/9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2/ total 0 drwxr-xr-x 2 root root 0 May 3 22:27 ./ drwxr-xr-x 3 root root 0 May 3 22:24 ../ -rw-r--r-- 1 root root 0 May 3 22:27 cgroup.clone_children -rw-r--r-- 1 root root 0 May 3 22:24 cgroup.procs -rw-r--r-- 1 root root 0 May 3 22:27 cpu.cfs_period_us -rw-r--r-- 1 root root 0 May 3 22:27 cpu.cfs_quota_us -rw-r--r-- 1 root root 0 May 3 22:27 cpu.shares -r--r--r-- 1 root root 0 May 3 22:27 cpu.stat -r--r--r-- 1 root root 0 May 3 22:27 cpuacct.stat -rw-r--r-- 1 root root 0 May 3 22:27 cpuacct.usage -r--r--r-- 1 root root 0 May 3 22:27 cpuacct.usage_all -r--r--r-- 1 root root 0 May 3 22:27 cpuacct.usage_percpu -r--r--r-- 1 root root 0 May 3 22:27 cpuacct.usage_percpu_sys -r--r--r-- 1 root root 0 May 3 22:27 cpuacct.usage_percpu_user -r--r--r-- 1 root root 0 May 3 22:27 cpuacct.usage_sys -r--r--r-- 1 root root 0 May 3 22:27 cpuacct.usage_user -rw-r--r-- 1 root root 0 May 3 22:27 notify_on_release -rw-r--r-- 1 root root 0 May 3 22:27 tasks这里都是9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2 控制组 CPU 资源的配置。 $ cat /sys/fs/cgroup/cpu,cpuacct/docker/9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2/cpu.cfs_period_us 100000 $ cat /sys/fs/cgroup/cpu,cpuacct/docker/9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2/cpu.cfs_quota_us -1可以看到 9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2 控制组 CPU 周期是默认的 100ms而 CPU 配额没有任何限制所以 python3 进程直接就吃满了整个 CPU。 接下来我们这样修改文件内容 $ echo 20000 /sys/fs/cgroup/cpu,cpuacct/docker/9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2/cpu.cfs_quota_us代表在每 100ms 的时间里被 9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2 控制组限制的进程只能使用 20ms 的 CPU 时间也就是这个进程最多只能使用 20% 的 CPU 带宽。 我们来看一下 tasks 文件 cat /sys/fs/cgroup/cpu,cpuacct/docker/9226c3249105f42d04b433baa134af9bb10891de2df72fe2edfc6f2bb0a41fb2/tasks 29223如果对数字敏感的话马上就可以发现这个数字就是容器进程 python3 的 PID 现在我们 top 看一下进程对 CPU 资源的占用 $ top top - 22:58:05 up 6:13, 2 users, load average: 0.41, 0.84, 0.90 Tasks: 173 total, 2 running, 132 sleeping, 0 stopped, 0 zombie %Cpu(s): 10.6 us, 0.3 sy, 0.0 ni, 89.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 4034008 total, 2968868 free, 412624 used, 652516 buff/cache KiB Swap: 2097148 total, 2095100 free, 2048 used. 3381924 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND29223 root 20 0 6180 5528 2816 R 20.3 0.1 9:33.65 python3python3 进程的 CPU 使用率已经降到了 20% 左右 下面停掉这个容器重新创建一个限制 CPU 使用的容器 $ docker container stop 9226c3249105 9226c3249105 $ docker run --cpu-period100000 --cpu-quota20000 -d cgroups_test 5218de26ad09db66a92b5c6f8880e99e48012d3cb2148eeff0ce481775b27f02 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5218de26ad09 cgroups_test python3 app.py 1 second ago Up 1 second flamboyant_taussig $ top top - 23:04:04 up 6:19, 2 users, load average: 0.11, 0.37, 0.67 Tasks: 177 total, 2 running, 135 sleeping, 0 stopped, 0 zombie %Cpu(s): 10.5 us, 0.3 sy, 0.0 ni, 89.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 4034008 total, 2959716 free, 420932 used, 653360 buff/cache KiB Swap: 2097148 total, 2095100 free, 2048 used. 3373504 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND3162 root 20 0 7916 7168 2868 R 19.6 0.2 0:13.86 python3PID 为3162的 python3 进程在启动后的 CPU 占用率就在20%左右。 接下来确认容器对应控制组中的参数配置 $ ll /sys/fs/cgroup/cpu,cpuacct/docker/5218de26ad09db66a92b5c6f8880e99e48012d3cb2148eeff0ce481775b27f02/ total 0 drwxr-xr-x 2 root root 0 May 3 23:06 ./ drwxr-xr-x 3 root root 0 May 3 23:02 ../ -rw-r--r-- 1 root root 0 May 3 23:06 cgroup.clone_children -rw-r--r-- 1 root root 0 May 3 23:02 cgroup.procs -rw-r--r-- 1 root root 0 May 3 23:02 cpu.cfs_period_us -rw-r--r-- 1 root root 0 May 3 23:02 cpu.cfs_quota_us -rw-r--r-- 1 root root 0 May 3 23:06 cpu.shares -r--r--r-- 1 root root 0 May 3 23:06 cpu.stat -r--r--r-- 1 root root 0 May 3 23:06 cpuacct.stat -rw-r--r-- 1 root root 0 May 3 23:06 cpuacct.usage -r--r--r-- 1 root root 0 May 3 23:06 cpuacct.usage_all -r--r--r-- 1 root root 0 May 3 23:06 cpuacct.usage_percpu -r--r--r-- 1 root root 0 May 3 23:06 cpuacct.usage_percpu_sys -r--r--r-- 1 root root 0 May 3 23:06 cpuacct.usage_percpu_user -r--r--r-- 1 root root 0 May 3 23:06 cpuacct.usage_sys -r--r--r-- 1 root root 0 May 3 23:06 cpuacct.usage_user -rw-r--r-- 1 root root 0 May 3 23:06 notify_on_release -rw-r--r-- 1 root root 0 May 3 23:06 tasks $ cat /sys/fs/cgroup/cpu,cpuacct/docker/5218de26ad09db66a92b5c6f8880e99e48012d3cb2148eeff0ce481775b27f02/cpu.cfs_period_us 100000 $ cat /sys/fs/cgroup/cpu,cpuacct/docker/5218de26ad09db66a92b5c6f8880e99e48012d3cb2148eeff0ce481775b27f02/cpu.cfs_quota_us 20000 $ cat /sys/fs/cgroup/cpu,cpuacct/docker/5218de26ad09db66a92b5c6f8880e99e48012d3cb2148eeff0ce481775b27f02/tasks 3162Docker 在启动容器的时候就把 cpu-period 和 cpu-quota 参数写到了对应的控制组中。 总结一下Linux Cgroups 就是一个子系统目录加上一组资源配置文件的组合。Docker 在启动容器时在每个子系统下为容器创建一个控制组目录名为 container ID修改相应的配置参数把容器进程的 PID 填到 tasks 文件中就完事了。 容器的本质只是一个加了限定参数的进程。 但是 Linux Cgroups 对资源的限制最大的问题还是限制不彻底Linux 下的 /proc 路径下存储着当前内核运行状态的一系列特殊文件用户可以通过访问这些文件来查看系统信息它们也是 top 查看 CPU 占用的数据来源。但在容器里执行 top显示的信息居然是宿主机的数据。。。 这就要避免容器挂载宿主机的 /proc/stats 目录。lxcfs是一种不错的纠正方案。容器中进程读取相应文件内容时LXCFS 的 FUSE 文件系统实现会从容器对应的控制组中读取正确的限制从而使得应用获得正确的资源限制设定。
http://www.hkea.cn/news/14407465/

相关文章:

  • 怎么关键词优化网站山西孝义网站开发
  • 建设电商网站的个人心得网站建设与管理教学大纲
  • 为什么买的网站模版不好用网红营销套路
  • 郑州云拓网站建设公司wordpress钩子自定义钩子
  • 个人网站免费的吗网页设计图片的代码
  • 广州广州网站建设公司网站域名到期查询
  • 网站推广的主要方法重庆网站建设去迅法网
  • 怎么管理网站添加代码威海制作网站
  • 青岛建网站公司哪家专业设计网站需要多少钱
  • 网站维护要求网站开发工作描述
  • 仿站小工具wordpress网站推广公司
  • 做网站用那一种语言最好品牌网站制作报价表
  • 问卷调查网站哪个好自己电脑做服务器上传网站 需要备案吗
  • 公众号平台登陆入口seo在线教程
  • 天津营销网站建设公司排名wordpress 获取评论
  • 南平建设集团网站经常访问的网站来打不开
  • 东莞企业网站制作怎么做自己如何创立网站
  • 新公司的公司简介怎么写南宁百度推广排名优化
  • 一个虚拟主机空间挂两个网站多语言网站建设公司
  • 网站该怎么做链接外贸营销邮件主题一般怎么写
  • 微信营销软件功能郑州seo优化服务
  • 网站html5自适应wordpress apache 配置
  • 网站产品使用说明书怎么做设计公司企业价值观
  • 做设计有必要买素材网站会员吗网站优化排名查询
  • 百度推广是必须先做网站吗郑州加盟网站建设
  • 重庆网站建设技术支持重庆互联网源码网站开发
  • wordpress 文章 相册个人网站seo
  • 网站改成自适应桐城住房和城乡建设局网站
  • 做外贸方面的网站汕头市城市建设开发总公司
  • 博敏网站建设网站评论源码