<开源人 原创>


由于业务的需要,需要对现有服务器进行IO性能测试,测试过程中发现硬盘数序写IOPS很低,结合以往的经验判断,一定是有问题,多方查找资料,判断是正确的,原来硬盘的写缓存一直是关闭的。找到原因,速速编写解决脚本,如下:

#!/bin/bash
#
# Seagate Constellation ES 3 cache open script
#
# create by xk
# date 2013-09-25
# author web http://www.bdkyr.com
# mail:www_bdkyr_com@126.com
#
# Source function library.
. /etc/rc.d/init.d/functions

#close cache function
close_cache ()
{
for i in {a..l}
do
#test
#echo $i
#close cache
sdparm -s WCE=0 /dev/sd${i}
action $"/dev/sd${i} cache close" /bin/true
done
}

#open cache function
open_cache ()
{
for i in {a..l}
do
#test
#echo $i
#close cache
sdparm -s WCE=1 /dev/sd${i}
action $"/dev/sd${i} cache open" /bin/true
done
}

#check disk cache
check_cache ()
{
for i in {a..l}
do
#test
#echo $i
#close cache
sdparm -g WCE /dev/sd${i}
done
}
case "$1" in

open)
open_cache
;;

close)
close_cache
;;

check)
check_cache
;;

*)
echo "Usage:$0 {open|close|check}"
;;
esac
exit
#脚本其实很简单,真正需要考虑的是核实用这个脚本,哪种机型需要用。希望可以跟感兴趣的朋友进行探讨