From: Pasi K. <pa...@ik...> - 2012-01-19 20:09:48
|
On Thu, Jan 19, 2012 at 03:04:43AM -0800, Neal Morgan wrote: > > James: > > I'm sure Ross or one of the other smarter guys on the list can give you more detailed suggestions, but thought I could at least respond with assurance you can achieve considerably better performance that you are seeing there. > > I am able to max out a GBE link when writing SQL backups to an iSCSI mount. > > Some things I have picked up over the years watching the list and experimenting: > > 1) Compile the kernel on the IET box with the deadline scheduler No need recompile the kernel. You can set the scheduler/elevator at boot time, and you can also change it on-the-fly. > 2) use "blockdev setra xxxx" on each drive/partition IET mounts before IET starts. (Experiment with the values here, 8192 seems to be a good starting point) > 3) Use blockio, IOMode=wb on your Luns in ietd.conf Note that this is dangerous! If the ietd server crashes, or there's a power-failure, you'll corrupt the data! > 4) I don't know if this still applies in Windows Server 2008, but in 2003 and earlier it was important to use diskpart to create partitions so you could correct an alignment error Windows introduces. I seem to remember the command to use was "select disk x" where x is the disk you want, "list part" to confirm you are really on the right disk (and no partitions exist), and then "create partition primary align=512" (I can't remember if 512 was the right value or not, it might have been 256). Win7 and Win2008 automatically align the partitions properly. So does RHEL6/CentOS6, and other new Linux distros. > 5) I find as a general rule of thumb that I get 50% of the available performance from the initiator side. In other words, if I use dd to test the speed of the raid volume on the IET machine, then use that volume in IET and go to the initiator and test, I get about half the performance I saw with dd. Performance mostly depends on the storage setup on the IETD server. The RAID-level used, the number of disk spindles, speed(RPM) of the disks, if you're using a RAID controller with batter-backed cache for safe writeback caching, etc. If you have just a couple of SATA disks on the IETD server, don't expect very good results. Unless you only have a single initiator doing pure sequential/linear IO. When you have multiple initiators the end results on the IETD server is random IO.. and then you need a lot of disk spindles with a proper RAID-level (raid-10). RAID5 or RAID6 will be bad for random write performance. -- Pasi |