1. 程式人生 > >CGroup 限制CPU/記憶體等資源的使用

CGroup 限制CPU/記憶體等資源的使用

CGroup 介紹
CGroup 是 Control Groups 的縮寫,是 Linux 核心提供的一種可以限制、記錄、隔離程序組 (process groups) 所使用的物力資源 (如 cpu memory i/o 等等) 的機制。2007 年進入 Linux 2.6.24 核心,CGroups 不是全新創造的,它將程序管理從 cpuset 中剝離出來,作者是 Google 的 Paul Menage。CGroups 也是 LXC 為實現虛擬化所使用的資源管理手段。

CGroup 功能及組成
CGroup 是將任意程序進行分組化管理的 Linux 核心功能。CGroup 本身是提供將程序進行分組化管理的功能和介面的基礎結構,I/O 或記憶體的分配控制等具體的資源管理功能是通過這個功能來實現的。這些具體的資源管理功能稱為 CGroup 子系統或控制器。CGroup 子系統有控制記憶體的 Memory 控制器、控制程序排程的 CPU 控制器等。執行中的核心可以使用的 Cgroup 子系統由/proc/cgroup 來確認。

CGroup 提供了一個 CGroup 虛擬檔案系統,作為進行分組管理和各子系統設定的使用者介面。要使用 CGroup,必須掛載 CGroup 檔案系統。這時通過掛載選項指定使用哪個子系統。

Cgroups提供了以下功能:
    1.限制程序組可以使用的資源數量(Resource limiting )。比如:memory子系統可以為程序組設定一個memory使用上限,一旦程序組使用的記憶體達到限額再申請記憶體,就會出發OOM(out of memory)。
    2.程序組的優先順序控制(Prioritization )。比如:可以使用cpu子系統為某個程序組分配特定cpu share。
    3.記錄程序組使用的資源數量(Accounting )。比如:可以使用cpuacct子系統記錄某個程序組使用的cpu時間
    4.程序組隔離(Isolation)。比如:使用ns子系統可以使不同的程序組使用不同的namespace,以達到隔離的目的,不同的程序組有各自的程序、網路、檔案系統掛載空間。
    5.程序組控制(Control)。比如:使用freezer子系統可以將程序組掛起和恢復。

CGroup 支援的檔案種類
表 1. CGroup 支援的檔案種類
檔名    R/W    用途
Release_agent

RW

刪除分組時執行的命令,這個檔案只存在於根分組

Notify_on_release

RW

設定是否執行 release_agent。為 1 時執行

Tasks

RW

屬於分組的執行緒 TID 列表

Cgroup.procs

R

屬於分組的程序 PID 列表。僅包括多執行緒程序的執行緒 leader 的 TID,這點與 tasks 不同

Cgroup.event_control

RW

監視狀態變化和分組刪除事件的配置檔案

CGroup 相關概念解釋
任務(task)。在 cgroups 中,任務就是系統的一個程序;

控制族群(control group)。控制族群就是一組按照某種標準劃分的程序。Cgroups 中的資源控制都是以控制族群為單位實現。一個程序可以加入到某個控制族群,也從一個程序組遷移到另一個控制族群。一個程序組的程序可以使用 cgroups 以控制族群為單位分配的資源,同時受到 cgroups 以控制族群為單位設定的限制;

層級(hierarchy)。控制族群可以組織成 hierarchical 的形式,既一顆控制族群樹。控制族群樹上的子節點控制族群是父節點控制族群的孩子,繼承父控制族群的特定的屬性;

子系統(subsystem)。一個子系統就是一個資源控制器,比如 cpu 子系統就是控制 cpu 時間分配的一個控制器。子系統必須附加(attach)到一個層級上才能起作用,一個子系統附加到某個層級以後,這個層級上的所有控制族群都受到這個子系統的控制。

相互關係

每次在系統中建立新層級時,該系統中的所有任務都是那個層級的預設 cgroup(我們稱之為 root cgroup,此 cgroup 在建立層級時自動建立,後面在該層級中建立的 cgroup 都是此 cgroup 的後代)的初始成員;

一個子系統最多隻能附加到一個層級;

一個層級可以附加多個子系統;

一個任務可以是多個 cgroup 的成員,但是這些 cgroup 必須在不同的層級;

