Date: Tue, 26 Jan 2010 23:54:59 +0000 From: Adrian Wontroba <aw1@stade.co.uk> To: freebsd-stable@freebsd.org Subject: Re: immense delayed write to file system (ZFS and UFS2), performance issues Message-ID: <20100126235458.GA12634@swelter.hanley.stade.co.uk> In-Reply-To: <cf9b1ee01001261515n72f32265tf8dd0da5c8a3ec3c@mail.gmail.com> References: <cf9b1ee01001261515n72f32265tf8dd0da5c8a3ec3c@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jan 27, 2010 at 01:15:17AM +0200, Dan Naumov wrote:
> Can anyone confirm that using the WDIDLE3 utility on the 2TB WD20EADS
> discs will not cause any issues if these disks are part of a ZFS
> mirror pool? I do have backups of data, but I would rather not spend
> the time rebuilding the entire system and restoring enormous amounts
> of data over a 100mbit network unless I absolutely have to :)
How about using the "write every 5 seconds" python script posted earlier
in this thread by erik@tefre.com? Works nicely for me and stops the load
cycle count increase.
Thank you Erik!
To save searching, here is Erik's script as used here.
#!/usr/local/bin/python
# Author: Erik Stian Tefre <erik@tefre.com>
#Keeping this python script running prevents Load_Cycle_Count from
#incrementing on my WD15EADS drives by forcing a write every 5 seconds (2
#drive zfs mirror pool, average of 2 load cycles per minute when the
#script is not running):
import time,os
mypool = "/tank"
# ^^ Change to your pool!
fname = os.path.join(mypool, "wd_green_anti_idle.pyfile")
c = 0
f = open(fname, "w")
while True:
if c == 100:
f.close()
f = open(fname, "w")
c = 0
c += 1
time.sleep(5)
f.write("a")
f.flush()
os.fsync(f.fileno())
You might find this handy too:
#!/bin/sh
# $FreeBSD:$
# PROVIDE: wd_green_anti_idle
# REQUIRE: LOGIN
. /etc/rc.subr
wd_green_anti_idle_enable="${wd_green_anti_idle_enable-NO}"
name=wd_green_anti_idle
rcvar=`set_rcvar`
command="/usr/local/stade/bin/wd_green_anti_idle.py"
start_cmd="wd_green_anti_idle_start"
wd_green_anti_idle_start()
{
if ! checkyesno wd_green_anti_idle_enable ; then
return 0
fi
echo "Starting ${name}."
${command} &
}
load_rc_config $name
run_rc_command $*
Adjust command name to suit, put in /usr/local/etc/rc.d, add
wd_green_anti_idle_enable="YES" to /etc/rc.conf and the script starts
running during startup. A minor bug - it doesn't close down.
--
Adrian Wontroba
A witty saying proves nothing, but saying something pointless gets
people's attention.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100126235458.GA12634>
