Here’s a little script to format vmstat’s output into something you can import into LoadRunner’s analysis tool:
import sys, time sys.stdout.write("Date,Time," "Proc Run,Proc sleep," "Mem swap use,Mem free,Mem buffered,Mem Cache," "Swap in,Swap out,Blocks in,Blocks out," "Interrupts,Context switches," "CPU %User,CPU %System,CPU %Idle,CPU %Wait,CPU %Stolen\n") for line in iter(sys.stdin.readline, ""): if line[0] != 'p' and line[0:2] != ' r': t = time.strftime("%d/%m/%Y,%H:%M:%S", time.localtime(time.time())) line = ' '.join(line.split()) line = line.replace(" ", ",") sys.stdout.write("%s,%s\n" % (t, line)) sys.stdout.flush() |
(Thanks to fabrizoM for the help!)
Run it from a shell script like so:
#!/bin/bash vmstat 5 | python vmstat2csv.py >> servername-vmstat.log |
Then start the job from the shell, press CTRL+Z and nohup it (so it doesn’t die if you disconnect) and tail it (so you can keep an eye on it) like so:
[1]+ Stopped ./log.sh [gaz@box ~]$ bg [1]+ ./log.sh & [gaz@box ~]$ disown [gaz@box ~]$ tail -f servername-vmstat.log Date,Time,Proc Run,Proc sleep,Mem swap use,Mem free,Mem buffered,Mem Cache,Swap in,Swap out,Blocks in,Blocks out,Interrupts,Context switches,CPU %User,CPU %System,CPU %Idle,CPU %Wait,CPU %Stolen 23/11/2010,12:59:47,1,0,0,1266452,465576,2074012,0,0,2,15,0,36,0,0,99,0,0 23/11/2010,13:00:11,0,0,0,1264460,465584,2074024,0,0,0,168,581,577,1,1,94,4,0 |
When you’re done, import it into the Analysis tool via the Tools -> External Monitors menu. Make sure you set the correct date for the custom format and remember to keep a close eye on the timezones. If you make a mistake while importing there’s no going back, so save a backup of your analysis files before you attempt this.