系統中的程序(任務)建立子程序(任務)時,該子任務自動成為其父程序所在 cgroup 的成員。然後可根據需要將該子任務移動到不同的 cgroup 中,但開始時它總是繼承其父任務的 cgroup。

圖 1. CGroup 層級圖

圖 1 所示的 CGroup 層級關係顯示,CPU 和 Memory 兩個子系統有自己獨立的層級系統,而又通過 Task Group 取得關聯關係。

CGroup 特點
在 cgroups 中,任務就是系統的一個程序。

控制族群(control group)。控制族群就是一組按照某種標準劃分的程序。Cgroups 中的資源控制都是以控制族群為單位實現。一個程序可以加入到某個控制族群,也從一個程序組遷移到另一個控制族群。一個程序組的程序可以使用 cgroups 以控制族群為單位分配的資源,同時受到 cgroups 以控制族群為單位設定的限制。

層級(hierarchy)。控制族群可以組織成 hierarchical 的形式,既一顆控制族群樹。控制族群樹上的子節點控制族群是父節點控制族群的孩子,繼承父控制族群的特定的屬性。

子系統(subsytem)。一個子系統就是一個資源控制器,比如 cpu 子系統就是控制 cpu 時間分配的一個控制器。子系統必須附加(attach)到一個層級上才能起作用,一個子系統附加到某個層級以後,這個層級上的所有控制族群都受到這個子系統的控制。

子系統的介紹
blkio   -- 這個子系統為塊裝置設定輸入/輸出限制,比如物理裝置(磁碟,固態硬碟,USB 等等)。
cpu     -- 這個子系統使用排程程式提供對 CPU 的 cgroup 任務訪問。
cpuacct -- 這個子系統自動生成 cgroup 中任務所使用的 CPU 報告。
cpuset  -- 這個子系統為 cgroup 中的任務分配獨立 CPU(在多核系統)和記憶體節點。
devices -- 這個子系統可允許或者拒絕 cgroup 中的任務訪問裝置。

freezer -- 這個子系統掛起或者恢復 cgroup 中的任務。
memory  -- 這個子系統設定 cgroup 中任務使用的記憶體限制,並自動生成由那些任務使用的記憶體資源報告。
net_cls -- 這個子系統使用等級識別符(classid)標記網路資料包,可允許 Linux 流量控制程式(tc)識別從具體 cgroup 中生成的資料包。

CGroup 應用架構

圖 2. CGroup 典型應用架構圖

如圖 2 所示,CGroup 技術可以被用來在作業系統底層限制物理資源,起到 Container 的作用。圖中每一個 JVM 程序對應一個 Container Cgroup 層級,通過 CGroup 提供的各類子系統,可以對每一個 JVM 程序對應的執行緒級別進行物理限制,這些限制包括 CPU、記憶體等等許多種類的資源。下一部分會具體對應用程式進行 CPU 資源隔離進行演示。

cgroup的安裝
其實安裝很簡單,最佳實踐就是yum直接安裝(centos下)

配置檔案
/etc/cgconfig.conf  

mount {          cpuset  = /cgroup/cpuset;          
                     cpu     = /cgroup/cpu;          
                     cpuacct = /cgroup/cpuacct;          
                     memory  = /cgroup/memory;          
                     devices = /cgroup/devices;          
                     freezer = /cgroup/freezer;          
                     net_cls = /cgroup/net_cls;          
                      blkio   = /cgroup/blkio;              
                        }  

cgroup section的語法格式如下
group <name> {  
    [<permissions>]  
    <controller> {  
        <param name> = <param value>;  
        …  
    }  
    …}  
name: 指定cgroup的名稱
permissions:可選項,指定cgroup對應的掛載點檔案系統的許可權,root使用者擁有所有許可權。
controller:子系統的名稱
param name 和 param value:子系統的屬性及其屬性值

7.1 配置對mysql例項的資源限制
    前提:MySQL資料庫已在機器上安裝

    7.1.1 修改cgconfig.conf檔案

[plain] view plain copy
mount {  
    cpuset  = /cgroup/cpuset;  
    cpu = /cgroup/cpu;  
    cpuacct = /cgroup/cpuacct;  
    memory  = /cgroup/memory;  
        blkio   = /cgroup/blkio;  
}  
  
