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