总结

  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. Asp.Net MVC以 JSON传值扩展方法

    Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下: DataContractJsonSerializer类: 该类在System.Runtime.Serializ ...

  2. UML学习小结

    最近在使用状态模式写一个仿Windows计算器的MFC程序,顺便学习了一下UML图的绘制,尤其是类图和状态图的绘制,这里做一下总结吧.    一.UML简介 统一建模语言UML(Unified Mod ...

  3. 基于心跳的socket长连接

    http://coach.iteye.com/blog/2024444 基于心跳的socket长连接 博客分类: http socket 案例: 心跳: socket模拟网页的报文连接某个网站,创建t ...

  4. Python 100例(下)

    如果你坚持到这了,哪就为自己鼓掌吧!坚持,你一定可以. 实例51: 题目:学习使用按位与&. #!/usr/bin/env  python# --*--coding:utf-8 --*--'' ...

  5. Python之路: 面向对象

    Python是一门面向对象的语言,所以在Python中创建一个类和对象是很容易的.接下来了解一下面像对象的一些基本特征. 面向对象技术简介 类(class):描述具有相同的属性和方法的对象的集合.定义 ...

  6. protobuf python api

    摘要: python中一切都可以看作类.那么如何查看每个类的API.使用ipython python  protobuf 的函数在message中定义 此处所有的api说明:https://devel ...

  7. jqGrid的搜索框下拉

    当需要在jqGrid的搜索框里配置搜索条件时,如下拉,日期等,代码如下: datePick = function(elem) { jQuery(elem). } colNames : [ " ...

  8. laravel项目安装debugbar

    在github上有laravel项目的debugbar,可以查看项目的页面引用.变量.数据库使用.内存和反应时间等,貌似是一个还不错的小工具,效果如下: 安装地址:https://github.com ...

  9. LPC1788系统时钟初始化

    #ifndef __SYS_H_ #define __SYS_H_ #include "common.h" #define SystemCoreClock  120000000  ...

  10. OSD的主要实现方法和类型(转)

    源:OSD的主要实现方法和类型 目前有两种主要的OSD实现方法:外部OSD发生器与视频处理器间的叠加合成;视频处理器内部 支持OSD,直接在视频缓存内部叠加OSD信息. 外部OSD发生器与视频处理器间 ...