LoadRunner監控Unix、Windows方法及常用效能指標

狂師發表於2019-05-09

 

一、LoadRunner監控Linux資源…. 3

(一)、準備工作… 3

1、可以通過兩種方法驗證伺服器上是否配置了rstatd守護程式:… 3

(2)使用find命令… 3

2、安裝rpc.rstatd服務… 3

3、啟動rpc.rstatd服務… 3

4、設定rpc.rstatd服務自動啟動… 4

5、幾點小技巧: 4

(二) LoadRunner獲取Linux效能計數器… 6

1、啟動LoadRunner並監控Linux系統資源:… 6

2、常用計數器說明… 7

二、LoadRunner監控Windows資源…. 8

(一)、Windows開啟LR監控的配置資訊:… 8

步驟1. 8

步驟2. 8

步驟3. 8

步驟4. 8

步驟5. 8

(二)、一些重要的效能計數器… 9

1、效能計數器大類選擇… 9

2、效能計數器詳細說明… 9

LoadRunner監控作業系統

一、LoadRunner監控Linux資源

(一)、準備工作

   首先,監視Linux一定要有rstatd這個守護程式,有的Linux版本里也有可能是rpc.rstatd這裡只是名字不同而已,功能是一樣的.

1、可以通過兩種方法驗證伺服器上是否配置了rstatd守護程式:

(1)使用rup命令

它用於報告計算機的各種統計資訊,其中就包括rstatd的配置資訊。使用命令rup 10.130.61.203,此處10.130.61.203是要監視的linux/Unix伺服器的Ip,如果該命令返回相關的統計資訊。則表示已經配置並且啟用了rstatd守護程式;若未返回有意義的統計資訊,或者出現一條錯誤報告,則表示rstatd守護程式尚未被配置或有問題。

(2)使用find命令

#find / -name rpc.rstatd,該命令用於查詢系統中是否存在rpc.rstatd檔案,如果沒有,說明系統沒有安裝rstatd守護程式。

如果伺服器上沒有安裝rstatd程式(一般來說LINUX都沒有安裝),需要下載一個包才有這個服務,包名字是rpc.rstatd-4.0.1.tar.gz. 這是一個原始碼,需要編譯,下載並安裝rstatd

 

2、安裝rpc.rstatd服務

如系統未安裝rpc.rstatd服務,剛需要進行安裝,附安裝步驟如下:

1、下載並安裝rstatd                         —證券測試室FTP伺服器上有(LR目錄下)

2、tar -xzvf  rpc.rstatd.tar.gz             —解壓rcp.rstatd

3、chmod 777 rpc.rstatd                            —改變該檔案讀寫的許可權,擁有所有許可權。

4、cd  rpc.rstatd                             —進入到rpc.rstatd目錄中

5、./configure                                          —配置rc.rstatd的安裝,我是按照預設方式

6、make                                           —/編譯rc.rstatd

7、make install                                  —安裝

 

3、啟動rpc.rstatd服務

執行:rpc.rstatd命令,啟動rpc.rstatd服務。

執行:rpcinfo –p 命令,檢查rpc服務的狀態。

如回顯結果為下文,則說明rpc.rstatd服務啟動成功,可以用LR去監視了。

 

[root@localhost ~]# rpcinfo -p

   程式 版本 協議   埠

    100000    2   tcp    111  portmapper

    100000    2   udp    111  portmapper

    100024    1   udp    614  status

    100024    1   tcp    617  status

    100001    5   udp    945  rstatd

    100001    3   udp    945  rstatd

    100001    2   udp    945  rstatd

    100001    1   udp    945  rstatd

 

4、設定rpc.rstatd服務自動啟動

如果需要將rpc.rstatd服務設定成自動啟動(開機啟動),則需要修改/etc/xinetd.d/下的三個配置檔案rlogin ,rsh, rexec ,使用VI命令開啟這三個檔案並將其中的disable = yes都改成 disable = no ( disabled 用在預設的 {} 中禁止服務),或是把# default: off都設定成 on 。這個的意思就是在xinetd啟動的時候預設都啟動上面的三個服務!

 

