日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux上cgconfig服务,linux系统调优-Cgroups

發(fā)布時(shí)間:2024/1/8 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux上cgconfig服务,linux系统调优-Cgroups 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.cgconfig 設(shè)計(jì)限制策略

Cgroups這個(gè)是被cgconfig服務(wù)所控制的。如果此服務(wù)沒有啟動(dòng),在根目錄下的cgroup文件夾里就不會(huì)存在內(nèi)容。

1.安裝cgroup

yum install libcgroup

2.# /etc/init.d/cgconfig status? 查看cgroup的狀態(tài),如果沒有啟動(dòng),則不會(huì)有/cgroup目錄

3.# /etc/init.d/cgconfig start

4.vim /etc/cgconfig.conf? 可以修改cgroup的配置文件,將cpu與memory的信息合并。

mount {

cpuset? = /cgroup/cpuset;

#?????? cpu???? = /cgroup/cpu;

cpuacct = /cgroup/cpuacct;

#?????? memory? = /cgroup/memory;

cpu???? = /cgroup/cpumem;

memory? = /cgroup/cpumem;

devices = /cgroup/devices;

freezer = /cgroup/freezer;

net_cls = /cgroup/net_cls;

blkio?? = /cgroup/blkio;

5.# /etc/init.d/cgconfig restart????? 重新啟動(dòng)cgroup,可以在/cgroup/目錄下發(fā)現(xiàn)cpumem目錄文件,原來的cpu,memory目錄失效,里面無內(nèi)容。

注意:重啟cgconfig時(shí)需退出cgroup目錄再重啟

cgred 將需要限制的程序應(yīng)用到cgroup中

6.# lssubsys -m? 查看當(dāng)前系統(tǒng)已掛載的子系統(tǒng)

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

二.cpu管理

1.#vim /etc/cgconfig.conf

在配置文件中追加兩個(gè)組

group lesscpu{???? #占用cpu較小的組

cpu{

}

}

group morecpu{?? #占用cpu較多的組

cpu{

}

}

2.#/etc/init.d/cgconfig restart 重新啟動(dòng)配置文件

3.#cd /cgroup/cpu/

ls

可以看到多出兩個(gè)目錄文件 lesscpu,morecpu。

lesscpu,morecpu目錄文件中的內(nèi)容與父cpu目錄中的內(nèi)容完全一樣。

4.# cat /cgroup/cpu/cpu.shares? 查看cpu父親目錄cpu.shares的大小為1024

1024

5.#vim /etc/cgconfig.conf

group lesscpu{

cpu{

cpu.shares=100;? 根據(jù)父cpu的cpu.shares來設(shè)定,當(dāng)發(fā)生資源搶占時(shí),有大約1/10的搶占幾率

}

}

group morecpu{

cpu{

cpu.shares=200; 有大約2/10的搶占幾率

}

6.#/etc/init.d/cgconfig restart 重新啟動(dòng)配置文件

7.#cat /cgroup/cpu/lesscpu/cpu.shares

100

可以看到lesscpu的cpu.share已經(jīng)發(fā)生改變

8.如果有多個(gè)個(gè)cpu在運(yùn)行,可以關(guān)閉掉一定數(shù)目的cpu

(1)查看cpu運(yùn)行狀況

#lscpu

Architecture:????????? x86_64

CPU op-mode(s):??????? 32-bit, 64-bit

Byte Order:??????????? Little Endian

CPU(s):??????????????? 4

On-line CPU(s) list:?? 0-3? 可以看到在線活躍的cpu號(hào)為0到3

(2)]# cat /sys/devices/system/cpu/cpu1/online? 查看cpu1的在線狀況為1

1

注:cpu0默認(rèn)不能關(guān)閉

(3)# echo 0 >> /sys/devices/system/cpu/cpu1/online

(4)# lscpu

Architecture:????????? x86_64

CPU op-mode(s):??????? 32-bit, 64-bit

Byte Order:??????????? Little Endian

CPU(s):??????????????? 4

On-line CPU(s) list:?? 0,2,3

Off-line CPU(s) list:? 1? 可以看到已經(jīng)成功關(guān)閉cpu1

9.使用cpu進(jìn)行控制進(jìn)程運(yùn)行

(1)]# cgexec -g cpu:lesscpu time dd if=/dev/zero of=/dev/null bs=1M count=200000

200000+0 records in

200000+0 records out

209715200000 bytes (210 GB) copied, 19.2698 s, 10.9 GB/s

0.01user 9.60system 0:19.27elapsed 49%CPU (0avgtext+0avgdata 7600maxresident)k

0inputs+0outputs (0major+516minor)pagefaults 0swaps

(2)# cgexec -g cpu:morecpu time dd if=/dev/zero of=/dev/null bs=1M count=200000

200000+0 records in

200000+0 records out

209715200000 bytes (210 GB) copied, 14.4771 s, 14.5 GB/s

0.01user 9.61system 0:14.47elapsed 66%CPU (0avgtext+0avgdata 7600maxresident)k

0inputs+0outputs (0major+518minor)pagefaults 0swaps

