日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
聊聊Top命令使用技巧,拿捏住~

目錄

  • 線上系統(tǒng)是如何運(yùn)行的?
  • CPU 是如何并發(fā)運(yùn)行多個(gè)線程的?
  • 線程太多會導(dǎo)致什么樣的后果?
  • 經(jīng)常聽說的 CPU 使用率和負(fù)載到底是什么?
  • 如何通過 top 命令來查看 CPU 使用率和負(fù)載?

今天給大家分享一個(gè)知識點(diǎn),就是平時(shí)我們線上服務(wù)器部署的 Java 系統(tǒng)如果發(fā)現(xiàn)要是性能不太好,此時(shí)應(yīng)該如何登錄到線上服務(wù)器,接著用 top 命令去分析線上系統(tǒng)的性能呢?下面我們就來一步一步給大家講解一下 top 命令的使用技巧。

線上系統(tǒng)是如何運(yùn)行的?

首先,在講解 top 命令的使用技巧之前,我們先得給大家鋪墊一些基礎(chǔ)的知識,就是關(guān)于線上系統(tǒng)在服務(wù)器上運(yùn)行的時(shí)候,他會需要使用哪些資源,或者換句話說,他會需要使用到服務(wù)器的哪些硬件呢?

首當(dāng)其中的,大家必須知道一個(gè)事兒,就是我們線上運(yùn)行的系統(tǒng),他的本質(zhì)其實(shí)就是一個(gè) Linux 進(jìn)程,也就就是 JVM 進(jìn)程,這個(gè) JVM 進(jìn)程實(shí)際上會開啟多個(gè)線程,每個(gè)線程都會交給 CPU 來運(yùn)行。

這個(gè) CPU 就是我們很關(guān)鍵的一個(gè)硬件,CPU 在運(yùn)行我們的線程的同時(shí),當(dāng)然也會運(yùn)行線程負(fù)責(zé)執(zhí)行的那部分代碼了。

如下圖:

CPU 是如何并發(fā)運(yùn)行多個(gè)線程的?

但是單單是這個(gè) CPU 運(yùn)行多個(gè)線程的事兒就有的一說,可能很多人不知道的是,現(xiàn)代服務(wù)器都是有多個(gè) CPU 的,或者說一個(gè) CPU 是有多個(gè)核的。

所以說,我們要搞清楚,一個(gè) CPU 是有多個(gè) cores 的,所以你的一個(gè) cpu core 并發(fā)運(yùn)行多個(gè)線程,以及多個(gè) cpu core 同時(shí)運(yùn)行多個(gè)線程,是不太一樣的。

這個(gè)一個(gè) cpu core 并發(fā)運(yùn)行多個(gè)線程,實(shí)際上他不是說同時(shí)運(yùn)行多個(gè)線程,而是快速的切換運(yùn)行每一個(gè)線程,什么意思呢?

就是說,你這個(gè) cpu core 會先運(yùn)行一下線程 A,執(zhí)行一小會兒他的代碼,再立刻切換去運(yùn)行線程 B,運(yùn)行一小會兒他的代碼再快速的切換過去運(yùn)行線程 C。

他只不過是切換的速度非??欤屇阌幸环N錯(cuò)覺,一個(gè) cpu core 可以同時(shí)運(yùn)行多個(gè)線程一樣,其實(shí)并不是。

如下圖:

那如果是有多個(gè) cpu core 呢?這個(gè)時(shí)候其實(shí)每個(gè) cpu core 都可以運(yùn)行一個(gè)線程了,如果你有多個(gè) cpu core 同時(shí)運(yùn)行多個(gè)線程,那就是真正的同時(shí)了,因?yàn)槊總€(gè) cpu core 都可以自己獨(dú)立運(yùn)行一個(gè)線程的代碼。

如下圖:

線程太多會導(dǎo)致什么樣的后果?

所以說,很多時(shí)候,其實(shí)并不是說線程越多越好的,很多兄弟往往對線上系統(tǒng)會犯一個(gè)錯(cuò)誤,那就是以為讓系統(tǒng)同時(shí)運(yùn)行幾百幾千個(gè)線程,就可以高并發(fā)的處理請求了。

其實(shí)根本不是,如果你要是線程太多了,會導(dǎo)致每個(gè) cpu core 要頻繁的切換來切換去的運(yùn)行 n 多線程。

每次線程切換都是有時(shí)間開銷的,如果線程太多了,反而會導(dǎo)致每個(gè)線程被運(yùn)行了一小會兒以后,接著要過一段時(shí)間才能被再次運(yùn)行,為什么?因?yàn)榫€程太多了啊,cpu core 要給每個(gè)線程都運(yùn)行一下,雨露均沾。

如下圖:

