总结

  1. systemd 的资源限制一般要写到unit文件中,但是,现在测试发现会有 被值被覆盖的现象;经过排查发现是,没有 使用systemd的接口,凡是使用echo "" > 的方式,非systemd 的方式都会在daemon-reload后被干掉

  2. systemctl set-property dd.service CPUQuota=10%

  3. slice 1 下有1个service dd,slice2 有3个service M1 M2 mm 我们做如下试验,发现,只会影响到同一个slice下的

问题描述

Slice 1

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/jiangyi.slice/dd.service/cpu.cfs_quota_us
-1

Slice 2


[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M1.service/cpu.cfs_quota_us
-1

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M2.service/cpu.cfs_quota_us
-1

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/mm.service/cpu.cfs_quota_us
30000

echo修改

echo修改 slice1/dd.service

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#echo 5000 > /sys/fs/cgroup/cpu/jiangyi.slice/dd.service/cpu.cfs_quota_us

echo修改 slice2/M1.service,M2.service,mm.service

M1

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M1.service/cpu.cfs_quota_us
-1

M2

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#echo 5000 > /sys/fs/cgroup/cpu/system.slice/M2.service/cpu.cfs_quota_us

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M2.service/cpu.cfs_quota_us
5000

mm : mm不做修改,在service unit 中使用CPUQuota=30%

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/mm.service/cpu.cfs_quota_us
30000

仅重启M1

结果:均没有发现变化

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#systemctl restart M1
[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/mm.service/cpu.cfs_quota_us
30000

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M1.service/cpu.cfs_quota_us
-1

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M2.service/cpu.cfs_quota_us
5000

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/jiangyi.slice/dd.service/cpu.cfs_quota_us
5000

仅daemon-reload

依然没有发现任何变化

daemon-reload后重启M1

  1. M1同slice下的M2被恢复
  2. M1同slice下的mm没有被恢复,因为,mm使用了CPUQuota=30%
  3. M1非同slice下的dd没有被修改,可能是因为,和M1不在同一个slice下

大概的猜测是,daemon-reload后,M1的restart会导致同slice下的所有service的cpu quota值 reload一下,但不会使得,非同一个slice下的 cpu quota值reload一下;

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/mm.service/cpu.cfs_quota_us
30000

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M2.service/cpu.cfs_quota_us
-1

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/system.slice/M1.service/cpu.cfs_quota_us
-1

[root@jiangyi01.sqa.zmf /sys/fs/cgroup/memory]
#cat /sys/fs/cgroup/cpu/jiangyi.slice/dd.service/cpu.cfs_quota_us
5000

systemd的命令systemctl set-property testSpeed CPUQuota=10%的更多相关文章

  1. Centos7 服务 service 设置命令 systemctl 用法 (替代service 和 chkconfig)

    在Centos 中 systemctl  是设置系统服务的命令,即 service  ,   它融合之前service和chkconfig的功能于一体. 可以使用它永久性或只在当前会话中启用/禁用服务 ...

  2. Centos7 环境下开机 自启动服务(service) 设置的改变 (命令systemctl 和 chkconfig用法区别比较)

    参考文章:  <Linux 设置程序开机自启动 (命令systemctl 和 chkconfig用法区别比较)> http://blog.csdn.net/kenhins/article/ ...

  3. [转帖]Linux systemd 常用命令

    Linux systemd 常用命令 https://www.cnblogs.com/tsdxdx/p/7288490.html systemctl hostnamectl timedatectl l ...

  4. Linux系统管理命令-systemctl 和 sshd 服务

    一系统服务管理命令systemctl 开启一个服务 : systemctl start sshd 关闭一个服务: systemctl stop sshd 查看一个服务的状态: systemctl st ...

  5. Linux 设置程序开机自启动 (命令systemctl 和 chkconfig用法区别比较)

    之前在Linux centos 7 上安装了apache 和mysql,当时并没有设置开机自动启动. 最近又重新练习网页,每次开机总是要手动启动httpd和mysqld,不方便,就想设置成开机自动启动 ...

  6. systemd服务管理--systemctl常用命令

    转自 :https://m635674608.iteye.com/blog/2359480 1. #systemctl enable crond.service //让某个服务开机启动(.servic ...

  7. systemd服务管理---systemctl命令列出所有服务

    1.列出系统所有服务 #systemctl list-units --all --type=service

  8. Linux systemd 常用命令

    系统管理 systemctl 显示系统状态: $ systemctl status 立即激活单元: # systemctl start [单元] 立即停止单元: # systemctl stop [单 ...

  9. Linux命令——systemctl

    前言 systemctl本身的意义并不仅仅是一个命令那么简单,他标志着SysV时代的终结,Systemd时代的开始.CentOS 7.X系列已经抛弃SysV,全面拥抱Systemd这个init sys ...

随机推荐

  1. string字符串转C风格字符串 进而转换为数字

    要求如题 头文件stdlib.h中有一个函数atof() 可以将字符串转化为双精度浮点数(double) double atof(const char *nptr); 此字符串为C风格字符串,因此需要 ...

  2. 转:WebTest的常见问题与解决

    WebTest的常见问题与解决录制好一个WebTest,加上各种规则,编辑后运行并不会像我们想象的那么顺利成功,往往会碰到很多问题,运行不成功的情况比较多,这样我们就遇到了如何解决这些问题的情形.1. ...

  3. 你的float用对了吗

    介绍 很多人都知道float是浮点类型,它不能表示数据范围内的所有数值.但是,实际使用或编码时,你又是否记得这句话呢?下面是stackoverflow中的一个问题: why does a float ...

  4. ILayer

    ILayer http://127.0.0.1:47873/help/1-4452/ms.help?method=page&id=ESRICARTO-7E8C676F-000BCF&p ...

  5. javascript 中获取对象的长度(map对象的长度)--js关联数组的长度

    var n = {1:100, 2:101, 3:102, 4:103}; 怎么获取这个对象n的长度呢? 方法一: function getLength(obj){ var count = 0; fo ...

  6. CodeForces 76E Points

    给出n个点,求任意两点间距离的平方和. 暴力显然超时,可以把公式写出来,化简一下,发现预处理一下后缀和就可以o(n)出解了. #include<cstdio> #include<cs ...

  7. Deep learning:三十八(Stacked CNN简单介绍)

    http://www.cnblogs.com/tornadomeet/archive/2013/05/05/3061457.html 前言: 本节主要是来简单介绍下stacked CNN(深度卷积网络 ...

  8. 我对hibernate的对象的3种状态的理解

    老师的说法 Hibernate中对象的状态    在Hibernate使用中,对象的状态有以下三种    a.临时对象 : 在程序中使用new方式创建的对象    b.持久对象 : 在程序中与sess ...

  9. Openlayers修改矢量要素

    将以下代码放到demo下examples中即可运行 <!DOCTYPE html><html> <head> <meta http-equiv="C ...

  10. nginx keepalived 主从切换

    注:  LVS + Keepalived  不知道为什么出现一个很郁闷的问题....... ------------------------------------------------------ ...