(如果執行後出現出現亂碼,在vim /etc/sysconfig/i18n下更改LANG=

zh_CN.UTF-8 為LANG=”en_US.UTF-8″即可。)

A: service xinetd reload

B: service xinetd rstart

 

5、幾點小技巧:
(1)檢查是否啟動: rsh server 監聽的TCP 514
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到514在監聽說明rsh伺服器已經啟動。

(2)檢查是否啟動: rstatd
輸入命令: rpcinfo -p
如果能看到類似如下資訊:
程式 版本 協議 埠
100001 5 udp 937 rstatd
100001 4 udp 937 rstatd
100001 3 udp 937 rstatd
100001 2 udp 937 rstatd
100001 1 udp 937 rstatd
那就說明rstatd服務啟動了,(當然這裡也可以用ps ax代替)

(3)重起xinetd方法:
在suse linux如下操作:
cd /etc/init.d/
./xinetd restart
看到網上有的地方說使用如下命令:
# service xinetd reload
# /sbin/service xinetd rstart
不知道是在什麼系統用的。

(4)安裝rsh,和rsh-server兩個服務包方法
a. 解除安裝rsh
# rpm –q rsh———-檢視版本號
# rpm -e 版本號———解除安裝該版本。
b.安裝
# rpm –ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm

(5)在啟動rpc.rstatd時,會報錯“Cannot register service: RPC: Unable to receive; errno = Ction refused”
解決方法如下:
# /etc/init.d ./portmap start
# /etc/init.d ./nfs start
然後再次啟動rpc.rstatd就好了。

 

 

注:

1、Rstatd檔案在FTP伺服器上有,資源地址:ftp://192.168.51.233/01測試工具/HP Mercury Interctive/LoadRunner/資源監控配置及所用的包/linux監控包/

 

2、rstatd Rstat協議允許網路上的使用者獲得同一網路上各機器的效能引數。

 

 

 

 

 

(二) LoadRunner獲取Linux效能計數器

1、啟動LoadRunner並監控Linux系統資源:

在controller中,將System resource Graphs中的Unix resources拖到右側的監控區域中,並單擊滑鼠右鍵選擇“Add Measurements”,在彈出的對話方塊中輸入被監控的linux系統的IP地址,然後選擇需要監控的效能指標(指標簡介見下文),並點選“確定”。

此時可能會出現如下錯誤:

 

上圖說明RPC服務沒有成功啟動。

解決辦法:見前文“(一)、準備工作”

 

上圖說明是Linux系統中的防火牆開啟了並且阻擋了LoadRunner監控Linux系統的資源。

解決辦法:關閉防火牆: [root@localhost ~]# /etc/init.d/iptables stop;

 

監控成功之後如下圖所示:

 

 

2、常用計數器說明

 

1)、CPU指標

Average load

  上一分鐘同時處於“就緒”狀態的平均程式數,這個數值除以CPU個數應該小於2,如果長期是2證明有排隊的

CPU utilization

  CPU 的使用時間百分比,如果在75%以上,則可以考慮換CPU了

Swap-in rate

  正在交換的程式數

Swap-out rate

  正在交換的程式數

Context switches rate

  每秒鐘在程式或執行緒之間的切換次數

System mode CPU utilization

  在系統模式下使用 CPU 的時間百分比

User mode CPU utilization

  在使用者模式下使用 CPU 的時間百分比

Interrupt rate

  每秒內的裝置中斷數

2)、記憶體

Page-in rate

  每秒鐘讀入到實體記憶體中的頁數

Page-out rate

  每秒鐘寫入頁面檔案和從實體記憶體中刪除的頁數

Paging rate

  每秒鐘讀入實體記憶體或寫入頁面檔案的頁數,如果持續在幾百,可能要加大記憶體了

3)、磁碟

Collision rate

  每秒鐘在乙太網上檢測到的衝突數

Disk rate

  磁碟傳輸速率

4)、網路

Incoming packets error rate

  接收乙太網資料包時每秒鐘接收到的錯誤數

