| ##/bin/bash |
| # |
| # Copyright (c) 2002-2005 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 |
| # |
| |
| #check dbench is installed |
| if [ "`whereis dbench`" == "dbench:" ]; then |
| echo $0 error dbench not installed. |
| exit |
| fi |
| |
| _run_dbench() |
| { |
| mkdir ./dbench || exit 1 |
| cd dbench |
| dbench -x $1 |
| status=$? |
| cd .. |
| rm -fr ./dbench |
| [ $status -ne 0 ] && exit 1 |
| } |
| |
| # |
| # Sample dbench output: |
| # "Throughput 40.6701 MB/sec (NB=50.8376 MB/sec 406.701 MBit/sec)" |
| # |
| |
| # Output for a single-shot dbench run. |
| _format_header() |
| { |
| printf "%8s, %s\n" clients MB/sec |
| } |
| _filter_dbench() |
| { |
| clients=$1 |
| perl -ne 'm/Throughput (\S+) MB\/sec/ && |
| { printf "%8u, %s\n", '$clients', $1 }' |
| } |
| |
| # Output for a "multipass" dbench run. |
| _format_header_multipass() |
| { |
| while [ $# -gt 1 ]; do |
| printf "%4s::MB/sec," $1 |
| shift |
| done |
| printf "%4s::MB/sec\n" $1 |
| } |
| _filter_dbench_multipass() |
| { |
| perl -ne ' |
| if (m/Throughput (\S+) MB\/sec/) { |
| $results[$count++] = $1; |
| } |
| END { for ($i = 0; $i < $count - 1; $i++) { |
| printf "%12.3f,", $results[$i]; |
| } |
| printf "%12.3f\n", $results[$count-1]; |
| }' |
| } |