The MyBook Live series is based around Linux, so you can fix some of WD’s design decisions and improve performance. You can do just about anything, but there are some simple performance improvements you can do.
Enable SSH
Assuming you are blocking port 22 from outside your network, enable SSH by logging in to the web dashboard, then switch to the page UI/SSH, and enable from there. If your NAS had the address 192.168.1.101, you would first go to
http://192.168.1.101
log in, then go to
http://192.168.1.101/UI/ssh
to enable SSH. At that point, you can ssh to your box; ssh is built into Mac and Linux boxes, but you’ll need to use Putty or some other client on Windows.
I got this from What are the steps to enable SSH from the WD Community forums.
Fix monitorio.sh
WD has a monitor script as a daemon. That in itself is fine, but it periodically does an ls of the entire drive to build up some simple statistics. Once your drive has a large number of files on it, this will cripple performance. Since I don’t ever look at their stats, I prefer to disable this part of monitorio.sh. I want to repeat this: if you do this, then the web front end will no longer show accurate disk space usage (it will show whatever you had up to the point where you nerf the file_tally function).
I suggest the following: ssh to your NAS, edit /usr/local/sbin/monitorio.sh, rename file_tally to file_tally_old, and insert an empty file_tally function. Your file will look like this:
file_tally() {} file_tally_old() { if [ ! -p $TALLY_PIPE]; then
You’ll want to restart the monitorio daemon (or reboot the NAS, which is more dramatic).
/etc/init.d/monitorio restart
You can also use ps and kill to stop any existing ls process if you’re impatient.
I didn’t figure this out, I got it from Solving the MyBook Live insane load.
Change to CFQ scheduler
Some people think that performance is better if you switch to the CFQ scheduler. This will definitely depend on how you use the NAS. WD has defaulted to the Anticipatory scheduler. You can check to see what yours is set at.
cd /sys/block/sda/queue cat scheduler
and if you see
noop [anticipatory] deadline cfq
then your NAS is currently using the Anticipatory scheduler. You can switch by writing CFQ to the scheduler file like this
echo cfq >scheduler
And, if you have multiple drives in your WD Live box (for example, a Live Duo), you’ll need to do this for sdb as well.
I got this from Performance problems? Read this first.
You can read more about the various scheduling algorithms in this Red Hat page: Choosing an I/O scheduler for Red Hat Enterprise Linux 4 and the 2.6 Kernel. At some point, this will be out of date, but it was valid as of late 2012.
Thanks so much for posting this article! I had a MyBook World a while back, which was a nightmare to get SSH running on. So happy to see that they made it easier on this model!
I changed the scheduler to cfq, but noticed that the change isn’t persistent; after a reboot it’s back to anticipatory. Do you have any ideas/suggestions on how to make the change persist upon rebooting?
I’d just do a ghetto line in /usr/local/sbin/monitorio.sh, doing the aforementioned echo cfq >scheduler. There are more graceful ways. For myself, I rarely turn servers off, and I wasn’t 100% sure that I wanted the CFQ scheduler on all the time.
I have already activated SSH, but I do not know where I have to those codes, like:
file_tally() {}
file_tally_old() {
if [ ! -p $TALLY_PIPE]; then
Anyway, could you tell me how I can do it?
Thank you
If you have SSH activated, then you’d edit the file, say with vi:
to find an occurence of file_tally in the file, then ‘i’ to enter insert mode, then typing what I had listed below, then esc to exit insert mode, then :wq to write the file out. I think you might also need to use sudo vi
, since I expect the file is read-only too all but root. I don’t have a WD drive near me at the moment, so I can’t double-check.
vi /usr/local/sbin/monitorio.sh
I can’t really give a vi tutorial here, but you would find file_tally in the file, then change that line to the lines I listed below, then write the file out. The vi keystrokes would be something like /file_tally
Another alternative is to use scp to copy it to your computer, edit it on the computer with whatever you have at hand (just not pure Notepad, because the file will have LF line endings), and then scp it back. On Mac or Linux, you would literally use scp, whereas on Windows you’ll probably download and use Putty.