小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

10分鐘教會你看懂top

 張宏韜 2021-04-22

來自:掘金,作者:Z.L41753

圖片

后端們最怕的事情之一就是服務(wù)器的負載突然飆升,這可能又意味著一個個奪目Call馬上要打過來了。碰到這種情況怎么辦,大家第一反應(yīng)一定是登陸到服務(wù)器上,先敲一個top命令看看Load Average吧。今天這篇文章和大家說說怎么看這個“Load Average”。
>>>>

Load Average

圖片

很多人說Load Average這一個指標就能說明系統(tǒng)負載高了,這句話是對的。那么具體是哪里壓力大了呢?這三個數(shù)值是怎么計算出來的呢?可能很多人一下子都說不上來。

先來說說定義吧:在一段時間內(nèi),CPU正在處理以及等待CPU處理的進程數(shù)之和。三個數(shù)字分別代表了1分鐘,5分鐘,15分鐘的統(tǒng)計值。

所以,這個數(shù)值的確能反應(yīng)服務(wù)器的負載情況。但是,這個數(shù)值高了也并不能直接代表這臺機器的性能有問題??赡苁且驗檎谶M行CPU密集型的計算,也有可能是因為I/O問題導(dǎo)致運行隊列堵了。所以,當我們看到這個數(shù)值飆升的時候,還得具體問題具體分析。直接升級機器是簡單粗暴,但是治標不治本。

top命令一行一行看

top命令輸出了很多參數(shù),真正的服務(wù)器負載情況我們要綜合其他參數(shù)一起看。

第一行:

top - 20:41:08 up 18 days,  5:24,  2 users,  load average: 0.04, 0.03, 0.05
top:當前時間up:機器運行了多少時間users:當前有多少用戶load average:分別是過去1分鐘,5分鐘,15分鐘的負載

具體需要關(guān)注的果然還是load average這三個數(shù)值。大家都知道,一個CPU在一個時間片里面只能運行一個進程,CPU核數(shù)的多少直接影響到這臺機器在同時間能運行的進程數(shù)。所以一般來說Load Average的數(shù)值別超過這臺機器的總核數(shù),就基本沒啥問題。

第二行:
Tasks: 216 total,   1 running, 215 sleeping,   0 stopped,   0 zombie
Tasks:當前有多少進程running:正在運行的進程sleeping:正在休眠的進程stopped:停止的進程zombie:僵尸進程
running越多,服務(wù)器自然壓力越大。
第三行:
%Cpu(s):  0.2 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
us: 用戶進程占CPU的使用率sy: 系統(tǒng)進程占CPU的使用率ni: 用戶進程空間改變過優(yōu)先級id: 空閑CPU占用率wa: 等待輸入輸出的CPU時間百分比hi: 硬件的中斷請求si: 軟件的中斷請求st: steal time

這一行代表了CPU的使用情況,us長期過高,表明用戶進程占用了大量的CPU時間。us sy如果長期超過80或者90,可能就代表了CPU性能不足,需要加CPU了。

第四行&第五行
KiB Mem : 65810456 total, 30324416 free,  9862224 used, 25623816 buff/cacheKiB Swap:  7999484 total,  7999484 free,        0 used. 54807988 avail Mem
total:內(nèi)存總量free:空閑內(nèi)存used:使用的buffer/cache:寫緩存/讀緩存
第四第五行分別是內(nèi)存信息和swap信息。所有程序的運行都是在內(nèi)存中進行的,所以內(nèi)存的性能對與服務(wù)器來說非常重要。不過當內(nèi)存的free變少的時候,其實我們并不需要太緊張。真正需要看的是Swap中的used信息。Swap分區(qū)是由硬盤提供的交換區(qū),當物理內(nèi)存不夠用的時候,操作系統(tǒng)才會把暫時不用的數(shù)據(jù)放到Swap中。所以當這個數(shù)值變高的時候,說明內(nèi)存是真的不夠用了。

第五行往下
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME  COMMAND                                                                                                                                                                  19868 root      20   0 19.733g 369980  15180 S   0.7  0.6 129:53.91 java                                                                                                                                                                     19682 root      20   0 19.859g 5.766g  22252 S   0.3  9.2 139:42.81 java                                                                                                                                                                     54625 100       20   0   50868  33512   4104 S   0.3  0.1   0:04.68 fluentd                                                                               
PID:進程idUSER:進程所有者PR:優(yōu)先級。數(shù)值越大優(yōu)先級越高NI:nice值,負值表示高優(yōu)先級,正值表示低優(yōu)先級VIRT:進程使用的虛擬內(nèi)存總量SWAP:進程使用的虛擬內(nèi)存中被換出的大小RES:進程使用的、未被換出的物理內(nèi)存大小SHR:共享內(nèi)存大小SHR:共享內(nèi)存大小S:進程狀態(tài)。D表示不可中斷的睡眠狀態(tài);R表示運行;S表示睡眠;T表示跟蹤/停止;Z表示僵尸進程。%CPU:上次更新到現(xiàn)在的CPU占用百分比 ;%MEM:進程使用的物理內(nèi)存百分比 ;TIME :進程使用的CPU時間總計,單位1/100秒;COMMAND:命令名/命令行

這些就是進程信息了,從這里可以看到哪些進程占用系統(tǒng)資源的概況。

其他命令

top當然是我們最常見的查看系統(tǒng)狀況的命令。其他命令還有很多。vmstat,w,uptime ,iostat這些都是常用的命令。

綜上

看懂這些具體參數(shù)以后,就知道自己的代碼到底哪方面需要改進了,是優(yōu)化內(nèi)存消耗,還是優(yōu)化你的代碼邏輯,當然無腦堆機器也可以,只要你說服的了老板!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多