linux查看docker使用率,Linux系统非Docker环境如何限制CPU使用率
微服務(wù)時代,有時候為了方便,經(jīng)常在一臺高配置服務(wù)器運行很多服務(wù),這個時候CPU資源搶占就成了一個非常頭痛的問題。閑時不會出現(xiàn)什么問題,比如一臺16核服務(wù)器,當某一個時刻某個微服出現(xiàn)高并發(fā)訪問時,此服務(wù)會搶占大量的CPU資源,從而影響了此服務(wù)器其他服務(wù)的正常訪問,比如下圖的情況:
docker容器在資源限制做的完善,kubernetes集群還可以通過資源使用率自動擴縮容,但是在非docker環(huán)境的時候,要實現(xiàn)CPU限制還是比較麻煩的,好在Linux有個命令可以做這樣的事情,它就是cpulimit,安裝也比較簡單。今天阿湯博客就簡單介紹一下cpulimit命令。
Ubuntu/Debian系統(tǒng):
apt-get?install?cpulimit?-y
RedHat/CentOS系統(tǒng):(先安裝好epel源)
yum?install?cpulimit?-y
cpulimit使用也非常簡單,看下幫助信息:
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%,以此類推,此值就一個絕對值。
- e參數(shù)可以根據(jù)進程路徑限制。
下面通過wrk壓測工具,對cpulimit命令做一下測試。
首先限制為200%:
cpulimit?-p?26546?-l?200
看下測試結(jié)果:
再限制為800%:
cpulimit?-p?26546?-l?800
看下測試結(jié)果:
實際壓測試過程中,該進程的CPU使用率可能會超過cpulimit的限制,但是不會超過太多,這是因為是cpu使用率在動態(tài)變動,cpulimit不能非常及時準確的調(diào)整,偶爾會超過一點限制。這也說明和docker的CPU限制有點區(qū)別。
總結(jié)
以上是生活随笔為你收集整理的linux查看docker使用率,Linux系统非Docker环境如何限制CPU使用率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言二元运算符大全,C语言运算符大全
- 下一篇: C语言百度翻译API的使用,c语言怎么翻