性能監(jiān)控實戰(zhàn)

用戶響應時間=服務器響應時間+網絡時間

系統性能分析思路

(1)整體系統CPU利用率

(2)內存利用率

(3)磁盤I/O的利用率和延遲

(4)網絡利用率

cpu

CPU:top零酪、vmstat冒嫡、uptime、sar

一般我們期望會期望系統平均可用的CPU不少于20%

JVM自帶監(jiān)控命令:jstat四苇、jmap孝凌、Jvisualvm、JConsole

Mysql監(jiān)控工具:Spolight月腋、Monyog蟀架、及命令行工具

內存

total      used        free         buffers         cached

Mem  物理內存總量  使用的物理內存總量  空閑的物理內存總量  用作內核緩存的內存量  緩存的交換區(qū)總量

swap  交換區(qū)總量   使用的交換區(qū)總量   ? 空閑交換區(qū)總量

可用物理內存=Mem(free+buffers+cached)

當物理內存不夠時,會使用swap分區(qū)榆骚,所以性能測試過程中需要關注swap和mem的使用情況片拍。物理內存不夠,大量的內存置換到swap空間妓肢,可能導致CPU和I/O的瓶頸捌省。

I/O

I/O比較頻繁(讀或者寫)的時候,如果I/O得不到滿足會導致應用的阻塞。

需要考慮I/O的TPS、平均I/O數據募胃、平均隊列長度择浊、平均服務時間、平均等待時間很洋、IO利用率(磁盤Busy Time%)等指標

總結

很多時候,這些因素彼此之間是相互依賴的,任何一個處于高負載狀態(tài)褂策,都可能導致其他資源受到影響,如:

(1)大量的網絡吞吐量導致占用CPU的資源增大颓屑,此時系統要分出部分資源進行軟件終端的處理

(2)大量的CPU開銷會嘗試更多的內存使用

理解并分析當前系統的特點很重要斤寂,多數系統對應的應用類型分為以下兩種:

(1)IO范疇

大量數據處理的過程,不對CPU及網絡發(fā)起更多請求揪惦。如數據庫軟件(mysql遍搞、Oracle)

(2)CPU范疇

批量處理CPU請求及數學計算的過程。如:webserver器腋、mailserver等溪猿。

瓶頸分析

CPU定位分析

CPU利用率大于50%是,需要注意了纫塌;大于70%诊县,需要密切關注;高于90%措左,情況比較嚴重了依痊。

監(jiān)控命令:vmstat、sar怎披、dstat胸嘁、mpstat瓶摆、top、ps

類型度量方法

衡量標準


使用情況

1性宏、vmstat 統計1-%id的計數

2群井、sar -u 統計1-%idle的計數

3、dstat 統計1-%idl的計數

4毫胜、mpstat -P ALL 統計%idle的計數

5书斜、ps 統計CPU的計數注意>=50%

告警>=70%

嚴重>=90%

滿載6、vmstat的r計數器> cpu邏輯顆數

7指蚁、sar -q ,“runq-sz”>cpu邏輯顆數

8菩佑、dstat -q ,“run”>cpu邏輯顆數運行隊列大于1時,證明已經有一定的負載了凝化,不過這個計數也不絕對稍坯,需要進一步分期其他的資源情況來斷定是否CPU已經滿負荷運作

錯誤9、perf工具捕獲處理器的錯誤信息搓劫,需處理器支持安裝perf:yum install perf*

需處理器支持

內存定位分析

監(jiān)控命令:vmstat瞧哟、sar、dstat枪向、free勤揩、top、ps等

類型度量方法

衡量標注


使用情況

1秘蛔、free 查看使用情況

2陨亡、vmstat

3、sar -r

4深员、ps

注意>=50%

告警>=70%

嚴重>=80%

滿載

5负蠕、vmstat的si/so比例輔助swapd和free利用

6、sar -W 查看次缺頁數

7倦畅、查看內核日志有誤OOM機制kill進程

8遮糖、dmesg | grep killed

1、so數值大叠赐,且swapd已經占比很高欲账,內存肯定已經飽和

2、sar命令次缺頁多意味已經在不定地和swap打交道芭概,證明內存已經飽和

3赛不、但內存不夠用會出發(fā)內核的OOM機制

錯誤

9、查看內核有無physical failures

10罢洲、通過工具如valgrind等進行檢查有計數

網絡定位分析

