服務(wù)器的負(fù)載及問(wèn)題排查方法是什么

這篇“服務(wù)器的負(fù)載及問(wèn)題排查方法是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“服務(wù)器的負(fù)載及問(wèn)題排查方法是什么”文章吧。

成都創(chuàng)新互聯(lián)公司成立與2013年,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元盤(pán)山做網(wǎng)站,已為上家服務(wù),為盤(pán)山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):13518219792

什么是負(fù)載

隨著 Internet 的快速發(fā)展和業(yè)務(wù)量的不斷提高,基于網(wǎng)絡(luò)的數(shù)據(jù)訪問(wèn)流量迅速增長(zhǎng),特別是對(duì)數(shù)據(jù)  中心、大型企業(yè)以及門(mén)戶(hù)網(wǎng)站等的訪問(wèn),其訪問(wèn)流量甚至達(dá)到了 10Gb/s 的級(jí)別;同時(shí),服務(wù)器網(wǎng) 站借助 HTTP、FTP、SMTP  等應(yīng)用程序,為訪問(wèn)者提供了越來(lái)越豐富的內(nèi)容和信息,服務(wù)器逐漸 被數(shù)據(jù)淹沒(méi);另外,大部分網(wǎng)站(尤其電子商務(wù)等網(wǎng)站)都需要提供不間斷 24 小時(shí)服務(wù),任何服  務(wù)中斷或通信中的關(guān)鍵數(shù)據(jù)丟失都會(huì)造成直接的商業(yè)損失。所有這些都對(duì)應(yīng)用服務(wù)提出了高性能和 高可靠性的需求,這些海量的訪問(wèn)數(shù)據(jù)均是負(fù)載。

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

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

uptime命令

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

? ~uptime13:29 up23:41, 3users,loadaverages: 1.741.871.97

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

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

w命令

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

? ~w14:08 up23:41, 3users,loadaverages: 1.741.871.97USER TTY FROM LOGIN@ IDLE WHAThollis console - 六14 23:40-hollis s000 - 六14 20:24-zshhollis s001 - 六15 - w

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

top命令

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

? ~topProcesses:244total,3running,9stuck,232sleeping,1484threads14:16:01LoadAvg:1.74,1.87,1.97 CPUusage:8.0%user,6.79%sys,85.19%idle SharedLibs:116Mresident,16Mdata,14Mlinkedit.MemRegions:66523total,2152Mresident,50Mprivate,930Mshared.PhysMem:7819Mused(1692M wired),370Munused.VM:682Gvsize,533Mframeworkvsize,6402060(0)swapins,7234356(0)swapouts.Networks:packets:383006/251Min,334448/60Mout.Disks:1057821/38Gread,350852/40Gwritten.PID COMMAND %CPUTIME #TH #WQ #PORTMEM PURG CMPRS PGRP PPID STATE BOOSTS %CPU_ME%CPU_OTHRSUID FAULTS COW MSGSENT MSGRECV SYSBSD SYSMACH CSW30845 top 3.0 00:00.491/1 0 21 3632K 0B 0B 308451394 running *0[1] 0.000000.00000 0 3283+ 112 203556+ 101770+ 8212+ 119901+ 823+30842 GoogleChrom0.0 00:47.3917 0 155 130M 0B 0B 1146 1146 sleeping*0[1] 0.000000.00000 501 173746 2697 117678 37821 364228 444830 310043

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

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

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

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

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

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

如何降低負(fù)載

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

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

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

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

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

3、是否有大字段的讀寫(xiě)

4、會(huì)不會(huì)是數(shù)據(jù)庫(kù)操作導(dǎo)致的,排查SQL語(yǔ)句問(wèn)題。

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

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

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

服務(wù)器的負(fù)載及問(wèn)題排查方法是什么

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

服務(wù)器的負(fù)載及問(wèn)題排查方法是什么

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

服務(wù)器的負(fù)載及問(wèn)題排查方法是什么

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

服務(wù)器的負(fù)載及問(wèn)題排查方法是什么

5、還可以使用jstat()來(lái)查看GC情況,看看是否有頻繁FGC,然后再使用jmap來(lái)dump內(nèi)存,查看是否存在內(nèi)存泄露。

以上就是關(guān)于“服務(wù)器的負(fù)載及問(wèn)題排查方法是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:服務(wù)器的負(fù)載及問(wèn)題排查方法是什么
文章地址:http://bm7419.com/article24/jjcoce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、軟件開(kāi)發(fā)、網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)