| #!/bin/bash |
| # |
| # Copyright (c) 2002-2003 Silicon Graphics, Inc. All Rights Reserved. |
| # |
| # This program is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU General Public License as |
| # published by the Free Software Foundation. |
| # |
| # This program is distributed in the hope that it would be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with this program; if not, write the Free Software Foundation, |
| # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| # |
| # |
| # Does a bonnie throughput run (80M file and 1K chunksize if the |
| # BONNIE_FILESIZE and/or BONNIE_CHUNKSIZE variables are not set), |
| # then massages the output into CSV format with the human-readable |
| # output preceding it as a "comment" (ie. #-prefixed). |
| # |
| BONNIE_FILESIZE=${BONNIE_FILESIZE:=500M} |
| BONNIE_CHUNKSIZE=${BONNIE_CHUNKSIZE:=1K} |
| |
| [ -z "$here" ] && here=`pwd` |
| . $here/common.bonnie |
| |
| # |
| # Sample bonnie throughput output (stderr): |
| #Version 1.02c ------Sequential Output------ --Sequential Input- --Random- |
| # -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- |
| #Machine Size:chnk K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP |
| # 150M:64k 52024 99 88969 99 245492 100 3746 264 |
| # |
| filter_stderr() |
| { |
| sed -e 's/^..................../# /g' | awk '{print} END {print "#"}' |
| } |
| |
| # |
| # Sample bonnie throughput output (stdout): |
| # ",150M:64k,,,52024,99,88969,99,,,245492,100,3746.0,264,,,,,,,,,,,,," |
| # |
| filter_stdout() |
| { |
| perl -ne ' |
| chomp; |
| s/,+/,/g; s/^,//; s/,$//; |
| @values = split /,/; |
| printf "%9s", shift @values; |
| for ($i = 0; $i <= $#values; $i++) { |
| if ($i % 2) { printf ",%4s%%", $values[$i] } |
| else { printf ",%10s", $values[$i] } |
| } |
| printf "\n"; |
| ' |
| } |
| |
| if [ $# -gt 0 ]; then |
| printf "%9s,%10s,%5s,%10s,%5s,%10s,%5s,%10s,%5s\n" size:chnk \ |
| writeK/s wCPU rewriteK/s rwCPU readK/s rCPU seek/s sCPU |
| exit 0 |
| fi |
| run_bonnie -n 0 -s $BONNIE_FILESIZE:$BONNIE_CHUNKSIZE |