如圖,可以看到使用morecpu策略的進(jìn)程消耗的資源是lesscpu的兩倍

應(yīng)用場景:當(dāng)服務(wù)器有一個(gè)大型的應(yīng)用程序運(yùn)行時(shí),可以給其900的cpu資源,當(dāng)沒有其它進(jìn)程與它競爭時(shí),它可以滿負(fù)載運(yùn)行,當(dāng)有資源競爭時(shí),給它大約90%cpu資源使用率,避免機(jī)器的卡死。

三.memory管理

1.使用系統(tǒng)自帶的tmpfs文件系統(tǒng),

(1)創(chuàng)建臨時(shí)目錄

# mkdir /mnt/tmpfs/

(2)將tmpfs文件系統(tǒng)掛載在/mnt/tmpfs/目錄下

# mount -t tmpfs none /mnt/tmpfs/

(3)查看掛載情況

# df

Filesystem?????????????????? 1K-blocks??? Used Available Use% Mounted on

/dev/mapper/VolGroup-lv_root?? 6926264 1360608?? 5213812? 21% /

tmpfs?????????????????????????? 251136?????? 0??? 251136?? 0% /dev/shm

/dev/sda1?????????????????????? 495844?? 33463??? 436781?? 8% /boot

none??????????????????????????? 251136?????? 0??? 251136?? 0% /mnt/tmpfs

掛載的內(nèi)存盤大小實(shí)際是系統(tǒng)剩余的內(nèi)存大小,現(xiàn)在往/mnt/tmpfs里面寫東西實(shí)際是往內(nèi)存中寫入

2.添加內(nèi)存管理信息

# vim /etc/cgconfig.conf

group poormem{

memory{

memory.limit_in_bytes=134217728;

}

}

3.# /etc/init.d/cgconfig restart

4.cd /mnt/tmpfs

(1)

<1>[root@desktop113 tmpfs]# cgexec -g memory:poormem dd if=/dev/zero of=test bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.0327344 s, 3.2 GB/s

<2>[root@desktop113 tmpfs]# free

total?????? used?????? free???? shared??? buffers???? cached

Mem:??????? 502272???? 273880???? 228392????????? 0?????? 8712???? 154364

-/+ buffers/cache:???? 110804???? 391468

Swap:?????? 835576????????? 0???? 835576

由于前面限制的內(nèi)存大小是100M,所以內(nèi)存夠用,沒有使用到交換分區(qū)

(2)

<1>[root@desktop113 tmpfs]# cgexec -g memory:poormem dd if=/dev/zero of=test bs=1M count=1000

dd: writing `test': No space left on device

246+0 records in

245+0 records out

257163264 bytes (257 MB) copied, 0.736284 s, 349 MB/s

<2>[root@desktop113 tmpfs]# free

total?????? used?????? free???? shared??? buffers???? cached

Mem:??????? 502272???? 302036???? 200236????????? 0?????? 8712???? 118248

-/+ buffers/cache:???? 175076???? 327196

Swap:?????? 835576???? 184856???? 650720

當(dāng)往內(nèi)存中寫入1G的數(shù)據(jù)時(shí)可以看到雖然內(nèi)存只使用了限制的大小,但是交換分區(qū)swap被使用了

5.繼續(xù)進(jìn)行限制,不允許使用交換分區(qū)大小

(1)# vim /etc/cgconfig.conf

group poormem{

memory{

memory.limit_in_bytes=134217728;

memory.memsw.limit_in_bytes=134217728;?? 物理內(nèi)存加交換分區(qū)大小

}

(2)# /etc/init.d/cgconfig restart

注意:必須退出cgroup目錄再進(jìn)行重啟,不然會(huì)有報(bào)錯(cuò)的

(3)[root@desktop113 tmpfs]# cgexec -g memory:poormem dd if=/dev/zero of=test bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.032748 s, 3.2 GB/s

當(dāng)寫入100M的數(shù)據(jù)時(shí),是在系統(tǒng)限制內(nèi)的,所以可以順利執(zhí)行

(4)[root@desktop113 tmpfs]# cgexec -g memory:poormem dd if=/dev/zero of=test bs=1M count=1000

Killed

當(dāng)寫入1G的數(shù)據(jù)時(shí),進(jìn)程是被拒絕的

(5)實(shí)驗(yàn)完畢后,可以卸載掉tmpfs

# umount /mnt/tmpfs/

四.freezer冷凍進(jìn)程管理

1.# vim /etc/cgconfig.conf

group stopit{

freezer{

}

}

# /etc/init.d/cgconfig restart

2.ps ax

1480 pts/0??? S+???? 0:00 top

3.將top添加到freezer的任務(wù)列表里

# echo 1480 > /cgroup/freezer/stopit/tasks

4.冷凍top進(jìn)程

# echo FROZEN > /cgroup/freezer/stopit/freezer.state

進(jìn)行刷新操作top命令無反應(yīng)

5.解凍top進(jìn)程

# echo THAWED > /cgroup/freezer/stopit/freezer.state

總結(jié)

以上是生活随笔為你收集整理的linux上cgconfig服务,linux系统调优-Cgroups的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。