Abysmal Performance; Multi-user access

I’ve had my Drobo FS for a while now, and I’m incredibly disappointed with the throughput of the device.

When only one machine on the network is accessing files, it works great. As soon as another computer attempts to access data on the device everything slows to a crawl.

Example:
The media center in the living room is streaming a video. Then a user in the home office begins to copy some files. Shortly after that user in the home office starts copying, the video in on the media center will pause and begin to buffer. If the home office user stops accessing the device, the video will finish buffering, and play normally without delay.

That’s one example, I’ve noticed this behavior in many different situations. In all the situations, the common thread is this:
when the disk array has to deliver to more than one connected user, all the users suffer delays.

I’ve run several small test along these lines:
Computer A begins to copy 2GB of data, the estimated transfer time is approximately 4 minutes. Computer B begins to copy 2GB (a different set of files) and the transfer time is approximately 6 minutes. Then the estimated time of Computer A’s transfer increases to 10 minutes, 12 minutes, 15 minutes. And Computer B does the same. The transfers will complete eventually, after exceeding the OS estimates by several factors.

I don’t have similar problems transferring data from client-to-client (single-drive to single-drive).

The Drobo FS is connected to a gigabit switch. All of the drives in the device are 7200 RPM drives with 64MB caches. Some of the machines on the network are connected with gigabit ethernet, some are on 802.11n wireless. Some of the clients are Linux, some OS X, some Win7. I’ve tried removing all the data and resetting the device to factory settings, and copying all the data back. The device has the most recent firmware. The clients are all fast, modern computers.

I don’t think it’s unreasonable to expect a NAS device to serve data to 2 or 3 connected machines at the same time. I would understand if the performance dropped slightly when multiple users were accessing data, but as it stands the performance drops severely.

Is this typical?

Hi

could you differentiate the tests a little bit more?

like:

2 clients accessing data over cifs

1 client accessing over cifs, 1 client accessing over afs

2 clients accessing over afs

Try also to post the avg. transfer speed.

you can use tools like time and dd

example

write speed:

time dd if=/dev/zero of=/path/to/mounted/drobo/share/testfile bs=16k count=62500

this will create a 1GB file on the share.

read speed:

time dd if=/path/to/mounted/drobo/share/testfile of=/dev/null bs=16k

remember to unmount and remount the share for each read test…

if you installed the drobo app unfs it would be interesting to have some data about it too… since you have a nice heterogeneous environment. :wink:

best regards

Hi, I just wanted to say that my experience has been the same. I have an HP MediaSmart Windows Home server and a Drobo-FS. I find the FS is noticeably slower than the Home Server in most disk related activity with a single user. But throw on a second user or try doing two disk accesses at once and there’s a HUGE slowdown on the Drobo. I’m on wired gigabit ethernet also running through a gigabit switch.

Mark

You’re running into basic I/O contention, which is VERY difficult to avoid on RAID arrays when multiple requests are coming in. It doesn’t matter if it’s different users; if you start multiple simultaneous copies yourself, you’ll likely see they complete MUCH slower than if you did them back to back.

The fundamental problem is all of your disks are having to seek back and forth between the two requests, and seeking on a spinning disk entails a certain amount of time to physically move the head, settle in place, and read data as it spins by. Do this hundreds of times a second to maintain two different transfers, and you end up with a LOT of seeking overhead compared to time spent reading data. It gets even worse if you’re writing data as well. (Incidentally, this is also why SSD’s make such a HUGE difference in performance - they don’t have to seek, and can handle parallel requests without breaking a sweat.)

If you’re really clever (“you” being DRI), you can optimize buffers around the disk access to at least limit the impact of this, but the it can’t be completely avoided.

I once had a home server with a 6-drive SCSI RAID setup running Windows 2000. Despite it having a lowly PII-400, it screamed largely due to the speed of the mirrored SCSI drives the OS was on. On a lark, I rebuilt the system to use RAID-5 to gain some additional storage. On trying to install the OS, I thought it had crashed. What actually happened was I ran into I/O contention on a RAID-5, which took a blazing-fast I/O subsystem down to a few KB/sec. Not MB/sec, KB. That day I fully realized just how horrible I/O contention can get.

From what I’ve gleaned online and know of RAID setup BeyondRAID - while not RAID-5 - should have performance characteristics very similar to it, and suffer from I/O contention in much the same way.

Thank you (all) for your reply.

I understand what you’re saying here, and this is largely what I suspected. However I’ve had RAID Arrays set-up in many different configurations in the past, and while I’ve seen the performance drop you’d expect when multiple users are accessing the device, I’ve never seen the performance drop as much as it does with this Drobo FS. And it’s baffling to me that the data I’m reading (most of what I’m doing are reads) is saturating the throughput of the device. I don’t feel like I’m placing very high demands on it.

I intend to do some more controlled tests and post some actual numbers as warwalker suggests.

But numbers aren’t really what matters, user experience is what matters, and if I can’t access some XML files from one machine while another machine is playing video without the video coming to a halt, then it doesn’t matter what the data rates are.

If the Drobo shares are mounted on a laptop (but are not being accessed - but the laptop is on), and a media player is then used to access a file, does this constitute multiple user access? And is this likely to produce the performance problems mentioned?

Not in my experience. I leave my shares mounted on my HTPC all the time, but the Drobo still goes idle and spins down - a good sign that nothing is reading/writing unexpectedly.