group mysql_g1 {    
    cpu {  
            cpu.cfs_quota_us = 50000;  
            cpu.cfs_period_us = 100000;  
    }  
    cpuset {    
            cpuset.cpus = "3";    
            cpuset.mems = "0";    
    }    
    cpuacct{  
  
    }  
    memory {    
            memory.limit_in_bytes=104857600;  
            memory.swappiness=0;  
            # memory.max_usage_in_bytes=104857600;  
            # memory.oom_control=0;  
    }   
    blkio  {  
           blkio.throttle.read_bps_device="8:0 524288";  
           blkio.throttle.write_bps_device="8:0 524288";  
    }   
}   
    7.1.2 配置檔案的部分解釋。

    cpu:cpu使用時間限額。

    cpu.cfs_period_us和cpu.cfs_quota_us來限制該組中的所有程序在單位時間裡可以使用的cpu時間。這裡的cfs是完全公平排程器的縮寫。cpu.cfs_period_us就是時間週期(微秒),預設為100000,即百毫秒。cpu.cfs_quota_us就是在這期間內可使用的cpu時間(微秒),預設-1,即無限制。(cfs_quota_us是cfs_period_us的兩倍即可限定在雙核上完全使用)。

    cpuset:cpu繫結

    我們限制該組只能在0一共1個超執行緒上執行。cpuset.mems是用來設定記憶體節點的。

    本例限制使用超執行緒0上的第四個cpu執行緒。

    其實cgconfig也就是幫你把配置檔案中的配置整理到/cgroup/cpuset這個目錄裡面,比如你需要動態設定mysql_group1/ cpuset.cpus的CPU超執行緒號,可以採用如下的辦法。

[plain] view plain copy
[[email protected] ~]# echo "0" > mysql_group1/ cpuset.cpus  
    cpuacct:cpu資源報告


    memory:記憶體限制 

    記憶體限制我們主要限制了MySQL可以使用的記憶體最大大小memory.limit_in_bytes=256M。而設定swappiness為0是為了讓作業系統不會將MySQL的記憶體匿名頁交換出去。

    blkio:BLOCK IO限額

    blkio.throttle.read_bps_device="8:0 524288"; #每秒讀資料上限
    blkio.throttle.write_bps_device="8:0 524288"; #每秒寫資料上限

    其中8:0對應主裝置號和副裝置號,可以通過ls -l /dev/sda檢視

[plain] view plain copy
[[email protected] /]# ls -l /dev/sda  
brw-rw----. 1 root disk 8, 0 Sep 15 04:19 /dev/sda  
    7.1.3 拓展知識

    現在較新的伺服器CPU都是numa結構<非一致記憶體訪問結構(NUMA:Non-Uniform Memory Access)>,使用numactl --hardware可以看到numa各個節點的CPU超執行緒號,以及對應的節點號。

    本例結果如下:

[plain] view plain copy
[[email protected] /]# numactl --hardware   
available: 1 nodes (0)  
node 0 cpus: 0 1 2 3  
node 0 size: 1023 MB  
node 0 free: 68 MB  
node distances:  
node   0   
  0:  10   
    以下是較高階伺服器的numa資訊,僅作參考。

[plain] view plain copy
[[email protected] ~]# numactl --hardware     
available: 4 nodes (0-3)  
node 0 cpus: 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60  
node 0 size: 16338 MB  
node 0 free: 391 MB  
node 1 cpus: 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61  
node 1 size: 16384 MB  
node 1 free: 133 MB  
node 2 cpus: 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62  
node 2 size: 16384 MB  
node 2 free: 137 MB  
node 3 cpus: 3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63  
node 3 size: 16384 MB  
node 3 free: 186 MB  
node distances:  
node   0   1   2   3   
  0:  10  20  30  20   
  1:  20  10  20  30   
  2:  30  20  10  20   
  3:  20  30  20  10  
    7.1.4 修改cgrules.conf檔案

