summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Bobov <abobov@gmail.com>2018-02-16 20:57:12 +0500
committerAnton Bobov <abobov@gmail.com>2018-02-28 23:47:25 +0500
commita0e40445545966ffceb06e1cf809a13c105661b4 (patch)
treeebadf946aa26803d970513eeed4060333051dde1
parent88a42702cb07b56cb577e1e701a1a075486a1e30 (diff)
Dell PowerEdge IPMI Fan control script.
IO benchmark.
-rwxr-xr-xdell-ipmi-fancontroll.sh25
-rwxr-xr-xfio-cdm114
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
+
diff --git a/fio-cdm b/fio-cdm
new file mode 100755
index 0000000..75ea28f
--- /dev/null
+++ b/fio-cdm
@@ -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_
+