壓測方法整理:
1. 寫jmx腳本,整理csv數據文件;
2. 部署測試環境,把jmx和csv放在壓測機,把監控腳本nmon放被壓測機;
3. 安裝nmon:
a. wget http://jaist.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz
b. tar -zxvf nmon16d_x86.tar.gz 解壓
c. 查看linux版本:uname -a,我的是el6,所以nmon版本采用:nmon_x86_64_rhel6
下載安裝(另一種方式)
nmon默認下載之后只是一個可執行測的文件,但是下載時根據不同的系統來進行區分的,這里我選擇centos6.4系統版本。
大家可以根據自己的系統選擇相應的版本。
執行命令 more /etc/issue 查看系統版本。
下載頁面:http://sourceforge.net/projects/nmon/files/?source=navbar
下載得到文件nmon_x86_64_centos6,默認沒有執行權限
chmod 777 nmon_x86_64_centos6
Linux環境:
需要使用root用戶將nmon的安裝包上傳到服務器上解壓,同時使用命令
cp nmon_x86_64_rhel54 /usr/local/bin/nmon
添加nmon命令,以后就可以直接使用nmon命令進入nmon監控界面
增加全局環境變量
例如nmon安裝在/usr/local/bin/目錄下
vi
/etc/profile
|
在文件底部填加環境變量
#nmon
export NMON_HOME=/opt/nmon
export PATH=$NMON_HOME:$PATH
使配置文件生效
source /etc/profile
4. 運行nmon:./nmon_x86_64_rhel6 -s10 -c60 -f -m . 此時,會自動生成log文件
-s10每 10 秒采集一次數據。
-c60采集 60 次,即為采集十分鍾的數據。
-f生成的數據文件名中包含文件創建的時間。
-m生成的數據文件的存放目錄。
這樣就會生成一個 nmon 文件,並每十秒更新一次,直到十分鍾后。
生成的文件名如: _090824_1306.nmon ,"" 是這台主機的主機名。
nmon-h查看更多幫助信息。
也可以在啟動nmon后,運行以下命令來采集數據 :nmon -s 5 -c 120 -F test_15thread_30min_101.nmon 表示:每5秒采集一個數據,共采集120次,也就是取壓測10min的數據
5. 運行jmeter進行壓測:sudo sh/home/apache-tomcat-jmeter/jmeter/bin/jmeter.sh -n -t/home/apache-tomcat-jmeter/bin/a/a.jmx-l log.jtl
壓測機在Windows環境的話,直接點擊運行即可
6. 停止jmeter后停止nmon,導出日志文件進行分析
導出日志文件:
通過SecureCRTPortable 工具,連接本地和服務器:
然后在彈出的窗體內,輸入需要操作的命令(在此窗體內,相當於在本地操作,需要在Linux命令前加上l ),
比如:需要進入指定路徑 lcd F:\性能測試\result
然后獲取Linux環境的某個文件 get 文件名
將網卡飽和度寫入文件中:nicstat -i ens160 1s > test_1tread_30min_101net.txt
數據分析
下載 nmon analyser (生成性能報告的免費工具):
下載頁面:https://www.ibm.com/developerworks/community/wikis/home?lang=zh#!/wiki/Power%20Systems/page/nmon_analyser
解壓之后可以得到一個nmon analyser v34a.xls,雙擊打開

點擊中間的按鈕 Analyse nmon data ,選擇 nmon 數據文件,這樣就會生成一個分析后的結果文件。最后得到的報表如下
Ø Sys_summ頁,為服務器資源使用率匯總
我們需求的主要數據為cpu,mem,io和net。如下圖:
將以上內容,如實填寫至測試報告中。
Ø Cpu_all頁,是服務器cpu使用率的詳細數據
我們主要關注的內容為下圖
Cpu使用率分為三部分,系統、用戶和等待,分別對應圖中紅色、藍色和綠色部分。cpu使用率100%的情況,如果紅色占大部分,說明系統進程本身占據大部分cpu資源,可考慮系統是否存在過多僵屍進程或者系統進程存在死循環等原因;如果藍色占大部分,說明用戶進程占用大量cpu資源,可考慮被壓系統是否壓力過大,或者被壓系統存在大量運算等消耗cpu資源的操作。
故: CPU取CPU_ALL中User%的平均值:
Ø Net頁 網絡
Total read 每秒接收到的千字節的數目,如圖藍色部分
Total write 每秒發送的千字節的數目,如圖紅色部分
網絡=Total read-Total write
網絡的指標一般要根據設備來確定,百兆網卡的意思是每秒能夠傳輸的網絡流量是100Mbps,即最大的下載速度是12.5MB/s,一般服務器是千兆網卡,即125MB/s
故:net取 net頁面中ens160-total字段平均值
Ø Mem頁,是服務器內存使用率的概況。
圖內藍色線條為物理內存使用率,紅色線條為虛擬內存使用率。我們統計的內存使用率為:(已用物理內存+已用虛擬內存)/(物理內存+虛擬內存)x100%。
故:內存取Mem中的active字段的平均值
Ø Disk_SUMM頁,磁盤
Disk Read 每秒讀的千字節數目 圖中為藍色部分
Disk Write 每秒寫的千字節數目 圖中為紅色部分
IO/sec 每秒進行的IO數(一次IO就是控制操作一次讀或寫,IO塊就是讀或寫的大小),圖中為上方黑色的線,報告中寫的是這個參數的值
來自 <http://blog.itpub.net/23135684/viewspace-626439/>