[plain] view plain copy
[[email protected] ~]# vi /etc/cgrules.conf  
# /etc/cgrules.conf  
#The format of this file is described in cgrules.conf(5)  
#manual page.  
#  
# Example:  
#<user>         <controllers>   <destination>  
#@student       cpu,memory      usergroup/student/  
#peter          cpu             test1/  
#%              memory          test2/  
*:/usr/local/mysql/bin/mysqld * mysql_g1  
    注:共分為3個部分,分別為需要限制的例項,限制的內容(如cpu,memory),掛載目標。

    7.2 使配置生效
[plain] view plain copy
[[email protected] ~]# /etc/init.d/cgconfig restart  
Stopping cgconfig service:                                 [  OK  ]  
Starting cgconfig service:                                 [  OK  ]  
[[email protected] ~]# /etc/init.d/cgred restart  
Stopping CGroup Rules Engine Daemon...                     [  OK  ]  
Starting CGroup Rules Engine Daemon:                       [  OK  ]  
    注:重啟順序為cgconfig -> cgred ,更改配置檔案後兩個服務需要重啟,且順序不能錯。

    7.3 啟動MySQL,檢視MySQL是否處於cgroup的限制中
[plain] view plain copy
[[email protected] ~]# ps -eo pid,cgroup,cmd | grep -i mysqld  
29871 blkio:/;net_cls:/;freezer:/;devices:/;memory:/;cpuacct:/;cpu:/;cpuset:/ /bin/sh ./bin/mysqld_safe --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/  
30219 blkio:/;net_cls:/;freezer:/;devices:/;memory:/;cpuacct:/;cpu:/;cpuset:/mysql_g1 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/usr/local/mysql/data//localhost.localdomain.err --pid-file=/usr/local/mysql/data//localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306  
30311 blkio:/;net_cls:/;freezer:/;devices:/;memory:/;cpuacct:/;cpu:/;cpuset:/ grep -i mysqld  
    7.4 資源限制驗證
    使用mysqlslap對mysql進行壓力測試,看mysql使用資源是否超過限制。

    7.4.1 在shell視窗1用mysqlslap對mysql進行壓力測試。

[plain] view plain copy
[[email protected] /]# /usr/local/mysql/bin/mysqlslap --defaults-file=/etc/my.cnf --concurrency=150 --iterations=1 --number-int-cols=8 --auto-generate-sql --auto-generate-sql-load-type=mixed --engine=innodb --number-of-queries=100000 -ujesse -pjesse --number-char-cols=35 --auto-generate-sql-add-autoincrement --debug-info -P3306 -h127.0.0.1  
    7.4.2 在shell視窗2檢視mysql對cpu,記憶體的使用


    可見:cpu限制在了第四個核心上,且對第四個核心的使用限制在50%。

    7.4.3 在shell視窗3檢視io的消耗

    可見:mysql對io的讀及寫消耗均限制在2M每秒以內。

8 cgroup例項分析(手工動態驗證)
    還原配置檔案/etc/cgconfig.conf及/etc/cgrules.conf 為預設配置。測試例項依然為mysql,測試工具為mysqlslap。

    開啟cgconfig及cgrules 服務。

[plain] view plain copy
[[email protected] /]# /etc/init.d/cgconfig restart  
Stopping cgconfig service:                                 [  OK  ]  
Starting cgconfig service:                                 [  OK  ]  
[[email protected] /]# /etc/init.d/cgred restart  
Stopping CGroup Rules Engine Daemon...                     [  OK  ]  
Starting CGroup Rules Engine Daemon:                       [  OK  ]  
    開啟mysqlslap壓力測試程式。

[plain] view plain copy
[[email protected] /]# /usr/local/mysql/bin/mysqlslap --defaults-file=/etc/my.cnf --concurrency=150 --iterations=1 --number-int-cols=8 --auto-generate-sql --auto-generate-sql-load-type=mixed --engine=innodb --number-of-queries=100000 -ujesse -pjesse --number-char-cols=35 --auto-generate-sql-add-autoincrement --debug-info -P3306 -h127.0.0.1  
    通過htop檢視資源消耗。

    8.1 cpu限制例項
    限制mysql使用一個核,如第2個核,且對該核的使用不超過50%

