Skip to content

Instantly share code, notes, and snippets.

@lyarbean
Created July 7, 2013 01:55
Show Gist options
  • Save lyarbean/5941959 to your computer and use it in GitHub Desktop.
Save lyarbean/5941959 to your computer and use it in GitHub Desktop.
Draw IOzone and dd result
#!/bin/bash
function izone_Rarray ()
{
echo "A <- array(0,dim=c(8,14))" > $2
grep 10485760 $1 | grep -P '1024|4096|8192|16384' | sed 's/ */,/g' | sed 's/,10485760,//g' | awk '{print "A[" NR ",] <- c(" $0 ")"}' >> $2
echo "write(t(A),file='${2/R/out}',ncolumns=14,sep='&')" >> $2
cat >> $2 << EOF
d <- data.frame(iter = seq(1, 8),
#reclen = A[,1],
write = A[,2],
rewrite = A[,3],
read = A[,4],
reread = A[,5],
"random read" = A[,6],
"random write" = A[,7],
"bkwd read" = A[,8],
#"record rewrite" = A[,9],
"stride read" = A[,10],
fwrite = A[,11],
frewrite = A[,12],
fread = A[,13],
freread = A[,14] )
cairo_pdf("${2/R/pdf}")
plot(NULL,
#data = d,
type = "o",
lwd = 1,
xaxs = "r",
xaxt ="n",
family = "WenQuanYi Micro Hei Mono",
xlim = c(1, 12),
xlab = "iozone测试: $1",
ylim = c(min(d[ ,-1]), max(d[ ,-1])),
ylab = "速率(Kbytes/sec)")
grid(col='gray')
axis(1, at=1:8, labels=c("1M","4M","8M","16M","1M\n SYNC","4M\nSYNC","8M\nSYNC","16M\nSYNC"),cex.axis=0.6)
sym <- c(0,1,2,3,4)
colors <- c("blueviolet","orange4","olivedrab","royalblue4")
for (i in colnames(d)[-1]){
lines(d\$iter, d[,i], col=colors[(which(colnames(d)==i) %% 4 + 1)],
lty=(which(colnames(d)==i) %% 5), type='b',
pch=sym[which(colnames(d)==i) %% 5+1]
)
}
for (i in colnames(d)[-1]){
text(d\$iter,d[,i],as.character(d[,i]),cex=0.5,pos=4,col='gray')
}
legend('topright',legend=colnames(d)[-1],pch=rep(sym,4)[3:15],col=rep(colors,4)[3:16])
dev.off()
EOF
}
function dd_Rarray ()
{
echo "A <- array(0,dim=c(6,2))" > $2
grep copied $1 | awk -F',' '{print $2, $3}' | awk -F' ' '{print "A[" NR ",] <- c(" $1 "," $3 ")"}' >> $2
echo "write(A,file='${2/R/out}',ncolumns=6,sep='&')" >> $2
cat >> $2 << EOF
cairo_pdf("${2/R/pdf}")
plot(seq(1,6),t(A[,2]),
type = "o",
lwd = 2,
col = 'coral3',
lty=4,
xaxs = "r",
xaxt ="n",
family = "WenQuanYi Micro Hei Mono",
xlim = c(1, 6),
xlab = "dd测试: $1",
ylim = c(min(A[,2]), max(A[,2])+10),
ylab = "速率(MB/s)")
text(seq(1,6),t(A[,2]),as.character(A[,2]),cex=1,pos=3,col='red')
axis(1, at=1:6, labels=c("1M x 1e4\noflag=direct","16M x 625\noflag=direct","1G x 10\noflag=direct",
"1M x 1e4","16M x 625","1G x 10" ),cex.axis=0.6)
dev.off()
EOF
}
for i in rbdlog1 rbdlog2 rbdlog3 rbdlog4 rbdlog5 rbdlog6
do
izone_Rarray $i $i-iozone.R
R --no-save < $i-iozone.R
dd_Rarray $i $i-dd.R
R --no-save < $i-dd.R
done
for i in *.out; do vim -E -c "% Tabularize /&" -c "%s/$/\\\\\\\\\\\\hline/g" -c "visual" -c "wq" $i; done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment