網(wǎng)站地圖 | 聯(lián)系我們
首 頁 產(chǎn)品中心 解決方案 成功案例 服務(wù)支持 新聞動態(tài) 關(guān)于我們 聯(lián)系我們
 新聞中心 NEWS
> 公司新聞
> 行業(yè)新聞
 產(chǎn)品搜索 SEARCH
 聯(lián)系方式 CONTACT
南京宇寬科技有限公司
電話:18021511005  王經(jīng)理
QQ:541933892
座機(jī):025-83605860*807
郵箱:18021511005#163.com  (#換@)
地址:南京市玄武區(qū)洪武北路188號長發(fā)數(shù)碼大廈12樓C座


 
當(dāng)前位置:首頁 > 新聞動態(tài) > 行業(yè)新聞 > 聯(lián)想 行業(yè)資訊 > 服務(wù)器性能指標(biāo)(一)負(fù)載分析及問題排查
服務(wù)器性能指標(biāo)(一)負(fù)載分析及問題排查
來源:聯(lián)想資訊    日期:2018-06-13    瀏覽量:        
分享到:

標(biāo)簽:聯(lián)想服務(wù)器,

    平常的工作中,在衡量服務(wù)器的性能時,經(jīng)常會涉及到幾個指標(biāo),load、cpu、mem、qps、rt等。每個指標(biāo)都有其獨(dú)特的意義,很多時候在線上出現(xiàn)問題時,往往會伴隨著某些指標(biāo)的異常。大部分情況下,在問題發(fā)生之前,某些指標(biāo)就會提前有異常顯示。

  對于這些指標(biāo)的理解和查看、異常解決等,是程序員們重要的必備技能。本文,主要來介紹一下一個比較重要的指標(biāo)——機(jī)器負(fù)載(Load),主要涉及負(fù)載的定義、查看負(fù)載方式、負(fù)載飆高排查思路等。

  

  什么是負(fù)載

  負(fù)載(load)是linux機(jī)器的一個重要指標(biāo),直觀了反應(yīng)了機(jī)器當(dāng)前的狀態(tài)。

  來看下負(fù)載的定義是怎樣的:

  In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs. The load average represents the average system load over a period of time. It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.(wikipedia)

  簡單解釋一下:在UNIX系統(tǒng)中,系統(tǒng)負(fù)載是對當(dāng)前CPU工作量的度量,被定義為特定時間間隔內(nèi)運(yùn)行隊列中的平均線程數(shù)。load average 表示機(jī)器一段時間內(nèi)的平均load。這個值越低越好。負(fù)載過高會導(dǎo)致機(jī)器無法處理其他請求及操作,甚至導(dǎo)致死機(jī)。

  Linux的負(fù)載高,主要是由于CPU使用、內(nèi)存使用、IO消耗三部分構(gòu)成。任意一項(xiàng)使用過多,都將導(dǎo)致服務(wù)器負(fù)載的急劇攀升。

  查看機(jī)器負(fù)載

  在Linux機(jī)器上,有多個命令都可以查看機(jī)器的負(fù)載信息。其中包括uptime、top、w等。

  uptime命令

  uptime命令能夠打印系統(tǒng)總共運(yùn)行了多長時間和系統(tǒng)的平均負(fù)載。uptime命令可以顯示的信息顯示依次為:現(xiàn)在時間、系統(tǒng)已經(jīng)運(yùn)行了多長時間、目前有多少登陸用戶、系統(tǒng)在過去的1分鐘、5分鐘和15分鐘內(nèi)的平均負(fù)載。

  ? ~ uptime 13:29 up 23:41, 3 users, load averages: 1.74 1.87 1.97

  這行信息的后半部分,顯示"load average",它的意思是"系統(tǒng)的平均負(fù)荷",里面有三個數(shù)字,我們可以從中判斷系統(tǒng)負(fù)荷是大還是小。

  1.74 1.87 1.97 這三個數(shù)字的意思分別是1分鐘、5分鐘、15分鐘內(nèi)系統(tǒng)的平均負(fù)荷。我們一般表示為load1、load5、load15。

  w命令

  w命令的主要功能其實(shí)是顯示目前登入系統(tǒng)的用戶信息。但是與who不同的是,w命令功能更加強(qiáng)大,w命令還可以顯示:當(dāng)前時間,系統(tǒng)啟動到現(xiàn)在的時間,登錄用戶的數(shù)目,系統(tǒng)在最近1分鐘、5分鐘和15分鐘的平均負(fù)載。然后是每個用戶的各項(xiàng)數(shù)據(jù),項(xiàng)目顯示順序如下:登錄帳號、終端名稱、遠(yuǎn) 程主機(jī)名、登錄時間、空閑時間、JCPU、PCPU、當(dāng)前正在運(yùn)行進(jìn)程的命令行。

  ? ~ w 14:08 up 23:41, 3 users, load averages: 1.74 1.87 1.97 USER TTY FROM LOGIN@ IDLE WHAT hollis console - 六14 23:40 - hollis s000 - 六14 20:24 -zsh hollis s001 - 六15 - w

  從上面的w命令的結(jié)果可以看到,當(dāng)前系統(tǒng)時間是14:08,系統(tǒng)啟動到現(xiàn)在經(jīng)歷了23小時41分鐘,共有3個用戶登錄。系統(tǒng)在近1分鐘、5分鐘和15分鐘的平均負(fù)載分別是1.74 1.87 1.97。這和uptime得到的結(jié)果相同。 下面還打印了一些登錄的用戶的各項(xiàng)數(shù)據(jù),不詳細(xì)介紹了。

  top命令

  top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。

  ? ~ top Processes: 244 total, 3 running, 9 stuck, 232 sleeping, 1484 threads 14:16:01 Load Avg: 1.74, 1.87, 1.97 CPU usage: 8.0% user, 6.79% sys, 85.19% idle SharedLibs: 116M resident, 16M data, 14M linkedit. MemRegions: 66523 total, 2152M resident, 50M private, 930M shared. PhysMem: 7819M used (1692M wired), 370M unused. VM: 682G vsize, 533M framework vsize, 6402060(0) swapins, 7234356(0) swapouts. Networks: packets: 383006/251M in, 334448/60M out. Disks: 1057821/38G read, 350852/40G written. PID COMMAND %CPU TIME #TH #WQ #PORT MEM PURG CMPRS PGRP PPID STATE BOOSTS %CPU_ME %CPU_OTHRS UID FAULTS COW MSGSENT MSGRECV SYSBSD SYSMACH CSW 30845 top 3.0 00:00.49 1/1 0 21 3632K 0B 0B 30845 1394 running *0[1] 0.00000 0.00000 0 3283+ 112 203556+ 101770+ 8212+ 119901+ 823+ 30842 Google Chrom 0.0 00:47.39 17 0 155 130M 0B 0B 1146 1146 sleeping *0[1] 0.00000 0.00000 501 173746 2697 117678 37821 364228 444830 310043

  上面的輸出結(jié)果中,Load Avg: 1.74, 1.87, 1.97顯示的就是負(fù)載信息。

  機(jī)器正常負(fù)載范圍

  對于機(jī)器的Load到底多少算正常的問題,一直都是很有爭議的,不同人有著不同的理解。對于單個CPU,有人認(rèn)為如果Load超過0.7就算是超出正常范圍了。也有人認(rèn)為只要不超過1都沒問題。也有人認(rèn)為,單個CPU的負(fù)載在2以下都可以接受。

  為什么會有這么多不同的理解呢,是因?yàn)椴煌臋C(jī)器除了CPU影響之外還有其他因素的影響,運(yùn)行的程序、機(jī)器內(nèi)存、甚至是機(jī)房溫度等都有可能有區(qū)別。

  比如,有些機(jī)器用于定時執(zhí)行大量的跑批任務(wù),這個時間段內(nèi),Load可能會飆的比較高。而其他時間可能會比較低。那么這段飆高時間我們要不要去排查問題呢?

  我的建議是,最好根據(jù)自己機(jī)器的實(shí)際情況,建立一個指標(biāo)的基線(如近一個月的平均值),只要日常的load在基線上下范圍內(nèi)不太大都可以接收,如果差距太多可能就要人為介入檢查了。

  但是,總要有個建議的閾值吧,關(guān)于這個值。阮一峰在自己的博客中有過以下建議:

  當(dāng)系統(tǒng)負(fù)荷持續(xù)大于0.7,你必須開始調(diào)查了,問題出在哪里,防止情況惡化。

  當(dāng)系統(tǒng)負(fù)荷持續(xù)大于1.0,你必須動手尋找解決辦法,把這個值降下來。

  當(dāng)系統(tǒng)負(fù)荷達(dá)到5.0,就表明你的系統(tǒng)有很嚴(yán)重的問題,長時間沒有響應(yīng),或者接近死機(jī)了。你不應(yīng)該讓系統(tǒng)達(dá)到這個值。

  以上指標(biāo)都是基于單CPU的,但是現(xiàn)在很多電腦都是多核的。所以,對一般的系統(tǒng)來說,是根據(jù)cpu數(shù)量去判斷系統(tǒng)是否已經(jīng)過載(Over Load)的。如果我們認(rèn)為0.7算是單核機(jī)器負(fù)載的安全線的話,那么四核機(jī)器的負(fù)載最好保持在3(4*0.7 = 2.8)以下。

  還有一點(diǎn)需要提一下,在Load Avg的指標(biāo)中,有三個值,1分鐘系統(tǒng)負(fù)荷、5分鐘系統(tǒng)負(fù)荷,15分鐘系統(tǒng)負(fù)荷。我們在排查問題的時候也是可以參考這三個值的。

  一般情況下,1分鐘系統(tǒng)負(fù)荷表示最近的暫時現(xiàn)象。15分鐘系統(tǒng)負(fù)荷表示是持續(xù)現(xiàn)象,并非暫時問題。如果load15較高,而load1較低,可以認(rèn)為情況有所好轉(zhuǎn)。反之,情況可能在惡化。

  如何降低負(fù)載

  導(dǎo)致負(fù)載高的原因可能很復(fù)雜,有可能是硬件問題也可能是軟件問題。

  如果是硬件問題,那么說明機(jī)器性能確實(shí)就不行了,那么解決起來很簡單,直接換機(jī)器就可以了。

  前面我們提過,CPU使用、內(nèi)存使用、IO消耗都可能導(dǎo)致負(fù)載高。如果是軟件問題,有可能由于Java中的某些線程被長時間占用、大量內(nèi)存持續(xù)占用等導(dǎo)致。建議從以下幾個方面排查代碼問題:

  1、是否有內(nèi)存泄露導(dǎo)致頻繁GC

  2、是否有死鎖發(fā)生

  3、是否有大字段的讀寫

  4、會不會是數(shù)據(jù)庫操作導(dǎo)致的,排查SQL語句問題。

  這里還有個建議,如果發(fā)現(xiàn)線上機(jī)器Load飆高,可以考慮先把堆棧內(nèi)存dump下來后,進(jìn)行重啟,暫時解決問題,然后再考慮回滾和排查問題。

  Java Web應(yīng)用Load飆高排查思路

  1、使用uptime查看當(dāng)前l(fā)oad,發(fā)現(xiàn)load飆高。

  ? ~ uptime 13:29 up 23:41, 3 users, load averages: 10 10 10

  2、使用top命令,查看占用CPU較高的進(jìn)程ID。

  ? ~ top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1893 admin 20 0 7127m 2.6g 38m S 181.7 32.6 10:20.26 java

  發(fā)現(xiàn)PID為1893的進(jìn)程占用CPU 181%。而且是一個Java進(jìn)程,基本斷定是軟件問題。

  3、使用 top命令,查看具體是哪個線程占用率較高

  ? ~ top -Hp 1893 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4519 admin 20 0 7127m 2.6g 38m R 18.6 32.6 0:40.11 java

  4、使用printf命令查看這個線程的16進(jìn)制

  ? ~ printf %x 4519 11a7

  5、使用jstack命令查看當(dāng)前線程正在執(zhí)行的方法。(Java命令學(xué)習(xí)系列(二)——Jstack)

  ? ~ jstack 1893 |grep -A 200 11a7 "thread-5" #500 daemon prio=10 os_prio=0 tid=0x00007f632314a800 nid=0x11a2 runnable [0x000000005442a000] java.lang.Thread.State: RUNNABLE at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:684) at sun.misc.URLClassPath.findResource(URLClassPath.java:188) at java.net.URLClassLoader$2.run(URLClassLoader.java:569) at java.net.URLClassLoader$2.run(URLClassLoader.java:567) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findResource(URLClassLoader.java:566) at org.hibernate.validator.internal.xml.ValidationXmlParser.getInputStreamForPath(ValidationXmlParser.java:248) at com.hollis.test.util.BeanValidator.validate(BeanValidator.java:30)

  從上面的線程的棧日志中,可以發(fā)現(xiàn),當(dāng)前占用CPU較高的線程正在執(zhí)行我代碼的com.hollis.test.util.BeanValidator.validate(BeanValidator.java:30) 類。那么就可以去排查這個類是否用法有問題了。

  6、還可以使用jstat(Java命令學(xué)習(xí)系列(四)——jstat)來查看GC情況,看看是否有頻繁FGC,然后再使用jmap(Java命令學(xué)習(xí)系列(三)——Jmap)來dump內(nèi)存,查看是否存在內(nèi)存泄露。

[打印本文] [關(guān)閉窗口] [返回頂部]
   上一篇:2018服務(wù)器價格指導(dǎo) 6月單路塔式服務(wù)器選購
   下一篇:2018服務(wù)器價格指導(dǎo) 6月雙路機(jī)架產(chǎn)品導(dǎo)購

相關(guān)資料  
> 聯(lián)想重回《財富》全球最受贊賞公司榜單 成中國大陸唯一入選ICT企
> 什么才是真正的數(shù)字化轉(zhuǎn)型?
> 15萬小時MTBF認(rèn)證 | 聯(lián)想服務(wù)器可靠性穩(wěn)居全球第一!
> 保證關(guān)鍵醫(yī)療系統(tǒng)全天候運(yùn)行?聯(lián)想超融合無懼挑戰(zhàn)!
> 釋放數(shù)據(jù)與AI原力,聯(lián)想獲評“中國大數(shù)據(jù)與智能計算領(lǐng)軍企業(yè)”
> 斬獲129項(xiàng)世界紀(jì)錄 聯(lián)想服務(wù)器如何為企業(yè)護(hù)航?
> 越海揚(yáng)波HPC應(yīng)用交流會內(nèi)蒙古專場成功召開
> 2018年度IT168技術(shù)卓越獎名單:服務(wù)器類
> 部署關(guān)鍵業(yè)務(wù)的理想平臺 H3C UniServer R6900 G3服務(wù)器
> AI并非“一策萬能”:英特爾人工智能大會公布多方面AI進(jìn)展
> 華碩逆襲上位五榜奪冠 聯(lián)想實(shí)力維穩(wěn)
> 高性能+高擴(kuò)展 H3C UniServer G3服務(wù)器帶來全新計算體驗(yàn)
> 2018服務(wù)器價格指導(dǎo) 9月雙路塔式服務(wù)器選購
> 2018服務(wù)器價格指導(dǎo) 9月雙路機(jī)架產(chǎn)品導(dǎo)購
> 2018 Q2全球服務(wù)器市場,浪潮服務(wù)器位居中國第一全球第三
> 研發(fā)實(shí)力+方案經(jīng)驗(yàn) 聯(lián)想智慧城市從3.0時代開始
公司信息
 > 公司簡介
 > 企業(yè)文化
 > 榮譽(yù)證書
 