Incoming packets rate

  每秒鐘傳入的乙太網資料包數

Outgoing packets errors rate

  傳送乙太網資料包時每秒鐘傳送的錯誤數

Outgoing packets rate

  每秒鐘傳出的乙太網資料包數

 

二、LoadRunner監控Windows資源

(一)、Windows開啟LR監控的配置資訊:

步驟1.控制皮膚》管理工具》服務,開啟以下服務:Remote Procedure Call(RPC) 、Remote Registry Service、Network DDE。

 

步驟2.被監視的WINDOWS機器:右擊我的電腦,選擇管理->共享資料夾->共享 在這裡面要有C$這個共享資料夾(要是沒有自己手動加)。

 

步驟3.保證被監控的伺服器,能用管理員登入(LR要連線WINDOWS機器進行監視,要有管理員帳號和密碼)。被監視的WINDOWS機器上管理工具 -> 本地安全策略 -> 安全選項 -> 網路訪問:本地帳戶的共享和安全模式,把訪問方式改為“經典”模式,這樣就可以以administrator的身份登陸了。

 

步驟4.裝LR的機器上使用執行,輸入 \被監視機器IPC$ ,輸入管理員帳號和密碼,如果能看到被監視機器的C盤了,就說明你得到了那臺機器的管理員許可權,可以使用LR去連線了。如果不能共享,可能Server服務沒有啟動,請先啟動此服務。

 

步驟5.在Controller找到Windows Resource計數器,右鍵”Add Measrements…”新增要監控的主機地址,點選”Add”後配置你的監控機,選擇需要的監控指標。

監控成功之後如下圖所示:

 

(二)、一些重要的效能計數器

1、效能計數器大類選擇

Process object下的所有計數器。

Process or object下的所有計數器

System object下的所有計數器

Memory object下的所有計數器

 

2、效能計數器詳細說明

分析效能日誌的時候,我會重點觀察下面這些計數器

 

 (1)Process object

該計數器可以針對目標程式分析記憶體,CPU,執行緒數目和handle數目。首先要確定目標程式,然後分析目標程式的下面一些計數器:

 

% Processor Time

該計數器是該程式佔用CPU資源的指標。當程式繁忙的時候,CPU平均佔用率應該在80%以內。如果超過該數值,程式可以認為發生了high CPU的問題。另外一種問題是CPU波動幅度大。雖然平均佔用率不高,但是上下跳動頻繁。在某一個短時間段裡面,會有連續高CPU的情況出現。

 

Handle Count

該計數器記錄了當前程式使用的kernel object handle數量。Kernel object是重要的系統資源。當程式進入穩定執行狀態的時候,Handle Count數量也應該維持在一個穩定的區間。如果發現Handle Count在整個程式週期內總體趨勢是連續向上,可以考慮程式是否有Handle Leak。

 

ID Process

該計數器記錄了目標程式的程式ID。你可能覺得奇怪,ID有什麼好觀察的。程式ID是用來觀察程式是否有重啟發生。比如ASP.NET工作程式可能會自動回收。由於程式名都相同,只有通過程式ID來判斷是否程式有重新啟動現象。如果ID有變化,考慮程式是否發生崩潰或者Recycle。

 

Private Bytes

該計數器記錄了當前通過VirtualAlloc API Commit的Memory數量。無論是直接呼叫API申請的記憶體,被Heap Manager申請的記憶體,或者是CLR 的managed heap(託管堆),都算在裡面。跟Handle Count一樣,如果在整個程式週期內總體趨勢是連續向上,說明有Memory Leak(記憶體洩漏)。

指這個處理不能與其他處理共享的、已分配的當前位元組數。

 

 

 

Virtual Bytes

