系統(tǒng)內(nèi)核與應(yīng)用存儲(chǔ)共用 CPU 竟會(huì)導(dǎo)致性能瓶頸
說到底,"上下文切換"就跟我們平常聽到的高科技名詞沒什么兩樣,只不過說的是電腦怎么在完成各種任務(wù)中轉(zhuǎn)換跑道罷了。打個(gè)比方,假如電腦是你的辦公區(qū),那么CPU就是那個(gè)忙得焦頭爛額的秘書,永遠(yuǎn)在接電話、處理文件,甚至是多個(gè)任務(wù)一起趕工。每次任務(wù)間的切換,就好比秘書要記錄當(dāng)前工作內(nèi)容然后迅速切換到下一個(gè)任務(wù),和我們平時(shí)換工作一樣,雖然快如閃電,但是頻繁出現(xiàn)這樣的情況肯定會(huì)耗費(fèi)很多精力和資源!
上下文切換為何影響性能?
老是換各種東西,只會(huì)讓做菜的速度慢下來。比方說,CPU得保存和恢復(fù)很多信息,像寄存器啦、內(nèi)核棧啦、虛擬內(nèi)存什么的,這樣下去,搞計(jì)算機(jī)的時(shí)間就少了。搞得整個(gè)電腦變得超級(jí)卡,還沒反應(yīng)過來,這用起來可是不爽!
如何監(jiān)控上下文切換?
想要看看操作系統(tǒng)的上下文切換咋樣?別慌,我們有個(gè)超牛逼的Linux命令可以用——top命令。這個(gè)命令就能實(shí)時(shí)給你展示出系統(tǒng)里哪些進(jìn)程在占用啥資源,比如他們吃了多少CPU還有多少內(nèi)存這種事。看一眼這個(gè)命令輸出的結(jié)果,咱就能很快找到誰吃得多,然后再進(jìn)一步看是為啥。
mpstat命令的作用
大家都知道,mpstat這個(gè)小工具能告訴你進(jìn)程之間的各種關(guān)系。它能看到CPU的使用情況,不只看用戶態(tài),還看內(nèi)核態(tài)的比例。用好了這個(gè),就能幫你更仔細(xì)地看待CPU在各種狀態(tài)下是如何使用的,對(duì)研究上下文切換很有用!
pidstat命令的妙用
那個(gè)叫pidstat的功能很厲害,能看到我們電腦里某個(gè)程序正在用多少CPU速度、內(nèi)存、線程還有硬盤讀取數(shù)據(jù)的速度,甚至還可以看出CPU進(jìn)入內(nèi)核模式的時(shí)間。如果你發(fā)現(xiàn)某個(gè)程序的切換次數(shù)怪多,那可能就是因?yàn)檫@個(gè)程序讓CPU用得太快,花在等待的時(shí)間太多。這種情況下我們就得去查查究竟哪兒出問題了,然后努力優(yōu)化一下。
vmstat命令的全面監(jiān)控
你們知道那個(gè)叫vmstat的小東西嗎?這個(gè)小工具真的很厲害,可以看到很多有用數(shù)據(jù),比如虛擬內(nèi)存,進(jìn)程,還有CPU的活動(dòng)情況等等。我們只要輸入:“vmstat15”就行了,“1”代表每次刷新間隔的時(shí)間,單位是秒;“5”代表要刷新的次數(shù)。這樣做的話就能在短時(shí)間內(nèi)迅速掌握系統(tǒng)運(yùn)行狀況了,有問題也能馬上找到!
iostat命令的IO監(jiān)控
iostat這個(gè)小工具有用!它幫你看看設(shè)備的CPU數(shù)據(jù)和進(jìn)進(jìn)出出的統(tǒng)計(jì),讓你對(duì)系統(tǒng)里每個(gè)設(shè)備的訪問情況心里有數(shù),特別是存儲(chǔ)設(shè)備的操作,方便優(yōu)化~
dstat命令的多功能性
dstat真是個(gè)牛逼的監(jiān)控工具,用它能把vmstat、iostat這些都替換掉!它還有彩色界面,看起來一目了然,更方便你挑出問題。所以,用dstat這個(gè)神奇的命令來看看咱們電腦到底用了哪些東西,找到問題就輕而易舉~
sar命令的全面統(tǒng)計(jì)
sar這個(gè)小玩意兒能幫你弄明白服務(wù)器的瑣碎事,比如CPU啊、內(nèi)存啊、磁盤讀寫這些事兒。用了它,你就能追蹤系統(tǒng)的使用情況,這對(duì)觀察長時(shí)間的表現(xiàn)和提高效率是非常實(shí)用滴。
總結(jié)與思考
說到底,雖然上下文切換有點(diǎn)煩人,但是只要用心監(jiān)控和調(diào)整好,就能最大程度地降低它對(duì)性能的不良影響。你碰到過因?yàn)檫@個(gè)問題而讓系統(tǒng)運(yùn)行變慢的情況嗎?那你又是怎么搞定它的?快來評(píng)論區(qū)聊聊你的妙招唄。當(dāng)然了,別忘了給這篇文章點(diǎn)個(gè)贊并分享出去,讓更多人都能學(xué)到上下文切換的小知識(shí)!
作者:小藍(lán)
鏈接:http://www.huanchou.cn/content/473.html
本站部分內(nèi)容和圖片來源網(wǎng)絡(luò),不代表本站觀點(diǎn),如有侵權(quán),可聯(lián)系我方刪除。