[plain] view plain copy
[[email protected] /]# mkdir -p /cgroup/cpu/foo/  
[[email protected] /]# mkdir -p /cgroup/cpuset/foo/  
[[email protected] /]# echo 50000 > /cgroup/cpu/foo/cpu.cfs_quota_us  
[[email protected] /]# echo 100000 > /cgroup/cpu/foo/cpu.cfs_period_us  
[[email protected] /]# echo "0" > /cgroup/cpuset/foo/cpuset.mems  
[[email protected] /]# echo "1" > /cgroup/cpuset/foo/cpuset.cpus  
[[email protected] /]# echo 28819 > /cgroup/cpu/foo/tasks   
    其中:28819為mysqld的程序號。

    8.2 記憶體限制例項
    限制mysql使用記憶體為不超過512M

    跑一個消耗記憶體指令碼

[plain] view plain copy
x='a'  
while [ True ];do  
    x=$x$x  
done;  


    記憶體的消耗在不斷增加,對其進行限制,使其使用記憶體在500M以內

[plain] view plain copy
[[email protected] /]# mkdir -p /cgroup/memory/foo  
[[email protected] /]# echo 524288000 >  /cgroup/memory/foo/memory.limit_in_bytes  
[[email protected] /]# echo 44476 > /cgroup/memory/foo/tasks   

    記憶體使用得到了有效控制。

    8.3 IO限制例項
    跑一個消耗IO的測試

[plain] view plain copy
[[email protected] ~]# dd if=/dev/sda of=/dev/null   
    通過iotop看io佔用情況,磁碟讀取速度到了50M/s

 
    限制讀取速度為10M/S

[plain] view plain copy
[[email protected] ~]# mkdir -p /cgroup/blkio/foo  
[[email protected] ~]# echo '8:0   10485760' >  /cgroup/blkio/foo/blkio.throttle.read_bps_device  
[[email protected] ~]# echo 45033 > /cgroup/blkio/foo/tasks  
    注1:45033為dd的程序號

    注2:8:0對應主裝置號和副裝置號,可以通過ls -l /dev/sda檢視

[plain] view plain copy
[[email protected] ~]# ls -l /dev/sda  
brw-rw----. 1 root disk 8, 0 Sep 15 04:19 /dev/sda  
9 cgroup小結
    使用cgroup臨時對程序進行調整,直接通過命令即可,如果要持久化對程序進行控制,即重啟後依然有效,需要寫進配置檔案/etc/cgconfig.conf及/etc/cgrules.conf 
--------------------- 
作者:DemonHunter211 
來源:CSDN 
原文:https://blog.csdn.net/kwame211/article/details/78730705 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

相關推薦

CGroup 限制CPU/記憶體資源的使用

CGroup 介紹 CGroup 是 Control Groups 的縮寫,是 Linux 核心提供的一種可以限制、記錄、隔離程序組 (process groups) 所使用的物力資源 (如 cpu memory i/o 等等) 的機制。2007 年進入 Linux

Linux下CGroup進行CPU記憶體資源控制

留存 from: http://www.cnblogs.com/kevingrace/p/5685433.html  and  http://www.cnblogs.com/wang_yb/p/3942208.html CGroup 介紹 CGroup 是 Control

Cgroup限制CPU、IO、記憶體以及linux系統中的排程策略

一、CPU 1、0核利用 思路: 0核是必須要保護的,否則各種系統命令、喂狗都可能出問題;    &

manjaro狀態列顯示實時網速cpu記憶體資訊

開源專案indicator-sysmonitor地址:https://github.com/fossfreedom/indicator-sysmonitor 1,開啟manjaro自帶的軟體商店:        搜尋

cgroup限制程序記憶體大小

宣告: 本部落格歡迎轉發,但請保留原作者資訊! 內容系本人學習、研究和總結,如有雷同,實屬榮幸! 以限制mongodb的記憶體大小為例。 Cgroup限制方法:   mkdir /cgroup/memory/test/ echo 50M > /cgrou

檢視/修改linux系統的最大連結數限制/檔案描述符限制/埠範圍限制/虛擬記憶體

一、修改最大連線數 1、檢視當前檔案描述符的限制數目的命令: ulimit -n 2、修改檔案描述符的限制數目 2.1 臨時改變當前會話: ulimit -n 65536 2.2 永久變更需要下面兩個步驟: 1) 修改/etc/security/limits.c

cgroup實現cpu綁定和資源使用比例限制