產(chǎn)品展示
> 聯(lián)想 全系列產(chǎn)品
> IBM 全系列產(chǎn)品
> DELL 全系列產(chǎn)品
> HP 全系列產(chǎn)品
> 深信服 全系列產(chǎn)品
> 華為 全系列產(chǎn)品
 
解決方案
 >聯(lián)想桌面云一體化解決方案
 >ThinkCloud OpenStack 云平臺
 
技術(shù)服務(wù)
 >資料下載
 >常見問題解答
 >技術(shù)知識庫
行業(yè)資訊
 >DELL 行業(yè)資訊
 >華為 行業(yè)資訊
 >IBM 行業(yè)資訊
 >聯(lián)想 行業(yè)資訊
 >HP 行業(yè)資訊
 >深信服 行業(yè)資訊
版權(quán)所有:南京宇寬科技有限公司
久久婷婷综合色丁香五月,人妻无码久久中文字幕专区,青青热久免费精品视频在线播放,亚洲爆乳少妇无码激情,亚洲熟妇久久精品,欧美成人在线视频,国产大学生高潮动态,久久99精品久久久影院老司机,久久亚洲第一网站av,国内精品视频一区二区三区
国产成 人 网 站 免费 在 | 国产真人无遮挡免费视频| 开心五月激情综合婷婷| 亚洲无线码在线一区观看| 激情亚洲一区国产精品| 男女做爽爽爽网站| 日韩亚洲精品久久无码| VA天堂ⅤA在线VA无码| 人妻少妇精品无码专区动漫| 亚洲的天堂AV无码| 人妻少妇精品无码专区动漫| 538国产精品一区二区在线| 国产亚洲欧美成人网站在线观看 | 国产又大又粗又猛又爽的视频| 国产a免费观看| 天天做天天爱夜夜夜爽毛片| 日韩成人免费一级毛片| 精品成人一区二区三区四区| 最新亚洲一区二区三区四区| A国产成人免费视频| 成人免费无码大片a毛片抽搐| 国产美女遭强被高潮网站| 亚洲精品无码久久久影院相关影片| 无遮挡粉嫩小泬久久久久久久| 国产av国片精品jk制服丝袜| 一本久久a久久精品vr综合| 国产精品无码一区二区牛牛| 亚洲精品乱码久久久久久自慰| 人妻制服丝袜无码中文字幕| 337P日本欧洲亚洲大胆在线| 精品久久久久中文字幕一区| 狠狠精品干练久久久无码中文字幕 | 一级有奶水毛片免费看| 亚洲精品综合在线影院| 久草视频在线免费播放| 国产呦交精品免费视频| 国产99久久精品一区二区| 免费黄色高清无码| 青青草99久久精品国产综合| 91色综合综合热五月激情| 国产白浆视频在线播放|