專利名稱:一種服務器性能數(shù)據(jù)采集與分析的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機應用技術(shù)領(lǐng)域或涉及服務器應用性能測試驗證領(lǐng)域,具體地說是一種服務器性能數(shù)據(jù)采集與分析的方法。
背景技術(shù):
服務器產(chǎn)品在涉及具體應用的時候,無論是在測試或者實際應用中,我們都需要對性能數(shù)據(jù)進行采集分析,從而對對整個系統(tǒng)運行狀況進行監(jiān)控,盡早發(fā)現(xiàn)問題。尤其是在系統(tǒng)應用性能下降,出現(xiàn)問題的時候,我們更需要對性能數(shù)據(jù)進行采集,從而找到問題所在,解決問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種服務器性能數(shù)據(jù)采集與分析的方法。
本發(fā)明的目的是按以下方式實現(xiàn)的,具體步驟如下 一、數(shù)據(jù)采集范圍 1)在測試過程中,要記錄整個測試過程中的測試數(shù)據(jù), 2)確定性能監(jiān)測的對象,包括各子系統(tǒng),主要包括cpu,內(nèi)存,磁盤,網(wǎng)絡; 二、數(shù)據(jù)采集同步性 1)測試系統(tǒng)可能分為多層架構(gòu),在每一層架構(gòu)上的數(shù)據(jù)收集要保證時間上的同步,這樣才能對系統(tǒng)運行期間的狀態(tài)變化作出準確的描述; 2)各子系統(tǒng)的性能監(jiān)測數(shù)據(jù)要保證時間上同步; 3)測試日志在測試過程中,每一天都要完成測試日志,記錄一天測試進程,出現(xiàn)問題; 三、數(shù)據(jù)采集方法數(shù)據(jù)的采集,根據(jù)平臺的不同,分為兩類Linux和windows,其中Linux系統(tǒng) 1)性能監(jiān)測工具 A)cpu,內(nèi)存vmstat B)磁盤I/Oiostat C)網(wǎng)絡sar Windows系統(tǒng) 2)性能監(jiān)測工具 按以下順序,打開性能監(jiān)視器控制面板—>管理工具—>性能 四、測試數(shù)據(jù)整理測試數(shù)據(jù)的整理,將測試數(shù)據(jù)表格化,或者圖形化,為方便后續(xù)的分析做準備; 1)測試數(shù)據(jù)圖形化針對Linux系統(tǒng),Linux系統(tǒng)下我們采集到的數(shù)據(jù)都是文本格式,需要我們把這些數(shù)據(jù)圖形化,便于后續(xù)的數(shù)據(jù)分析對比;圖形包括折線圖或柱狀圖; 2)文件命名規(guī)則 A)盡量讓文件名包含更多的文件信息; B)格式工具簡稱_平臺信息_測試模型; 五、測試方法 1)采樣時間間隔在同一次測試中,不同工具的采樣時間間隔需要相等; 2)采點數(shù)值采樣點為數(shù)值N, A)測試時間為1小時以下150<N<250; B)測試時間為1-2小時250<N<450; 3)vmstat的使用首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù) [root@nodel~]#cd/tmp/ [root@nodel tmp]#mkdir test_vmstat 執(zhí)行如下命令 [root@nodel tmp]# vmstat 5n>/tmp/test_vmstat/file_name #每5秒鐘取值一次,并將結(jié)果輸出到文件中; 4)iostat的使用 首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù) [root@nodel~]#cd/tmp/ [root@nodel tmp]#mkdir test_iostat 執(zhí)行如下命令 [root@nodel tmp]#iostat-x5n|grep sdn>/tmp/test_iostat/file_name #每5秒鐘取值一次,并將結(jié)果輸出到文件中; 5)sar的使用 首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù) [root@nodel~]#cd/tmp/ [root@nodel tmp]#mkdir test_sar 執(zhí)行如下命令 [root@nodel tmp]#sar-n DEV5n|grep eth0>/tmp/test_sar/file_name #每5秒鐘取值一次,并將結(jié)果輸出到文件中; 六、windows性能監(jiān)測工具控制面板—>管理工具—>性能 使用步驟 1)計數(shù)器日志打開性能監(jiān)測工具,點擊性能日志和警報,選擇計數(shù)器日志完成此步驟,在右邊工作區(qū)域看到有一個默認的系統(tǒng)日志文件system overview 2)新建日志設置 在右側(cè)的工作區(qū)域,右鍵點擊,選擇新建日志設置,彈出對話框,填入日志名稱; 3)添加計數(shù)器 單擊添加計數(shù)器鈕,彈出對話框,在性能對象里面,選擇要監(jiān)測的對象,包括處理器,內(nèi)存,網(wǎng)絡; 每一個對象對應若干計數(shù)器,選中從列表中選擇計數(shù)器,來添加需要的計數(shù)器完成后,進行下一步 4)設置日志文件 以上步驟為常規(guī)設置,現(xiàn)在點擊日志文件,進行日志文件的設置; 此處保留默認; 5)設置計劃 設置為手動執(zhí)行或根據(jù)需要,進行計劃設置; 6)測試開始,啟動,圖標顏色有紅色變?yōu)榫G色; 新建日志完成,在計數(shù)器日志工作區(qū)就看到新建日志;紅色圖標為停止狀態(tài),綠色為運行狀態(tài); 選中日志,點擊右鍵或手動執(zhí)行開始與停止; 六測試數(shù)據(jù)解讀與分析 關(guān)于Linux平臺測試過程中,通過vmstat,iostat,sar監(jiān)視系統(tǒng)資源,主要包括進程,內(nèi)存,swap,cpu,磁盤I/O以及網(wǎng)卡; vmstat分析關(guān)鍵參數(shù) 1)進程我們主要關(guān)注r與b參數(shù) r參數(shù)運行隊列線程數(shù)目,包括正在運行的線程和等待CPU時間片的線程,這個數(shù)字大于CPU的數(shù)目,至少有一個線程要等待CPU,等待CPU的線程越多,越有可能對性能產(chǎn)生影響; b參數(shù)每秒等待隊列中的內(nèi)核線程平均數(shù),包括正在等待文件系統(tǒng)I/O的線程,或由于內(nèi)存裝入控制而被掛起的線程;進程由于內(nèi)存裝入控制而被掛起,在vmstat報告中的阻塞列(b)表明線程數(shù)目增加,而不是運行隊列中線程數(shù)目增加; 2)cpu在該時間間隔內(nèi)使用CPU時間的百分比細分,cpu列如下 us參數(shù)us列顯示了用戶模式所消耗的CPU時間; sy參數(shù)sy列詳細顯示了CPU在系統(tǒng)模式下執(zhí)行一個線程所花時間的百分比; id參數(shù)id列顯示了沒有未決磁盤I/O時CPU空閑或等待時間的百分比,沒有未決I/O,所有用于等待的時間歸入空閑時間中; wa參數(shù)wa列詳細顯示了有未決磁盤I/O時CPU空閑的時間百分比,當?shù)却谶\行時至少有一個未完成的磁盤I/O,該時間歸入等待I/O的時間,該進程使用異步I/O,則對磁盤的I/O請求使調(diào)用線程被阻塞或睡眠,直到請求被完成;一旦進程的I/O請求完成,該進程被放入運行隊列中,I/O很快完成,該進程使用更多的CPU時間;wa的值不應該超過25% 3)其他參數(shù) Memory swpd虛擬內(nèi)存使用情況,單位KB; free空閑的內(nèi)存,單位KB buff被用來做為緩存的內(nèi)存數(shù),單位KB; Swap si從磁盤交換到內(nèi)存的交換頁數(shù)量,單位KB/秒; so從內(nèi)存交換到磁盤的交換頁數(shù)量,單位KB/秒; IO bi發(fā)送到塊設備的塊數(shù),單位塊/秒; bo從塊設備接收到的塊數(shù),單位塊/秒; 分析 1)r遠大于cpu的數(shù)目,系統(tǒng)就會變慢,r大于cpu數(shù)目的4倍,說明系統(tǒng)正面臨cpu功率短缺,系統(tǒng)會嚴重變慢; 2)id值經(jīng)常為0,并且sy+us經(jīng)常大于80%,說明系統(tǒng)cpu負荷過重或者說缺少cpu資源; 3)wa值大于25%,說明磁盤沒有被很好的平衡,系統(tǒng)花費大量時間等待磁盤I/O或者磁盤的負荷很重; 4)linux首先使用物理內(nèi)存,物理內(nèi)存使用完后再使用swap分區(qū),所以linux系統(tǒng)一般內(nèi)存利用率都比較高,si,so都等于0,說明swap分區(qū)未被使用; 改進方案 1)調(diào)整應用,使其更好的利用cpu,增加cpu數(shù)目或者升高cpu主頻; 2)優(yōu)化磁盤,解決I/O問題; iostat分析關(guān)鍵參數(shù) rkB/s每秒讀K字節(jié)數(shù),是rsect/s的一半,因為每扇區(qū)大小為512字節(jié); wkB/s每秒寫K字節(jié)數(shù),是wsect/s的一半; avgqu-sz平均I/O隊列長度; await平均每次設備I/O操作的等待時間(毫秒); svctm平均每次設備I/O操作的服務時間(毫秒); %util一秒中有百分之多少的時間用于I/O操作,或者說一秒中有多少時間I/O隊列是非空的; 分析 1)磁盤顯示長時間的高讀寫,同時svctm也遠大于30,await的值也遠大于svctm,那么說明系統(tǒng)存在嚴重的磁盤I/O瓶頸; 2)%util一直接近100%,說明系統(tǒng)產(chǎn)生的I/O請求太多,系統(tǒng)可能存在磁盤瓶頸; 3)wait的大小一般取決于服務時間svctm以及I/O隊列的長度和I/O請求的發(fā)出模式,svctm比較接近await,說明I/O幾乎沒有等待時間;await遠大于svctm,說明I/O隊列太長,應用得到的響應時間變慢 改進方案 1)調(diào)整應用,令其使用磁盤i/o更加有效率,通過修改磁盤隊列、使用應用服務器的cache; 2)將文件系統(tǒng)分布到2個或多個磁盤上,改變磁盤raid方案; 3)更換更好的盤陣或磁盤,使用更快的存儲方案; 關(guān)于windows平臺 Windows平臺測試,要在性能監(jiān)視器里面選定性能監(jiān)視對象,然后為每一個監(jiān)視對象添加性能監(jiān)測計數(shù)器,性能監(jiān)測對象及每個對象包含的計數(shù)器如下 1)processor處理器 Processor performance object包含衡量處理器活動方面的計數(shù)器,處理器是計算機進行算數(shù)和邏輯計算、在附屬件起始操作及運行處理線程的部分,一臺計算機有多臺處理器,處理器對象將每臺處理器作為對象的范例; 主要包含計數(shù)器 %Processor Time—指處理器用來執(zhí)行非閑置線程時間的百分比,計算方法是,測量范例間隔內(nèi)非閑置線程活動的時間,用范例間隔減去該值,該值是每臺處理器有一個閑置線程,該線程在沒有其他線程時運行時的消耗周期,這個計數(shù)器是處理器活動的主要說明器,顯示在范例間隔時所觀察的繁忙時間平均百分比,這個值是用100%減去該服務不活動的時間計算出來的; 2)memory內(nèi)存 Memory performance object由描述計算機上的物理和虛擬內(nèi)存行為的計數(shù)器組成,物理內(nèi)存指計算機上的隨機存取存儲器的數(shù)量,虛擬內(nèi)存由物理內(nèi)存和磁盤上的空間組成,許多內(nèi)存計數(shù)器監(jiān)視頁面調(diào)度,過多的頁面調(diào)度引起拖延,會影響整個系統(tǒng)處理效率; 主要包含的計數(shù)器有 Available MBytes是指以MB表示的物理內(nèi)存量,此內(nèi)存能立刻分配給一個進程或系統(tǒng)使用,它等于分配給待機、空閑和零分頁列表內(nèi)存的總和; 3)Physical Disk硬盤 Physical Disk performance object包含監(jiān)視計算機上的硬盤或固定磁盤驅(qū)動器的計數(shù)器,磁盤用于存儲文件、程序及分頁數(shù)據(jù)并且通過讀取檢索這些項目并通過記錄寫入對其進行更改,物理磁盤計數(shù)器的值為邏輯磁盤值的總和; 主要包含的計數(shù)器有 Avg.Disk Queue Length指讀取和寫入請求的平均數(shù); %Disk Time指所選磁盤驅(qū)動器忙于為讀或?qū)懭胝埱筇峁┓账玫臅r間的百分比; 4)Network Interface網(wǎng)絡 Network Interface performance object包括衡量通過一個TCP/IP網(wǎng)絡連接發(fā)送和接收字節(jié)和數(shù)據(jù)包的速率的計數(shù)器,它包括監(jiān)督連接錯誤的計數(shù)器; 主要包含的計數(shù)器有 Bytes Total/sec是在每個網(wǎng)絡適配器上發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi),Network Interface\\Bytes Received/sec是Network Interface\\BytesReceived/sec和Network Interface\\Bytes Sent/sec的總和; 下面做詳細說明,每一次測試開始之前,最好服務器和應用進行重啟,確保兩次測試之間沒有干擾,測試過程中,需要根據(jù)具體實際情況,進行相應改動。
本發(fā)明的有益效果是對于服務器性能采集的方法,以數(shù)據(jù)采集和分析為核心,通過對采集方法和目標的整理和規(guī)范,形成標準化操作,將能夠反映服務器性能的關(guān)鍵數(shù)據(jù)進行采集,以數(shù)據(jù)為依據(jù),對服務器的各個子系統(tǒng)進行分析,從而找到服務器性能瓶頸,為解決測試或者實際應用中提升服務器性能提供依據(jù)。
具體實施例方式 1.數(shù)據(jù)采集范圍 1)數(shù)據(jù)采集范圍 2)在測試過程中,要記錄整個測試過程中的測試數(shù)據(jù)。
3)確定性能監(jiān)測的對象,包括各子系統(tǒng),主要包括cpu,內(nèi)存,磁盤,網(wǎng)絡。
2 數(shù)據(jù)采集同步性 1)測試系統(tǒng)可能分為多層架構(gòu),在每一層架構(gòu)上的數(shù)據(jù)收集要保證時間上的同步,這樣才能對系統(tǒng)運行期間的狀態(tài)變化作出準確的描述。
2)各子系統(tǒng)的性能監(jiān)測數(shù)據(jù)要保證時間上同步。
3)測試日志在測試過程中,每一天都要完成測試日志,記錄一天測試進程,出現(xiàn)問題。
3、數(shù)據(jù)采集方法 數(shù)據(jù)的采集,根據(jù)平臺的不同,主要分為兩類Linux & windows Linux系統(tǒng) 1)性能監(jiān)測工具 A)cpu,內(nèi)存vmstat B)磁盤I/Oiostat C)網(wǎng)絡sar 2)使用方法(見4小節(jié)) Windows系統(tǒng) 1)性能監(jiān)測工具 按以下順序,打開性能監(jiān)視器 控制面板—>管理工具—>性能 2)使用方法(見4小節(jié)) 4、測試數(shù)據(jù)整理 測試數(shù)據(jù)的整理,將測試數(shù)據(jù)表格化,或者圖形化,為方便后續(xù)的分析做準備 1)測試數(shù)據(jù)圖形化 主要是針對Linux系統(tǒng),Linux系統(tǒng)下我們采集到的數(shù)據(jù)都是文本格式,需要我們把這些數(shù)據(jù)圖形化,便于后續(xù)的數(shù)據(jù)分析對比。
主要是圖形包括折線圖或柱狀圖 2)文件命名規(guī)則 在測試過程中,取值文件比較多,需要將其規(guī)范命名,避免混亂。便于以后的使用。
命名規(guī)則 A)盡量讓文件名包含更多的文件信息 B)格式工具簡稱_平臺信息_測試模型(可根據(jù)實際情況改變) 舉例在河南計生委MIS系統(tǒng)測試中,文件如下命名 io_4N4U——4節(jié)點4路平臺,iostat測試數(shù)據(jù) vm_it——Itanium平臺,vmstat測試數(shù)據(jù) io_lk_r—1000用戶iostat讀性能曲線. 5、測試方法實例 1.采樣時間間隔。
在同一次測試中,不同工具的采樣時間間隔需要相等。
2.采點數(shù)值。采樣點為數(shù)值N 為便于后續(xù)測試的分析,要保證足夠數(shù)量的采樣點,根據(jù)測試時間建議 A)測試時間為1小時以下150<N<250 B)測試時間為1-2小時250<N<450 vmstat使用 首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù) [root@nodel~]#cd/tmp/ [root@nodel tmp]#mkdir test_vmstat 執(zhí)行如下命令 [root@nodeltmp]#vmstat 5n>/tmp/test_vmstat/file_name #每5秒鐘取值一次,并將結(jié)果輸出到文件中。
Note1)file_name根據(jù)實際情況命名 2)n為記錄的次數(shù),根據(jù)測試時間調(diào)整。 3)取值間隔時間為5秒,也可以調(diào)整。
Example(vmstat) [root@standby~]#vmstat15 procs--------memory-----------swap-------io-----system------cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 69680 60500 533600 0 0 10 52 16 0 0 100 0 0 0 0 69680 60500 533600 0 0 00 1008 16 0 0 100 0 0 0 0 69680 60500 533600 0 0 00 1025 35 0 0 100 0 0 0 0 69680 60500 533600 0 0 00 1004 17 0 0 100 0 0 0 0 69680 60500 533600 0 0 00 1026 35 0 0 100 0 io stat使用 首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù) [root@nodel~]#cd/tmp/ [root@nodel tmp]# mkdir test_iostat 執(zhí)行如下命令 [root@nodel tmp]#iostat-x5n|grep sdn>/tmp/test_iostat/file_name #每5秒鐘取值一次,并將結(jié)果輸出到文件中。
Note1)file_name根據(jù)實際情況命名 2)n為記錄的次數(shù),根據(jù)測試時間調(diào)整。 3)取值間隔時間為5秒,也可以調(diào)整。 4)sdn為要監(jiān)測的磁盤設備名稱,根據(jù)實際情況修改 Example(iostat) [root@standby~]#iostat-xll|grep sdb Device rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s sdb 0.00 0.00 0.00 0.00 0.010.000.00 Device wkB/s avgrq-sz avgqu-sz await svctm %util sdb 0.0033.600.00 13.27 5.440.00 sar使用 首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù) [root@nodel~]#cd/tmp/ [root@nodel tmp]# mkdir test_sar 執(zhí)行如下命令 [root@nodel tmp]#sar-n DEV5n|grep eth0>/tmp/test_sar/file_name #每5秒鐘取值一次,并將結(jié)果輸出到文件中。
Note1)file_name根據(jù)實際情況命名 2)n為記錄的次數(shù),根據(jù)測試時間調(diào)整。 3)取值間隔時間為5秒,也可以調(diào)整。
Example(sar) [root@standby~]#sar-n DEV 15|grep ethl 11:25:10AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s 11:25:10AM ethl 2.000.00120.00 0.000.000.000.00 11:25:11AM ethl 0.980.9858.82 119.61 0.000.000.00 11:25:12AM ethl 6.001.00580.00 122.00 0.000.000.00 11:25:13AM ethl 3.001.00212.00 106.00 0.000.000.00 11:25:14AM ethl 3.001.00180.00 106.00 0.000.000.00 Average: ethl 2.990.80229.48 90.84 0.000.000.00 windows性能監(jiān)測工具 控制面板—>管理工具—>性能 使用步驟 1)計數(shù)器日志 打開性能監(jiān)測工具,點擊性能日志和警報,選擇計數(shù)器日志 完成此步驟,在右邊工作區(qū)域可以看到有一個默認的系統(tǒng)日志文件systemoverview 2)新建日志設置 在右側(cè)的工作區(qū)域,右鍵點擊,選擇新建日志設置,彈出對話框,填入日志名稱。
3)添加計數(shù)器 單擊添加計數(shù)器鈕,彈出對話框,在性能對象里面,選擇要監(jiān)測的對象,比如處理器,內(nèi)存,網(wǎng)絡。
每一個對象對應若干計數(shù)器,可以選中從列表中選擇計數(shù)器,來添加需要的計數(shù)器,完成后,進行下一步 4)設置日志文件 以上步驟為常規(guī)設置,現(xiàn)在點擊日志文件,進行日志文件的設置。
此處可以保留默認。
5)設置計劃 設置為手動執(zhí)行。也可以根據(jù)需要,進行計劃設置。
6)測試開始,啟動,圖標顏色有紅色變?yōu)榫G色。
新建日志完成,在計數(shù)器日志工作區(qū)就可以看到新建日志。紅色圖標為停止狀態(tài),綠色為運行狀態(tài)。
選中日志,點擊右鍵,可以手動執(zhí)行開始與停止。
6、測試數(shù)據(jù)解讀與分析 Linux平臺 測試過程中,我們主要通過vmstat,iostat,sar監(jiān)視系統(tǒng)資源,主要包括進程,內(nèi)存,swap,cpu,磁盤I/O,以及網(wǎng)卡。
vmstat分析 關(guān)鍵參數(shù) 1)進程我們主要關(guān)注r與b參數(shù) r參數(shù)運行隊列線程數(shù)目,包括正在運行的線程和等待CPU時間片的線程。如果這個數(shù)字大于CPU的數(shù)目,至少有一個線程要等待CPU,等待CPU的線程越多,越有可能對性能產(chǎn)生影響。
b參數(shù)每秒等待隊列中的內(nèi)核線程平均數(shù)。包括正在等待文件系統(tǒng)I/O的線程,或由于內(nèi)存裝入控制而被掛起的線程。
如果進程由于內(nèi)存裝入控制而被掛起,在vmstat報告中的阻塞列(b)表明線程數(shù)目增加,而不是運行隊列中線程數(shù)目增加。
2)cpu在該時間間隔內(nèi)使用CPU時間的百分比細分。cpu列如下 us參數(shù)us列顯示了用戶模式所消耗的CPU時間。
sy參數(shù)sy列詳細顯示了CPU在系統(tǒng)模式下執(zhí)行一個線程所花時間的百分比。
id參數(shù)id列顯示了沒有未決磁盤I/O時CPU空閑或等待時間的百分比。如果沒有未決I/O,所有用于等待的時間歸入空閑時間中。
wa參數(shù)盤I/O時CPU空閑的時間百分比。如果當?shù)却谶\行時至少有一個未完成的磁盤I/O,該時間歸入等待I/O的時間。除非該進程使用異步I/O,否則對磁盤的I/O請求使調(diào)用線程被阻塞(或睡眠)直到請求被完成。一旦進程的I/O請求完成,該進程被放入運行隊列中。如果I/O很快完成,該進程可以使用更多的CPU時間。wa的值不應該超過25% 3)其他參數(shù) Memory swpd虛擬內(nèi)存使用情況,單位KB free空閑的內(nèi)存,單位KB buff被用來做為緩存的內(nèi)存數(shù),單位KB Swap si從磁盤交換到內(nèi)存的交換頁數(shù)量,單位KB/秒 so從內(nèi)存交換到磁盤的交換頁數(shù)量,單位KB/秒 IO bi發(fā)送到塊設備的塊數(shù),單位塊/秒 bo從塊設備接收到的塊數(shù),單位塊/秒 分析 1)如果r遠大于cpu的數(shù)目,系統(tǒng)就會變慢,如果r大于cpu數(shù)目的4倍,說明系統(tǒng)正面臨cpu功率短缺,系統(tǒng)會嚴重變慢 2)如果id值經(jīng)常為0,并且sy+us經(jīng)常大于80%,說明系統(tǒng)cpu負荷過重,或者說缺少cpu資源。
3)wa值如果大于25%,說明磁盤沒有被很好的平衡,系統(tǒng)花費大量時間等待磁盤I/O?;蛘叽疟P的負荷很重。
4)linux首先使用物理內(nèi)存,物理內(nèi)存使用完后再使用swap分區(qū),所以linux系統(tǒng)一般內(nèi)存利用率都比較高,但是如果si,so都等于0,說明swap分區(qū)未被使用。
改進方案 1)調(diào)整應用,使其更好的利用cpu,增加cpu數(shù)目或者升高cpu主頻 2)優(yōu)化磁盤,解決I/O問題 iostat分析 關(guān)鍵參數(shù) rkB/s每秒讀K字節(jié)數(shù)。是rsect/s的一半,因為每扇區(qū)大小為512字節(jié)。
wkB/s每秒寫K字節(jié)數(shù)。是wsect/s的一半。
avgqu-sz平均I/O隊列長度。
await平均每次設備I/O操作的等待時間(毫秒)。
svctm平均每次設備I/O操作的服務時間(毫秒)。
%util一秒中有百分之多少的時間用于I/O操作,或者說一秒中有多少時間I/O隊列是非空的。
分析 1)如果磁盤顯示長時間的高讀寫,同時svctm也遠大于30,await的值也遠大于svctm,那么說明系統(tǒng)存在嚴重的磁盤I/O瓶頸。
2)如果%util一直接近100%,說明系統(tǒng)產(chǎn)生的I/O請求太多,系統(tǒng)可能存在磁盤瓶頸 3)wait的大小一般取決于服務時間(svctm)以及I/O隊列的長度和I/O請求的發(fā)出模式。如果svctm比較接近await,說明I/O幾乎沒有等待時間;如果await遠大于svctm,說明I/O隊列太長,應用得到的響應時間變慢。
改進方案 1)調(diào)整應用,令其使用磁盤i/o更加有效率,可以通過修改磁盤隊列、使用應用服務器的cache。
2)將文件系統(tǒng)分布到2個或多個磁盤上,改變磁盤raid方案。
3)更換更好的盤陣或磁盤,使用更快的存儲方案。
windows平臺 Windows平臺測試,我們要在性能監(jiān)視器里面選定性能監(jiān)視得對象,然后在為每一個對象添加性能監(jiān)測計數(shù)器,主要包括的性能監(jiān)測對象,以及每個對象包含的計數(shù)器 1)processor處理器 Processor performance object包含衡量處理器活動方面的計數(shù)器。處理器是計算機進行算數(shù)和邏輯計算、在附屬件起始操作及運行處理線程的部分。一臺計算機可以有多臺處理器。處理器對象將每臺處理器作為對象的范例。
主要包含計數(shù)器 %Processor Time—指處理器用來執(zhí)行非閑置線程時間的百分比。計算方法是,測量范例間隔內(nèi)非閑置線程活動的時間,用范例間隔減去該值。(每臺處理器有一個閑置線程,該線程在沒有其他線程可以運行時消耗周期)。這個計數(shù)器是處理器活動的主要說明器,顯示在范例間隔時所觀察的繁忙時間平均百分比。這個值是用100%減去該服務不活動的時間計算出來的。
2)memory內(nèi)存 Memory performance object由描述計算機上的物理和虛擬內(nèi)存行為的計數(shù)器組成。物理內(nèi)存指計算機上的隨機存取存儲器的數(shù)量。虛擬內(nèi)存由物理內(nèi)存和磁盤上的空間組成。許多內(nèi)存計數(shù)器監(jiān)視頁面調(diào)度(指磁盤與物理內(nèi)存之的代碼和數(shù)據(jù)頁的移動)。過多的頁面調(diào)度(內(nèi)存不足的一種表現(xiàn))可引起拖延,會影響整個系統(tǒng)處理效率。
主要包含的計數(shù)器 Available MBytes是指以MB表示的物理內(nèi)存量,此內(nèi)存能立刻分配給一個進程或系統(tǒng)使用。它等于分配給待機(緩存的)、空閑和零分頁列表內(nèi)存的總和。要獲得內(nèi)存管理器的詳細解釋,請參閱MSDN和/或Windows Server 2003Resource Kit里的系統(tǒng)性能和疑難解答指南章節(jié)。
3)Physical Disk硬盤 Physical Disk performance object包含監(jiān)視計算機上的硬盤或固定磁盤驅(qū)動器的計數(shù)器。磁盤用于存儲文件、程序及分頁數(shù)據(jù)并且通過讀取檢索這些項目并通過記錄寫入對其進行更改。物理磁盤計數(shù)器的值為邏輯磁盤(由磁盤分成)值的總和。
主要包含的計數(shù)器 Avg.Disk Queue Length指讀取和寫入請求(為所選磁盤在實例間隔中列隊的)的平均數(shù)。
%Disk Time指所選磁盤驅(qū)動器忙于為讀或?qū)懭胝埱筇峁┓账玫臅r間的百分比。
4)Network Interface網(wǎng)絡 Network Interface performance object包括衡量通過一個TCP/IP網(wǎng)絡連接發(fā)送和接收字節(jié)和數(shù)據(jù)包的速率的計數(shù)器。它包括監(jiān)督連接錯誤的計數(shù)器。
主要包含的計數(shù)器 Bytes Total/sec是在每個網(wǎng)絡適配器上發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。NetworkInterface\\Bytes Received/sec是Network Interface\\BytesReceived/sec和Network Interface\\Bytes Sent/sec的總和。
6.附錄 對于得到的測試數(shù)據(jù),可能需要以下處理,使用utraledit 正則表達式 替換行首空格%[^t]+替換為#不要填寫任何字符或空格 替換空白行%[^t]++^p。
權(quán)利要求
1.一種服務器性能數(shù)據(jù)采集與分析的方法,其特征在于,以數(shù)據(jù)采集和分析為核心,通過對采集方法和目標的整理和規(guī)范,形成標準化操作,將能夠反映服務器性能的關(guān)鍵數(shù)據(jù)進行采集,以數(shù)據(jù)為依據(jù),對服務器的各個子系統(tǒng)進行分析,從而找到服務器性能瓶頸,為解決測試或者實際應用中提升服務器性能提供依據(jù),具體步驟如下
一、數(shù)據(jù)采集范圍
1)在測試過程中,要記錄整個測試過程中的測試數(shù)據(jù),
2)確定性能監(jiān)測的對象,包括各子系統(tǒng),主要包括cpu,內(nèi)存,磁盤,網(wǎng)絡;
二、數(shù)據(jù)采集同步性
1)測試系統(tǒng)可能分為多層架構(gòu),在每一層架構(gòu)上的數(shù)據(jù)收集要保證時間上的同步,這樣才能對系統(tǒng)運行期間的狀態(tài)變化作出準確的描述;
2)各子系統(tǒng)的性能監(jiān)測數(shù)據(jù)要保證時間上同步;
3)測試日志在測試過程中,每一天都要完成測試日志,記錄一天測試進程,出現(xiàn)問題;
三、數(shù)據(jù)采集方法
數(shù)據(jù)的采集,根據(jù)平臺的不同,分為兩類Linux和windows,其中
Linux系統(tǒng),包括
1)性能監(jiān)測工具
A)cpu,內(nèi)存vmstat
B)磁盤I/Oiostat
C)網(wǎng)絡sar
Windows系統(tǒng)
2)性能監(jiān)測工具
按以下順序,打開性能監(jiān)視器控制面板—>管理工具—>性能
四、測試數(shù)據(jù)整理
測試數(shù)據(jù)的整理,將測試數(shù)據(jù)表格化,或者圖形化,為方便后續(xù)的分析做準備;
1)測試數(shù)據(jù)圖形化
針對Linux系統(tǒng),Linux系統(tǒng)下我們采集到的數(shù)據(jù)都是文本格式,需要我們把這些數(shù)據(jù)圖形化,便于后續(xù)的數(shù)據(jù)分析對比;
圖形包括折線圖或柱狀2)文件命名規(guī)則
命名規(guī)則
A)盡量讓文件名包含更多的文件信息;
B)格式工具簡稱_平臺信息_測試模型;
五、測試方法
1)采樣時間間隔在同一次測試中,不同工具的采樣時間間隔需要相等;
2)采點數(shù)值采樣點為數(shù)值N,
A)測試時間為1小時以下150<N<250;
B)測試時間為1-2小時250<N<450;
3)vmstat的使用首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù)
[root@nodel~]# cd/tmp/
[root@nodel tmp]# mkdir test_vmstat
執(zhí)行如下命令[root@nodel tmp]#vmstat5n>/tmp/test_vmstat/file_name#每5秒鐘取值一次,并將結(jié)果輸出到文件中;
4)iostat的使用首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù)命令如下
[root@nodel~]# cd/tmp/
[root@nodel tmp]# mkdir test_iostat
執(zhí)行如下命令
[root@nodel tmp]# iostat-x5n|grep sdn>/tmp/test_iostat/file_name#每5秒鐘取值一次,并將結(jié)果輸出到文件中;
5)sar的使用首先需要創(chuàng)建目錄,用來存放測試數(shù)據(jù)命令如下
[root@nodel~]# cd/tmp/
[root@nodel tmp]# mkdir test_sar
執(zhí)行如下命令
[root@nodel tmp]# sar-n DEV5n|grep eth0>/tmp/test_sar/file_name#每5秒鐘取值一次,并將結(jié)果輸出到文件中;
六、windows性能監(jiān)測工具控制面板—>管理工具—>性能,使用步驟
1)計數(shù)器日志打開性能監(jiān)測工具,點擊性能日志和警報,選擇計數(shù)器日志完成此步驟,在右邊工作區(qū)域看到有一個默認的系統(tǒng)日志文件system overview
2)新建日志設置在右側(cè)的工作區(qū)域,右鍵點擊,選擇新建日志設置,彈出對話框,填入日志名稱;
3)添加計數(shù)器單擊添加計數(shù)器鈕,彈出對話框,在性能對象里面,選擇要監(jiān)測的對象,包括處理器,內(nèi)存,網(wǎng)絡;
每一個對象對應若干計數(shù)器,選中從列表中選擇計數(shù)器,來添加需要的計數(shù)器完成后,進行下一步
4)設置日志文件以上步驟為常規(guī)設置,現(xiàn)在點擊日志文件,進行日志文件的設置;此處保留默認;
5)設置計劃設置為手動執(zhí)行或根據(jù)需要,進行計劃設置;
6)測試開始,啟動,圖標顏色有紅色變?yōu)榫G色;
新建日志完成,在計數(shù)器日志工作區(qū)就看到新建日志;紅色圖標為停止狀態(tài),綠色為運行狀態(tài);選中日志,點擊右鍵或手動執(zhí)行開始與停止;
六測試數(shù)據(jù)解讀與分析
關(guān)于Linux平臺測試過程中,通過vmstat,iostat,sar監(jiān)視系統(tǒng)資源,主要包括進程,內(nèi)存,swap,cpu,磁盤I/O以及網(wǎng)卡;
vmstat分析關(guān)鍵參數(shù)
1)進程我們主要關(guān)注r與b參數(shù)
r參數(shù)運行隊列線程數(shù)目,包括正在運行的線程和等待CPU時間片的線程,這個數(shù)字大于CPU的數(shù)目,至少有一個線程要等待CPU,等待CPU的線程越多,越有可能對性能產(chǎn)生影響;
b參數(shù)每秒等待隊列中的內(nèi)核線程平均數(shù),包括正在等待文件系統(tǒng)I/O的線程,或由于內(nèi)存裝入控制而被掛起的線程;
進程由于內(nèi)存裝入控制而被掛起,在vmstat報告中的阻塞列(b)表明線程數(shù)目增加,而不是運行隊列中線程數(shù)目增加;
2)cpu在該時間間隔內(nèi)使用CPU時間的百分比細分,cpu列如下
us參數(shù)us列顯示了用戶模式所消耗的CPU時間;
sy參數(shù)sy列詳細顯示了CPU在系統(tǒng)模式下執(zhí)行一個線程所花時間的百分比;
id參數(shù)id列顯示了沒有未決磁盤I/O時CPU空閑或等待時間的百分比,沒有未決I/O,所有用于等待的時間歸入空閑時間中;
wa參數(shù)wa列詳細顯示了有未決磁盤I/O時CPU空閑的時間百分比,當?shù)却谶\行時至少有一個未完成的磁盤I/O,該時間歸入等待I/O的時間,該進程使用異步I/O,則對磁盤的I/O請求使調(diào)用線程被阻塞或睡眠,直到請求被完成;一旦進程的I/O請求完成,該進程被放入運行隊列中,I/O很快完成,該進程使用更多的CPU時間;wa的值不應該超過25%;
3)其他參數(shù)
Memory
swpd虛擬內(nèi)存使用情況,單位KB;
free空閑的內(nèi)存,單位KB
buff被用來做為緩存的內(nèi)存數(shù),單位KB;
Swap
si從磁盤交換到內(nèi)存的交換頁數(shù)量,單位KB/秒;
so從內(nèi)存交換到磁盤的交換頁數(shù)量,單位KB/秒;
IO
bi發(fā)送到塊設備的塊數(shù),單位塊/秒;
bo從塊設備接收到的塊數(shù),單位塊/秒;
分析
1)r遠大于cpu的數(shù)目,系統(tǒng)就會變慢,r大于cpu數(shù)目的4倍,說明系統(tǒng)正面臨cpu功率短缺,系統(tǒng)會嚴重變慢;
2)id值經(jīng)常為0,并且sy+us經(jīng)常大于80%,說明系統(tǒng)cpu負荷過重或者說缺少cpu資源;
3)wa值大于25%,說明磁盤沒有被很好的平衡,系統(tǒng)花費大量時間等待磁盤I/O或者磁盤的負荷很重;
4)linux首先使用物理內(nèi)存,物理內(nèi)存使用完后再使用swap分區(qū),所以linux系統(tǒng)一般內(nèi)存利用率都比較高,si,so都等于0,說明swap分區(qū)未被使用;
改進方案
1)調(diào)整應用,使其更好的利用cpu,增加cpu數(shù)目或者升高cpu主頻;
2)優(yōu)化磁盤,解決I/O問題;
iostat分析
關(guān)鍵參數(shù)
rkB/s每秒讀K字節(jié)數(shù),是rsect/s的一半,因為每扇區(qū)大小為512字節(jié);
wkB/s每秒寫K字節(jié)數(shù),是wsect/s的一半;
avgqu-sz平均I/O隊列長度;
await平均每次設備I/O操作的等待時間(毫秒);
svctm平均每次設備I/O操作的服務時間(毫秒);
%util一秒中有百分之多少的時間用于I/O操作,或者說一秒中有多少時間I/O隊列是非空的;
分析
1)磁盤顯示長時間的高讀寫,同時svctm也遠大于30,await的值也遠大于svctm,那么說明系統(tǒng)存在嚴重的磁盤I/O瓶頸;
2)%util一直接近100%,說明系統(tǒng)產(chǎn)生的I/O請求太多,系統(tǒng)可能存在磁盤瓶頸;
3)wait的大小一般取決于服務時間svctm以及I/O隊列的長度和I/O請求的發(fā)出模式,svctm比較接近await,說明I/O幾乎沒有等待時間;await遠大于svctm,說明I/O隊列太長,應用得到的響應時間變慢
改進方案
1)調(diào)整應用,令其使用磁盤i/o更加有效率,通過修改磁盤隊列、使用應用服務器的cache;
2)將文件系統(tǒng)分布到2個或多個磁盤上,改變磁盤raid方案;
3)更換更好的盤陣或磁盤,使用更快的存儲方案;
關(guān)于windows平臺
Windows平臺測試,要在性能監(jiān)視器里面選定性能監(jiān)視對象,然后為每一個監(jiān)視對象添加性能監(jiān)測計數(shù)器,性能監(jiān)測對象及每個對象包含的計數(shù)器如下
1)processor處理器
Processor performance object包含衡量處理器活動方面的計數(shù)器,處理器是計算機進行算數(shù)和邏輯計算、在附屬件起始操作及運行處理線程的部分,一臺計算機有多臺處理器,處理器對象將每臺處理器作為對象的范例;
主要包含計數(shù)器
%Processor Time—指處理器用來執(zhí)行非閑置線程時間的百分比,計算方法是,測量范例間隔內(nèi)非閑置線程活動的時間,用范例間隔減去該值,該值是每臺處理器有一個閑置線程,該線程在沒有其他線程時運行時的消耗周期,這個計數(shù)器是處理器活動的主要說明器,顯示在范例間隔時所觀察的繁忙時間平均百分比,這個值是用100%減去該服務不活動的時間計算出來的;
2)memory內(nèi)存Memory performance object由描述計算機上的物理和虛擬內(nèi)存行為的計數(shù)器組成,物理內(nèi)存指計算機上的隨機存取存儲器的數(shù)量,虛擬內(nèi)存由物理內(nèi)存和磁盤上的空間組成,許多內(nèi)存計數(shù)器監(jiān)視頁面調(diào)度,過多的頁面調(diào)度引起拖延,會影響整個系統(tǒng)處理效率;
主要包含的計數(shù)器有Available MBytes是指以MB表示的物理內(nèi)存量,此內(nèi)存能立刻分配給一個進程或系統(tǒng)使用,它等于分配給待機、空閑和零分頁列表內(nèi)存的總和;
3)Physical Disk硬盤Physical Disk performance object包含監(jiān)視計算機上的硬盤或固定磁盤驅(qū)動器的計數(shù)器,磁盤用于存儲文件、程序及分頁數(shù)據(jù)并且通過讀取檢索這些項目并通過記錄寫入對其進行更改,物理磁盤計數(shù)器的值為邏輯磁盤值的總和;
主要包含的計數(shù)器有Avg.Disk Queue Length指讀取和寫入請求的平均數(shù);
%Disk Time指所選磁盤驅(qū)動器忙于為讀或?qū)懭胝埱筇峁┓账玫臅r間的百分比;
4)Network Interface網(wǎng)絡Network Interface performance object包括衡量通過一個TCP/IP網(wǎng)絡連接發(fā)送和接收字節(jié)和數(shù)據(jù)包的速率的計數(shù)器,它包括監(jiān)督連接錯誤的計數(shù)器;
主要包含的計數(shù)器有
Bytes Total/sec是在每個網(wǎng)絡適配器上發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi),Network Interface\\Bytes Received/sec是Network Interface\\BytesReceived/sec和Network Interface\\Bytes Sent/sec的總和;
全文摘要
本發(fā)明提供一種服務器性能數(shù)據(jù)采集與分析的方法,是以數(shù)據(jù)采集和分析為核心,通過對采集方法和目標的整理和規(guī)范,形成標準化操作,將能夠反映服務器性能的關(guān)鍵數(shù)據(jù)進行采集,以數(shù)據(jù)為依據(jù),對服務器的各個子系統(tǒng)進行分析,從而找到服務器性能瓶頸,為解決測試或者實際應用中提升服務器性能提供依據(jù)。
文檔編號G06F11/22GK101533366SQ200910014678
公開日2009年9月16日 申請日期2009年3月9日 優(yōu)先權(quán)日2009年3月9日
發(fā)明者杜繼東, 鑫 喬 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司