cgroup cpu.share cpuset 背景原理:部分物理服務器上部署了多個應用,為了避免由於部分應用異常造成機器負載過高,影響其他應用,對每個應用所屬進程進行cpu使用限制。 限制內容:A,綁定應用使用除0號cpu以外的其他cpu;B,設定cpu資源使用比例,當資源充足時候,可以使

jmeter如何監控伺服器CPU記憶體、i/o資源

一、要準備好的外掛:JMeterPlugins-Standard-1.4.0(pwd:cjqd)、ServerAgent-2.2.1(pwd:pxui); 二、解壓JMeterPlugins-Standard-1.4.0.zip,將其中\lib\ext\JMeterPl

Docker對CPU記憶體資源限制

Dockerfile檔案中CMD和EMTRYPOINT的區別 第一種:陣列格式 執行一個可執行的檔案並提供引數 [root@foundation40 docker]# mkdir test [root@foundation40 docker]# cd test/ [root@foun

jmeter學習------監控linux的cpu記憶體、網路資源佔用曲線圖

需求: 1、瞭解系統執行的機器的資源佔用情況 2、使用jmeter監控機器上的cpu、記憶體、網路等資源佔用曲線圖 3、從資源佔用曲線圖中-預測系統併發量、資料處理量的能力 步驟: 1、這裡使用apache-jmeter-3.1版本 2、加入plugins外掛:

Linux資源控制-使用cgroup控制CPU記憶體

原文地址:http://www.cnblogs.com/wang_yb/p/3942208.html 主要介紹Linux下, 如果對程序的CPU和記憶體資源的使用情況進行控制的方法。 CPU資源控制 每個程序能夠佔用CPU多長時間, 什麼時候能夠佔用CPU是和系

zabbix監控CPU資源報警到163郵箱

don -s pan 文件 MF CI install letter watermark 監控cpu報警: zabbix自帶模板有一個 Template OS Linux模板。這個模板有監控CPU的監控項,如果沒有添加一個監控項“ CPU idle time” 這個監控項監

利用cgroup限制instance磁盤io資源使用

loaded load 安裝 product 開啟 .com read net nag 1、安裝libcgroup軟件包;[root@pre-pool1-r6-06-08-18-01 ~]# yum install libcgroup Loaded plugins: pro

Linux 檢視CPU資訊,機器型號,記憶體相關配置資訊

轉載一下以後檢視:https://my.oschina.net/hunterli/blog/140783 系統 # uname -a # 檢視核心/作業系統/CPU資訊 # head -n 1 /etc/issue # 檢視作業系統版本 # cat /proc/c

Linux 檢視CPU、Memory資源佔用情況

linux下獲取佔用CPU資源最多的10個程序,可以使用如下命令組合:ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|headlinux下獲取佔用記憶體資源最多的10個程序,可以使用如下命令組合:ps aux|head -1;ps aux|grep -v PI

Linux 檢視CPU資訊,機器型號,記憶體資訊

系統 # uname -a # 檢視核心/作業系統/CPU資訊 # head -n 1 /etc/issue # 檢視作業系統版本 # cat /proc/cpuinfo # 檢視CPU資訊 # hostname

EOS實戰(二)RPC介面(使用RPC的介面建立賬戶同時購買記憶體併為其抵押CPU和NET資源

1. 前言 前面我們使用RPC API完成了轉賬。這篇文章繼續使用RPC API來建立賬號。在EOS中,這些行為都叫做transaction,更本質一點說是一筆transaction中的action。在轉賬的transaction中,只有一個action,它呼叫eosio.

Docker 資源限制記憶體

一、壓測工具 通過如下 Dockerfile 構建簡單的測試映象 ➜ cat Dockerfile FROM ubuntu:latest RUN apt-get update && \ apt-get install stress ➜

使用cgroup限制普通使用者資源

#安裝cgroup yum install -y libcgroup-tools.x86_64 libcgroup #配置cgconfig vim /etc/cgconfig.conf #增加 group JstormGroup { memory { memory.limit_in_bytes = "8

Linux檢視CPU個數、記憶體資訊

總核數 = 物理CPU個數 X 每顆物理CPU的核數 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超執行緒數 檢視CPU資訊命令 >> cat /proc/cpuinfo 檢視物理CPU的個數