監(jiān)控命令:sar俄删、ifconfig、netstat,以及查看net的dev速率畴椰,通過查看發(fā)現收發(fā)包的吞吐率達到網卡的最大上限,網絡數據報文有因為這類原因而引起的丟包鸽粉、阻塞等現象都證明當前網絡可能存在瓶頸斜脂。在進行性能測試是為了減小網絡的影響,一般我們都在局域網中進行測試執(zhí)行触机。

類型度量方法

衡量標準


使用情況

1帚戳、sar -n DEV 的收發(fā)計數大于網卡上限

2、ifconfig RX/TX寬帶超過網卡上限

3儡首、cat /proc/net/dev的速率超過上限

4片任、nicstat的util

基本滿負荷

1、收發(fā)包的吞吐速率達到網卡上限

2蔬胯、有延遲

3对供、有丟包

4、有阻塞

滿載

5氛濒、ifconfig dropped 有計數

6产场、netstat -s "segments retransmited"有計數

7、sar -n EDEV舞竿,rxdrop/s ?txdrop/s有計數統計的丟包有計數證明已經滿了

錯誤

8京景、ifconfig,“errors”

9骗奖、netstat -i确徙,RX-ERR TX-ERR

10?sar -n EDEV,rxerr/s ? txerr/s

11执桌、ip -s link鄙皇, “errors”錯誤有計數

IO定位分析

監(jiān)控命令:sar、iostat鼻吮、iotop

類型度量方法

衡量標準


使用情況

1育苟、iostat -xz,“%util”

2椎木、sar -d违柏,“%util”

3、iotop的利用率很高

4香椎、cat /proc/pid/sched | grep iowait注意>=40%

告警>=60%

嚴重>=80%

滿載

5漱竖、iostat -xnz,“avgqu-sz?”>1

6畜伐、iostat await>70IO已經有滿載嫌疑

錯誤

7馍惹、dmseg 查看io錯誤

8、smartctl /dev/sda有信息

linux系統性能分析思路和實踐

系統負載監(jiān)控分析實踐

可以通過uptime、top万矾、w等命令分析

uptime

系統時間  up:主機運行時間  當前登錄用戶數  平均負載:過去1分鐘悼吱、5分鐘、15分鐘

(1)運行時間越長良狈,系統越穩(wěn)定

(2)當前用戶數后添,用w命令可以更詳細

(3)系統的平均負載只在特定時間間隔內運行隊列中的平均進程數。

一般建議每個CPU內核平均負載不大于0.8薪丁;若大于1~3之間遇西,如果系統其他資源都很正常,可接受严嗜;若>5粱檀,則系統性能有問題

uptime是從文件/proc/loadavg文件里面讀取的。統計過去1分鐘漫玄、5分鐘茄蚯、15分鐘平均負載:

[dcai@localhost ~]$ uptime | awk '{print $(NF-2)}'

0.00,

[dcai@localhost ~]$ uptime | awk '{print $(NF-1)}'

0.02,

[dcai@localhost ~]$ uptime | awk '{print $NF}'

0.12

系統監(jiān)控分析實戰(zhàn)

top之外,還有htop称近、dstat第队、nmon、glances等

top

1刨秆、第一行:uptime一樣

2凳谦、第二行:運行狀態(tài)信息

運行、睡眠衡未、中斷尸执、僵死

3、第三行:CPU信息

us:用戶占用CPU百分比

sy:系統占用CPU百分比

ni:優(yōu)先級(用戶進程空間內改變過優(yōu)先級的進程占用CPU百分比)缓醋,范圍-20(最低優(yōu)先級)~19(最高優(yōu)先級)

id:空閑CPU百分比

wa:等待輸入輸出的CPU時間百分比

hi:硬中斷占用的CPU百分比

si:軟中斷占用的百分比

我們比較關注:us如失、sy、id送粱、wa褪贵、hi、si這六個數值

(1)按下鍵盤1抗俄,可以顯示每個邏輯CPU的使用情況

(2)id持續(xù)過低時脆丁,系統迫切需要解決CPU資源問題

(3)wa使用率過高,需要考慮IO性能是否有瓶頸动雹,可以用iostat槽卫,sar等命令進一步分析

(3)hi使用率過高,可以分析文件 /proc/interrupts胰蝠、/proc/irq/pid/smp_affinity歼培、服務irqbalance是否配置震蒋、以及CPU的頻率設置,通過這些可以幫系統大賽優(yōu)化系統的硬中斷

(4)si:內核通過一種軟件的方法(可延遲函數)來模擬硬件的中斷模式躲庄,通常叫軟中斷查剖。常見的軟中斷都和網絡有關,長時間的寫日志也可能產生軟中斷噪窘。

