LoadRunner监控Linux的三种方法

方法一、LR + SiteScope

方法二、使用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

参考:

http://www.loadrunnertnt.com/tools/local-unix-monitoring-made-possible/

http://www.badpenguin.co.uk/main/content/view/43/35/

时间: 2024-10-21 11:46:35

LoadRunner监控Linux的三种方法的相关文章

从U盘运行Linux操作系统的三种方法

摘要: 从U盘运行Linux操作系统的三种方法 usb_linux_0 你或许听说过在U盘上运行live Linux操作系统,但你知不知道可以永久的保存运行时的数据,或者直接将Linux安装到U盘?本文将介绍把Linux装进口袋(U盘)的三种方法,挑一种你最喜欢的方法吧! 将ISO映像烧录到U盘 usb_linux_1 把一个Linux发行版的Live ISO映像烧录到U盘中已 经变的极其容易了. 从U盘运行Linux操作系统的三种方法 usb_linux_0 你或许听说过在U盘上运行live

监控web db三种方法

一监控web方法1.端口本地netstat -lantup | grep 3306| wc -lss -l lntp |grep 3306 | wc -llsof -i :3306远程(就是)echo -e "\n" | telnet IP PORT |grep Connection | wc -lnmap nmap www.baidu.com -p 80 | grep open | wc -l 端口开放的只是说明rpm -qa | nc2.进程本地 ps -ef |grep 进程|

LoadRunner监控Tomcat的几种方法

通过JConsole监控Tomcat 1.打开tomcat5的bin目录中的catalina.bat文件,在头部注释部分的后面加上: set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 2.修改JMX远程访问授权. 进入JAVA安装目录

Linux更新内核的三种方法

Centos内核升级的三种方法 在基于CentOS平台的工作过程中,难免有时需要升级或者降级内核以验证功能.调试性能或者更新整个系统.如果从头重新编译一个内核,由于现在内核特性越来越复杂,依赖的库或者工具也不少,加之重新编译耗时不菲,了解更新内核的多种方式就显得尤为必要.下面根据笔者最近的工作,总结了三种方法,供大家参考. 方法一 如果机器不能联网,可以下载现有内核包到本地机器,直接在本地更新 1.从http://ftp.scientificlinux.org/linux/scientific/

ubuntu/linux mint 创建proc文件的三种方法(二)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方

ubuntu/linux mint 创建proc文件的三种方法(四)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

ubuntu/linux mint 创建proc文件的三种方法(一)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方

ubuntu/linux mint 创建proc文件的三种方法(三)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方