指處理使用的虛擬地址空間的以位元組數顯示的當前大小。使用虛擬地址空間不一定是指對磁碟或主記憶體頁的相應的使用。虛擬空間是有限的,可能會限制處理載入資料庫的能力。該計數器記錄了當前程式申請成功的使用者動態總記憶體地址,包括DLL/EXE佔用的地址和通過VirtualAlloc API Reserve的Memory Space數量,所以該計數器應該總大於Private Bytes。一般來說,Virtual Bytes跟Private Bytes的變化大致一致。由於記憶體分片的存在, Virtual Bytes跟Private Byes一般保持一個相對穩定的比例關係。當Virtual Bytes跟Private Bytes的比例關係大於2的時候(可通過windown/LR的監控視窗獲取比例),程式往往有比較嚴重的記憶體地址分片(記憶體地址分片概念說不清,清楚後補充)。

 

 

(2)Processor object

該計數器記錄系統中晶片的負載情況。由於普通程式並不刻意繫結到某個具體CPU上執行,所以在多CPU機器上觀察Total Instance也就足夠了。

 

% Processor Time

該計數器跟Process下的% Processor Time的意義一樣,不過這裡記錄的是所有程式執行緒使用處理器執行指令所花的時間百分比,而不是針對具體某一個程式。通過把這個計數器跟Process下的同名計數器一起比較,就能看出系統的高CPU問題是否是由於單一的某個程式導致的。

 

(3)System

System object

該計數器記錄系統中一個整體的統計資訊。所以不區分Instance. 通過比較System object下的counter和其他counter的變化趨勢,往往能看出一些線索。

 

Context Switch/sec

Context Switch標示了系統中整體執行緒的排程,切換頻率。執行緒切換是開銷比較大的操作。頻繁的執行緒切換導大量CPU週期被浪費。所以看到高CPU的時候,一定要跟Context Switch一起比較。如果兩者有相同的變化趨勢,高CPU往往是由於contention導致的,而不是死迴圈。

 

Exception Dispatches/sec

Exception Dispatches表示了系統中異常派發,處理的頻繁程式。跟執行緒切換一樣,異常處理也需要大量的CPU開銷。分析方法跟Context Switch雷同。

 

File Data Operations/sec

File Data Operations記錄了當前系統中磁碟檔案讀寫的頻繁程度。通過觀察該計數器跟其他效能指標的變化趨勢,通常能夠判斷磁碟檔案操作是否是效能瓶頸。類似的計數器還有Network InterfaceBytes total/sec。

 

 

(4)Memory

Memory object記錄了當前系統中整體記憶體的統計資訊。

 

Available Mbytes

該計數器是指實體記憶體的可用數,實體記憶體的可用數是指計算機上可用於執行處理的有效實體記憶體的位元組 數量.這個計數器只顯示上一次觀察到的值;它不是一個平均值.至少要有10%的實體記憶體值,如果available 至少要有10%的實體記憶體值,如果available Mbytes值一直很小(4M或更小),說明計算機 Mbytes值一直很小(4M或更小),說明計算機總的記憶體可能不足,或某程式沒有釋放記憶體。

 

Committed Bytes

以位元組表示的確認虛擬記憶體。確認記憶體磁碟頁面檔案上保留了空間的實體記憶體。每個物理磁碟上可以有一個或一個以上的頁面檔案。這個計數器只顯示上一回觀察到的值;它不是一個平均值。

 

Available Mbytes

Available Mbytes記錄了當前剩餘的實體記憶體數量。Committed Bytes記錄了所有程式commit的記憶體數量。

結合以上兩個計數器可以觀察到:

1) 兩者相加可以粗略估計系統總體可用記憶體多少,便於估計物理配置。

 

2) 當Available Mbytes少於100MB的時候,說明系統總體記憶體吃緊,會影響到整個系統所有程式的效能。應該考慮增加實體記憶體或者監察記憶體洩露。

 

3) 通過比較ProcessPrivate Bytes跟Virtual Bytes,便於進一步確認是否有記憶體洩露,判斷記憶體洩露是否是某一單個程式導致。

 

Free System Page Table Entries,Pool Paged Bytes和Pool Paged Bytes

 

這三個計數器可以衡量核心態空閒記憶體的數量。特別是當使用/3GB開關後,核心態記憶體地址被壓縮,容易導致核心態記憶體不足,繼而引發一些非常怪的問題。

 

技術改變世界!
–狂詩絕劍


相關文章