系統有個進程ksoftirqd來處理軟中斷梗搅,每個CPU都有自己對應的ksoftirqd/n(n為CPU邏輯ID)。但網絡出現阻塞的時候效览,ksoftirqd會出現瓶頸,此時可通過ps命令查看ps aux | grep ksoftirqd

(5)CPU利用率=1-%id

4荡短、第四行+第五行:內存使用情況

buffer和cache的作用是縮短IO系統調用的時間丐枉。如果頻繁地訪問文件都能被命中,很明顯會比讀取磁盤調用快掘托,磁盤的IO必定會減小瘦锹。cache的命中率很關鍵,如果不能命中闪盔,對cache而言是極大的浪費弯院,此時應考慮drop cache并提升相應的cache命中率。

5泪掀、第六行:進程信息

進程號(PID)听绳、進程所有者(USER)、進程優(yōu)先級(nice值异赫、NI)椅挣、進程使用的虛擬內存(VIRT)、進程使用的實際物理內存(RES)塔拳、共享內存(SHR)鼠证、CPU占用百分比、進程使用的物理內存百分比(%MEM)靠抑、進程使用的CPU時間總計(1/100秒量九,TIME+)、命令行

(1)top顯示的是進程信息颂碧,要看線程級荠列,可用ps -ef

(2)TIME+表示的是進程使用的CPU時間總計,不是進程的存活時間

(3)默認不會顯示進程分布在那顆CPU上稚伍,如想分析CPU對應的應用程序弯予,可修改top默認配置,添加字段Last used CPU即可个曙。

(4)H:top配置幫助頁

d:刷新間隔

f:添加進程字段顯示列

1:顯示平均/各顆CPU的利用率信息

W:保存配置信息

6锈嫩、top參數

-d  批處理模式

-c  命令/程序名  觸發(fā)

-d  設置延遲間隔(刷新頻率)

-n  設置迭代數量(退出前監(jiān)控次數)

-p  監(jiān)控特定的PID

-u或-U: 用戶名 或 UID

top -b -d 1 -n 3 > top.log

tomcat監(jiān)控之probe

目前流行的中間件有tomcat受楼、jetty、Jboss呼寸、weblogic艳汽、WebSphere等,基本原理相似对雪,都遵循servlet規(guī)范河狐。對容器的監(jiān)控實際上是對JVM的監(jiān)控,容器運行在JVM紙上瑟捣。JVM的監(jiān)控分析工具有jvisualVM馋艺、jconsole、jprofiler迈套、zabbix捐祠、nagios、cacti等桑李。下面介紹tomcat監(jiān)控工具probe踱蛀,probe只需要一個war包就可以完成監(jiān)控任務,完全不用設置贵白,下面是tomcat常規(guī)監(jiān)控項:


類別 ? ?計數器 ? ?描述

tomcat

JVM內存:關注GC回收頻率率拒,Full GC次數越少越好

最大線程數:線程池連接數長期大于80%以上,建議優(yōu)化

數據庫連接數:活動連接數長期大于80%以上禁荒,建議優(yōu)化連接池

請求數

請求狀態(tài)線:程數猬膨,線程狀態(tài),大量blocked狀態(tài)線程可以dump線程棧信息進行優(yōu)化

probe

安裝probe之后圈浇,打開瀏覽器訪問probe:127.0.0.1:8089/probe

線程池的監(jiān)控:

current_threads_count:線程池中ready好的數量寥掐,我的在運行狀態(tài),我的在等待狀態(tài)

current_threads_busy:當前活動狀態(tài)的線程數量磷蜀,正處在活動狀態(tài)

max_threads:最大線程池數量

我們需要關注current_threads_count和current_threads_busy是否接近max_threads,如果是召耘,則需要加大max_threads數量;如果服務器硬件支撐不了更多線程數褐隆,就需要更換更強的硬件或做集群來分擔負載污它。

JVM監(jiān)控

除了probe之外,自帶監(jiān)控工具也比較好用

jps

jps是jdk提供的一個查看當前java進程的小工具庶弃, 可以看做是JavaVirtual Machine Process Status Tool的縮寫衫贬。非常簡單實用。

jps –l:輸出主類或者jar的完全路徑名

jps –v :輸出jvm參數

jps –q :僅僅顯示java進程號

jps -m :?輸出main method的參數

jps -mlv 10.134.68.173 (如果需要查看其他機器上的jvm進程歇攻,需要在待查看機器上啟動jstatd固惯。)

jstat