上面這個(gè)圖就很明顯,你一個(gè)請求來了,是交給一個(gè)線程來處理的,這個(gè)線程剛得到 cpu 運(yùn)行機(jī)會,跑了一小會兒沒處理完請求呢,人家切換去執(zhí)行別的線程了,而且還得運(yùn)行很多別的線程,最后才能切換回來運(yùn)行你這個(gè)線程,那你一個(gè)請求運(yùn)行是不是要等挺久才能跑完的?

所以說,一般我們的經(jīng)驗(yàn)是,線上業(yè)務(wù)系統(tǒng)連接 MySQL 數(shù)據(jù)庫的這種情況,往往 4 個(gè) cpu core 的機(jī)器,開啟 200 個(gè)業(yè)務(wù)線程處理請求,大概每秒處理 1000 左右的線程,就差不多了,因?yàn)槟阋钦埱笤俣啵€程再多,4 個(gè) cpu core 就忙不過來了。

經(jīng)常聽說的 CPU 使用率和負(fù)載到底是什么?

所以這里給大家再引入一個(gè)概念,就是 CPU 使用率和負(fù)載,CPU 使用率這個(gè)大家很好理解,CPU 使用率越高,就說明 CPU 幾乎沒閑著,一直在拼命的運(yùn)轉(zhuǎn)。

負(fù)載也是同理,負(fù)載越高,說明 CPU 越是繁忙,如果要是 CPU 使用率和負(fù)載過于高,尤其是使用率,超過 90% 的時(shí)候,往往說明你的系統(tǒng)負(fù)載壓力就太大了,這個(gè)時(shí)候你的性能是會下降的。

因?yàn)槟闳魏我粋€(gè)請求過來,繁忙的 CPU 要干好多好多事情,他可能留給你這個(gè)請求的處理機(jī)會就比較少,導(dǎo)致你這個(gè)請求就得等待一段時(shí)間才能處理完畢,所以系統(tǒng)性能也就必然會下降了。

如下圖:

如何通過 top 命令來查看 CPU 使用率和負(fù)載?

因此如果線上服務(wù)器運(yùn)行的系統(tǒng)性能不好的時(shí)候,往往我們第一步就是可以登錄到線上服務(wù)器去通過 top 命令看一看當(dāng)前服務(wù)器的 CPU 使用率和負(fù)載是不是過高了。

如果過高了,那么說明你當(dāng)前系統(tǒng)壓力過大,CPU 過于繁忙,導(dǎo)致請求過來以后運(yùn)行的比較慢,性能自然就下來了。

當(dāng)然,如果你們公司要是有可視化監(jiān)控系統(tǒng),直接就可以看到線上服務(wù)器的 CPU 負(fù)載和使用率,那也是沒問題的,接著一起來看看 top 命令吧。

這里我用自己的 mac 電腦執(zhí)行了 top 命令,會得到如下的截圖:

咱們一起來看一看這個(gè) top 命令的輸出結(jié)果里都有什么,東西很多,但是我們挑選重要的東西來看就行了,剛開始他輸出的 Processes 是說當(dāng)前機(jī)器上的進(jìn)程情況。

這里會有在運(yùn)行中的進(jìn)程數(shù)量,以及在休眠中的進(jìn)程,還有你的進(jìn)程開啟的線程總數(shù)量,比如我的電腦里有 387 個(gè)進(jìn)程,就 2 個(gè)在運(yùn)行,385 個(gè)都是在休眠,一共有 3834 個(gè)線程。

接著 Load Avg 和 CPU Usage 是比較重要的,我們可以重點(diǎn)看 CPU Usage 就可以了。

他意思就是說我們的 CPU 使用率,這個(gè)使用率一般是應(yīng)該在最高在 80% 左右,如果到 90% 以上,甚至超過 100%,那就很危險(xiǎn)了,像我的電腦負(fù)載很低,使用率就 1%~2%,空閑率在 90% 多。

接著 PhysMem 說的是服務(wù)器的內(nèi)存被使用了多少 GB,NetWorks 說的是通過網(wǎng)絡(luò)輸入和輸出的數(shù)據(jù)量,Disks 說的是對磁盤文件寫入和讀取的數(shù)據(jù)量有多少,然后下面還有當(dāng)前運(yùn)行的主要進(jìn)程列表,每個(gè)進(jìn)程對 CPU 等資源的消耗都有顯示。

好了,今天的知識點(diǎn)就到這里了,重點(diǎn)是給大家講解了 CPU 對系統(tǒng)性能的影響,以及如何通過 top 命令查看服務(wù)器的 CPU 使用率和負(fù)載情況。


網(wǎng)頁名稱:聊聊Top命令使用技巧,拿捏住~
網(wǎng)址分享:http://www.5511xx.com/article/dpgjdoe.html