LoadRunner监控Linux的三种方法
方法一、LR + SiteScope/nmon 方法二、使用rstatd包 1、下载rpc.rstatd-4.0.1.tar.gz 2、解压缩 tar -zxvf rpc.rstatd-4.0.1.tar.gz 3、配置 ./configure 4、编译 make 5、安装 make install 6、启动 rpc.rstatd 7、在LoadRunner中添加计数器 average load :在过去的1分钟,的平均负载 cpu utilization: cpu的使用率 disk traffic: disk传输率 paging rate: 每秒从磁盘读到物理内存,或者从物理内存写到页面文件的内存页数 Swap-in rate: 每秒交换到内存的进程数 Swap-out rate: 每秒从内存交换出来的进程 8、将服务设置为自动启动(Linux启动时自动启动这些服务): vi /etc/rc.d/rc.local 如: #rpc.rstatd--绝对路径 /usr/local/sbin/rpc.rstatd 方法3、使用Shell脚本 使用Shell脚本收集Linux资源写入csv文件,再通过LR的Analysis导入csv文件(Tools - Extenal Monitors - Import Data... ) Shell脚本如下所示: #!/bin/bash # (C) 2006 Mark Boddington, http://www.badpenguin.co.uk # Licensed under the GNU GPL Version 2. # ***** Version 0.2 ***** # TODO -- Create CSV parsing rules for the netstat. # ***** Configuration ***** # set LOG to the directory you want to write the performance data to. # set SLEEP to the number of seconds you want to sleep between samples # set HDD to the number of had disks in your machine. LOG=/home/mark/PerfMon/LIVE SLEEP=10 HDD=2 HTYPE=$(uname -s) genStat() { now=$( date +%S ) while [ "$now" -ne "30" ] do sleep 1 now=$( date +%S ) done while :; do dat=$(date +%Y%m%d,%H:%M:%S) day=$(date +%Y%m%d ) iostat -x 1 2 | sed -e"s/^/(.*/)/$dat /1/" | grep "[0-9]/." | tail -${HDD} >> ${LOG}/io.${day}.log & vmstat 1 2 | awk "{ print /"$dat/", /$0 }" | tail -1 >> ${LOG}/vm.${day}.log & netstat -i | grep -v Iface | awk "{ print /"$dat/", /$0 }" >> ${LOG}/netstat.${day}.log & uptime >> ${LOG}/uptime.${day}.log & sleep $SLEEP done } mkcsv() { dat=$1 if [ "$HTYPE" == "SunOS" ] then #IO CSV echo date,time,device,r/s,w/s,kr/s,kw/s,wait,actv,wsvc_t,asvc_t,%w,%b > ${LOG}/io.${dat}.csv cat ${LOG}/io.${dat}.log | egrep -v "extended|device" | awk ‘{ OFS=","; print $1,$12,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11 }‘ >> ${LOG}/io.${dat}.csv #VM csv echo date,time,k[r],k[b],k[w],swap,free,pg[re],pg[mf],pg[pi],pg[po],pg[fr],pg[de],pg[sr],m0,m1,m2,m1,interupt,syscall,ctxswt,cpu[us],cpu[sys],cpu[idl] > ${LOG}/vm.${dat}.csv cat ${LOG}/vm.${dat}.log | awk ‘{for(l=1;l<23;l++) { printf("%s,", $l) }; print $23 }‘ >> ${LOG}/vm.${dat}.csv #uptime csv echo time,users,5min,10min,15min > ${LOG}/uptime.${dat}.csv cat ${LOG}/uptime.${dat}.log | awk ‘{ OFS=","; if ( $6 ~ /^[hm][ri]/) { print $1,$7,$11$12$13 } else if ( $6 ~/^user/) { print $1,$5,$9$10$11} else { print $1,$6,$10$11$12} }‘ >> ${LOG}/uptime.${dat}.csv elif [ "$HTYPE" == "Linux" ] then #IO CSV echo "date,time,device,rrqm/s,wrqm/s,r/s,w/s,rsec/s,wsec/s,rkB/s,wkB/s,avgrq-sz,avgqu-sz,await,svctm,%util" > ${LOG}/io.${dat}.csv cat ${LOG}/io.${dat}.log | egrep -v "extended|device" | awk ‘{for(l=1;l<15;l++) { printf("%s,", $l) }; print $15}‘ >> ${LOG}/io.${dat}.csv #VM csv echo date,time,r,b,swp,free,buff,cache,si,so,bi,bo,in,cs,us,sy,id,wa > ${LOG}/vm.${dat}.csv cat ${LOG}/vm.${dat}.log | awk ‘{for(l=1;l<17;l++) { printf("%s,", $l) }; print $17 }‘ >> ${LOG}/vm.${dat}.csv #uptime csv echo time,users,5min,10min,15min > ${LOG}/uptime.${dat}.csv cat ${LOG}/uptime.${dat}.log | awk ‘{ OFS=","; if ( $4 ~ /^min/) { print $1,$5,$9$10$11 } else { print $1,$4,$8$9$10} }‘ >> ${LOG}/uptime.${dat}.csv else echo "Hmmm - An unexpected error occured. Have you change the host type?" fi } if [ "$HTYPE" != "SunOS" -a "$HTYPE" != "Linux" ] then echo "Error - This script has no knowlege of the System $HTYPE" echo " You will need to do some tweaking." exit fi case $1 in run) genStat ;; csv) if [ $# -lt 2 ] then echo "Error - You must supply a date in the form YYYYMMDD" exit fi mkcsv $2 ;; *) echo -e ":::: Usage ::::" echo -e "$0 run : Collect stats" echo -e "$0 csv YYYYMMDD : Generate CSV from stats" echo "" ;; esac
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。