linux查看docker使用率,Linux系统非Docker环境如何限制CPU使用率
微服務(wù)時(shí)代,有時(shí)候?yàn)榱朔奖?#xff0c;經(jīng)常在一臺(tái)高配置服務(wù)器運(yùn)行很多服務(wù),這個(gè)時(shí)候CPU資源搶占就成了一個(gè)非常頭痛的問題。閑時(shí)不會(huì)出現(xiàn)什么問題,比如一臺(tái)16核服務(wù)器,當(dāng)某一個(gè)時(shí)刻某個(gè)微服出現(xiàn)高并發(fā)訪問時(shí),此服務(wù)會(huì)搶占大量的CPU資源,從而影響了此服務(wù)器其他服務(wù)的正常訪問,比如下圖的情況:
docker容器在資源限制做的完善,kubernetes集群還可以通過資源使用率自動(dòng)擴(kuò)縮容,但是在非docker環(huán)境的時(shí)候,要實(shí)現(xiàn)CPU限制還是比較麻煩的,好在Linux有個(gè)命令可以做這樣的事情,它就是cpulimit,安裝也比較簡(jiǎn)單。今天阿湯博客就簡(jiǎn)單介紹一下cpulimit命令。
Ubuntu/Debian系統(tǒng):
apt-get?install?cpulimit?-y
RedHat/CentOS系統(tǒng):(先安裝好epel源)
yum?install?cpulimit?-y
cpulimit使用也非常簡(jiǎn)單,看下幫助信息:
Usage:?cpulimit?[OPTIONS...]?TARGET
OPTIONS
-l,?--limit=N??????????percentage?of?cpu?allowed?from?0?to?1600?(required)
-v,?--verbose??????????show?control?statistics
-z,?--lazy?????????????exit?if?there?is?no?target?process,?or?if?it?dies
-i,?--include-children?limit?also?the?children?processes
-h,?--help?????????????display?this?help?and?exit
TARGET?must?be?exactly?one?of?these:
-p,?--pid=N????????????pid?of?the?process?(implies?-z)
-e,?--exe=FILE?????????name?of?the?executable?program?file?or?path?name
COMMAND?[ARGS]?????????run?this?command?and?limit?it?(implies?-z)
主要說明下- l參數(shù),單核cpu的使用率范圍為0%-100%,4核CPU的使用率范圍為0%-400%,16核CPU的使用率范圍為0%-1600%,以此類推,此值就一個(gè)絕對(duì)值。
- e參數(shù)可以根據(jù)進(jìn)程路徑限制。
下面通過wrk壓測(cè)工具,對(duì)cpulimit命令做一下測(cè)試。
首先限制為200%:
cpulimit?-p?26546?-l?200
看下測(cè)試結(jié)果:
再限制為800%:
cpulimit?-p?26546?-l?800
看下測(cè)試結(jié)果:
實(shí)際壓測(cè)試過程中,該進(jìn)程的CPU使用率可能會(huì)超過cpulimit的限制,但是不會(huì)超過太多,這是因?yàn)槭莄pu使用率在動(dòng)態(tài)變動(dòng),cpulimit不能非常及時(shí)準(zhǔn)確的調(diào)整,偶爾會(huì)超過一點(diǎn)限制。這也說明和docker的CPU限制有點(diǎn)區(qū)別。
總結(jié)
以上是生活随笔為你收集整理的linux查看docker使用率,Linux系统非Docker环境如何限制CPU使用率的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言二元运算符大全,C语言运算符大全
- 下一篇: C语言百度翻译API的使用,c语言怎么翻