FGC(Full gc)會暫停用戶相應,也就是不處理用戶請求缴守,等待Full gc完成后響應用戶請求葬毫,這個等待時間過大會影響用戶體驗镇辉,所以Full gc是JVM調優(yōu)的重點

jstat -gcutil [PID]

jmap

分析程序內存占用其實是分析堆(Heap)內存,堆快照使用jamp獲取

典型獲取方式:

jmao dump:format=b,file=d:\heap.hprof [pid]

heap.hprof是快照文件贴捡,可以使用JVisualvm來打開

JVisualvm

JDK自帶的JVM可視化監(jiān)控工具

在%JAVA_HOME%\bin下找到,雙擊啟動

下圖:可以做堆Dump操作忽肛,查看堆內存明細。堆的回收曲線能夠直觀反映堆內存回收頻率烂斋,是否有內存溢出等問題屹逛。

下圖:點擊“線程Dump”導出JVM當前線程棧信息,通過分析這些信息來定位到程序問題

總結:對于Java的應用來講汛骂,JVM的性能反映了Java程序的性能罕模,JVM的監(jiān)控分兩大類,一是堆內存帘瞭,二是線程手销;從堆內存可以分析大對象與內存溢出等問題,從線程狀態(tài)及線程信息分析出低效程序图张,解決的是CPU資源占用的問題。

MySql監(jiān)控之MONyog

MySql監(jiān)控方法:官方客戶端诈悍、命令行祸轮、SQL、MONyog

1侥钳、下載MONyog.地址:https://www.webyog.com/

2适袜、安裝完成后,啟動MONyog進行連接配置

3舷夺、MONyog絕大多數指標都進行了詳細說明

最后

當性能測試環(huán)境復雜的情況下苦酱,可以借助zabbix、nagios给猾、cacti等監(jiān)控平臺


轉自:http://www.cnblogs.com/lingzeng86/p/6681140.html

作者:落花無意溪自流

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末疫萤,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子敢伸,更是在濱河造成了極大的恐慌扯饶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件池颈,死亡現場離奇詭異尾序,居然都是意外死亡,警方通過查閱死者的電腦和手機躯砰,發(fā)現死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門每币,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人琢歇,你說我怎么就攤上這事兰怠∶渭” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵痕慢,是天一觀的道長尚揣。 經常有香客問我,道長掖举,這世上最難降的妖魔是什么快骗? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮塔次,結果婚禮上方篮,老公的妹妹穿的比我還像新娘。我一直安慰自己励负,他們只是感情好藕溅,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著继榆,像睡著了一般巾表。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上略吨,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天集币,我揣著相機與錄音,去河邊找鬼翠忠。 笑死鞠苟,一個胖子當著我的面吹牛,可吹牛的內容都是我干的秽之。 我是一名探鬼主播当娱,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼考榨!你這毒婦竟也來了跨细?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤河质,失蹤者是張志新(化名)和其女友劉穎扼鞋,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體愤诱,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡云头,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了淫半。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溃槐。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖科吭,靈堂內的尸體忽然破棺而出昏滴,到底是詐尸還是另有隱情猴鲫,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布谣殊,位于F島的核電站拂共,受9級特大地震影響,放射性物質發(fā)生泄漏姻几。R本人自食惡果不足惜宜狐,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛇捌。 院中可真熱鬧抚恒,春花似錦、人聲如沸络拌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽春贸。三九已至混萝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間萍恕,已是汗流浹背譬圣。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雄坪,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓屯蹦,卻偏偏與公主長得像维哈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子登澜,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內容

  • ?摘自:https://help.aliyun.com/document_detail/29341.html?sp...
    許你一枝花閱讀 1,917評論 0 4
  • 這篇文章主要介紹一些常用的linux服務器性能監(jiān)控命令阔挠,包括命令的常用參數、指標的含義以及一些交互操作脑蠕。 幾個問題...
    dancingking閱讀 8,321評論 6 22
  • linux是當前在服務器領域最成功操作系統购撼,不僅性能卓越,安全性高谴仙,更重要的是提供了一套完善的監(jiān)控機制迂求,來檢測系統...
    劉建會閱讀 1,478評論 0 2
  • 任何一段關系,親情晃跺,愛情揩局,亦或是友情都值得努力付出與用心呵護,至少應該對自己的身體力行說聲感謝掀虎,不要懷疑有的人腦袋...
    王文_3fc1閱讀 205評論 0 0
  • 有時候人就是這樣,遇到再大的事情自己扛忍忍就過去了驰怎,要是聽到身旁的人一句安慰就瞬間完敗阐滩。后來才明白,怕的不是冷漠而...
    傑鵬閱讀 214評論 0 0