日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者:晏澤愛可生售后團隊成員,主要負責公司數據庫運維產品問題診斷;努力在數據庫和 IT 領域里摸爬滾打中。
本文來源:原創投稿
*愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯系小編并注明來源。


本文關鍵字:linux、systemd、資源隔離

一,修改systemd unit file

為了給程序配置資源隔離,通常我們會到cgroup層級樹下的控制器里,創建或者修改控制組文件。在Linux7中,如果為程序配置了systemd服務,除了直接修改控制組文件之外,還可以通過systemd相關命令對程序的資源隔離配置進行修改。

1.1 修改方法

有兩種方法可以對配置了systemd的程序進行資源隔離:

  1. 命令行修改:通過執行systemctl set-property命令實現,形式為systemctl set-property name parameter=value;修改默認即時生效
  2. 手工修改文件:直接編輯程序的systemd unit file文件,完成之后需手工執行systemctl daemon-reload更新配置,并重啟服務systemctl restart name.service

systemd unit file里支持的資源隔離配置項,如常見的:

  • CPUQuota=value該參數表示服務可以獲取的最大CPU時間,value為百分數形式,高于100%表示可使用1核以上的CPU。與cgroup cpu控制器cpu.cfs_quota_us配置項對應。
  • MemoryLimit=value該參數表示服務可以使用的最大內存量,value可以使用K, M, G, T等后綴表示值的大小。與cgroup memory控制器memory.limit_in_bytes配置項對應。完整的配置項列表,請參考官方文檔:2.3.2. Modifying Unit Files

1.2 試驗說明

以MySQL CPU資源管理為例。

環境信息:

  • 系統版本:centos Linux release 7.5.1804 (Core)
  • CPU配置:4核CPU
技術分享 | 使用 systemd 修改資源隔離配置

 

當資源限制為1核CPU時(CPUQuota=100%):

技術分享 | 使用 systemd 修改資源隔離配置

 

修改CPU資源配置為:2核(CPUQuota=200%)

技術分享 | 使用 systemd 修改資源隔離配置

 

再次測試,可以看到數據庫在寫入數據的過程中,%CPU的值固定在200%左右。

技術分享 | 使用 systemd 修改資源隔離配置

 

二,簡要原理說明

系統資源在cgroup里體現為資源控制器(resource controller/cgroup subsystem);每個controller以層級目錄結構的方式對系統資源進行管理。systemd在系統開機時,默認自動將cpu、blkio、memory等控制器掛載到/sys/fs/cgroup路徑下。

systemd使用以下三種類型的unit來進行資源管理:

  • service:A system service
  • slice:A group of hierarchically organized units that manage system process
  • scope:An externally created process

其中scope類型只能由程序自動創建;其他兩種可程序自動創建,也可手動創建。系統在啟動的時候將默認創建一系列運行時必要的service,同時也會創建四種必要的slice:

  • -.slice — the root slice;
  • system.slice — the default place for all system services;
  • user.slice — the default place for all user sessions;
  • machine.slice — the default place for all virtual machines and Linux containers.

基于此,在Linux 7中,系統通過綁定程序的systemd層級樹路徑和cgroup資源控制器路徑實現資源隔離(可使用命令systemd-cgls直觀查看,見下文圖片),具體表現為:

  1. 將service unit、scope unit或者slice unit在systemd層級樹里的路徑,與對應的cgroup資源控制器路徑進行匹配
  2. unit file里有對應資源管理配置參數,直接作用于cgroup對應的資源控制器

因此,通過修改程序的systemd unit file里與資源管理相關的參數,即可達到資源隔離配置的目的。

技術分享 | 使用 systemd 修改資源隔離配置

 

分享到:
標簽:分享 技術
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定