diff options
| -rwxr-xr-x | dell-ipmi-fancontroll.sh | 25 | ||||
| -rwxr-xr-x | fio-cdm | 114 |
2 files changed, 139 insertions, 0 deletions
diff --git a/dell-ipmi-fancontroll.sh b/dell-ipmi-fancontroll.sh new file mode 100755 index 0000000..cc89d93 --- /dev/null +++ b/dell-ipmi-fancontroll.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +MAXTEMP=30 + +TEMP=$(/usr/sbin/ipmi-sensors -r 5 | tail -n 1 | cut -d '|' -f 4 | tr -d ' ') + +SP_1800=0x06 +SP_2000=0x09 +SP_3000=0x1a +SP_9000=0x46 + +SP=$SP_1800 + +if [[ $TEMP > $MAXTEMP ]] ; then + # Set auto speed + /usr/bin/ipmitool raw 0x30 0x30 0x01 0x01 +else + # Enable edit + /usr/bin/ipmitool raw 0x30 0x30 0x01 0x00 + # Set speed 2K + /usr/bin/ipmitool raw 0x30 0x30 0x02 0xff $SP +fi + @@ -0,0 +1,114 @@ +#!/bin/sh + +TARGET="$1" + +#fio2cdm() { +# awk ' +# /^Seq-Read:/ {getline;if($1~/^read/) {seqread =$4}} +# /^Seq-Write:/ {getline;if($1~/^write/){seqwrite=$3}} +# /^Rand-Read-512K:/ {getline;if($1~/^read/) {rread512 =$4}} +# /^Rand-Write-512K:/ {getline;if($1~/^write/){rwrite512=$3}} +# /^Rand-Read-4K:/ {getline;if($1~/^read/) {rread4 =$4}} +# /^Rand-Write-4K:/ {getline;if($1~/^write/){rwrite4=$3}} +# /^Rand-Read-4K-QD32:/ {getline;if($1~/^read/) {rread4qd32 =$4}} +# /^Rand-Write-4K-QD32:/{getline;if($1~/^write/){rwrite4qd32=$3}} +# function n(i) { +# split(gensub(/bw=([0-9.]+)(([KM]?)B\/s,)?/,"\\1 \\3", "g", i), a); +# s = a[1]; u = a[2]; +# if(u == "K") {s /= 1024} +# if(u == "") {s /= 1024 * 1024} +# return s; +# } +# END { +# print(seqread); +# print ("| | Read(MB/s)|Write(MB/s)|"); +# print ("|------|-----------|-----------|"); +# printf("| Seq |%11.3f|%11.3f|\n", n(seqread), n(seqwrite)); +# printf("| 512K |%11.3f|%11.3f|\n", n(rread512), n(rwrite512)); +# printf("| 4K |%11.3f|%11.3f|\n", n(rread4), n(rwrite4)); +# printf("|4KQD32|%11.3f|%11.3f|\n", n(rread4qd32),n(rwrite4qd32)); +# } +# ' +#} + +fio2cdm() { + awk -F ';' ' + $3 == "Seq-Read" { seqread=$7 ; seqreadio=$8 } + $3 == "Seq-Write" { seqwrite=$48 ; seqwriteio=$49 } + $3 == "Rand-Read-512K" { rread512=$7 ; rread512io=$8 } + $3 == "Rand-Write-512K" { rwrite512=$48 ; rwrite512io=$49 } + $3 == "Rand-Read-4K" { rread4=$7 ; rread4io=$8 } + $3 == "Rand-Write-4K" { rwrite4=$48 ; rwrite4io=$49 } + $3 == "Rand-Read-4K-QD32" { rread4qd32=$7 ; rread4qd32io=$8 } + $3 == "Rand-Write-4K-QD32" { rwrite4qd32=$48 ; rwrite4qd32io=$49 } + + function n(i) { + return i/1024; + } + END { + print ("| | Read(MB/s) / IOPS|Write(MB/s) / IOPS|"); + print ("|------|--------------------|--------------------|"); + printf("| Seq |%11.3f / %6d|%11.3f / %6d|\n", n(seqread), seqreadio, n(seqwrite), seqwriteio); + printf("| 512K |%11.3f / %6d|%11.3f / %6d|\n", n(rread512), rread512io, n(rwrite512), rwrite512io); + printf("| 4K |%11.3f / %6d|%11.3f / %6d|\n", n(rread4), rread4io, n(rwrite4), rwrite4io); + printf("|4KQD32|%11.3f / %6d|%11.3f / %6d|\n", n(rread4qd32), rread4qd32io,n(rwrite4qd32),rwrite4qd32io); + } + ' +} + +trap "rm -f ${TARGET}/.fio-diskmark" 0 1 2 3 9 15 + +# see. http://www.winkey.jp/article.php/20110310142828679 +cat <<_EOL_ | fio --output-format=terse - | fio2cdm +[global] +ioengine=libaio +iodepth=1 +size=1g +direct=1 +runtime=60 +directory=${TARGET} +filename=.fio-diskmark + +[Seq-Read] +bs=1m +rw=read +stonewall + +[Seq-Write] +bs=1m +rw=write +stonewall + +[Rand-Read-512K] +bs=512k +rw=randread +stonewall + +[Rand-Write-512K] +bs=512k +rw=randwrite +stonewall + +[Rand-Read-4K] +bs=4k +rw=randread +stonewall + +[Rand-Write-4K] +bs=4k +rw=randwrite +stonewall + +[Rand-Read-4K-QD32] +iodepth=32 +bs=4k +rw=randread +stonewall + +[Rand-Write-4K-QD32] +iodepth=32 +bs=4k +rw=randwrite +stonewall +_EOL_ + |
