EPS Home
Frequently Asked Questions
Linux (page4)




Q16: With Extreme Performance under Linux all of the CPU utlization numbers (CPU util, WIO, SYS, USR) show zeros?

A16: Linux may not install the system utility 'iostat' by default. For Redhat, it is included in the sysstat package and must be installed for the CPU utilization numbers to work. Look in Applications/System for the sysstat package.


Q17: For Extreme Performance the CPU utilization is nearly 100% and WIO (Waiting on IO) is 0?

A17: You are probably running Performance in FileIO mode. When using Raw SCSI (uscsi, sg, etc) the ioctls block until the operation is complete. WIO measures the time spent while blocked. Linux doesn't provide a WIO statistic in its version of 'iostat' so it is left blank.

In FileIO mode we use polled Posix Asyncronous IO, which means that the read or write operation is issued, and then we check the status of the IO and reissue when it's complete. If more than 1 tag is specified, then multiple read or write operations can be going at once.

Since it is an active polling loop, and we're interested in achieving the highest performance, the loop never sleeps and runs as quickly as possible to minimize the amount of time between IO completion and reissuing for that tag.


Q18: Why can't I run FileIO mode on my disks for Linux?

A18: Linux file handles are not interchangable between different drivers. When doing a bus probe we set up all of the devices controlled by the sg (scsi generic) driver. Unfortunately, you can't open a handle to the sg device and issue a filesystem read to this as you can on Solaris and Windows.

In order to run with FileIO mode you'll need to set up File devices for the program to operate on. These are binary files on mounted system disks that get accessed as though they were SCSI devices. See Q13 for details.


Q19: Why are the performance numbers for Linux unrealistically high in FileIO mode?

A19: Though Extreme Performance supports the ability to specify flags to bypass buffering (O_RSYNC, O_DSYNC) for File devices, Linux only supports O_DSYNC (write syncronization.) As a result, when running with Read and/or Write Cache Enabled on Linux the performance numbers will be very high as the performance basically amounts to memory copies to and from the OS file buffer.

If you have specified Write Cache Disabled, then the O_DSYNC flag is used when opening the file, and the OS buffering is bypassed, resulting in numbers that reflect the performance capabilities of the underlying hardware. It is not currently possible to bypass the OS buffering for Read operations, which makes using these performance numbers for qualitative tests questionable.

It may be possible to recompile the OS to dramatically reduce the size of the buffers used so that they become less of a factor. We have not done so, and can't help you with that, but it may be something you're interested in investigating if you need FileIO numbers for Linux.


Q20: Why are your random performance numbers lower than IOmeter?

A20: Each tag in Xperf runs in its own thread. The random number generator, unless told otherwise, inherits the random seed from the launching process. With 4 tags all following the same "random" pattern on the same disk, we were seeing a scenario where the first tag would do the actual IO with head movement, but the following 3 (which were all asking for the same data) would simply pull it out of cache. This resulted in unrealistically high performance numbers. After fixing this bug by having each tag using its own random seed, performance decreased as it should.

We suspect that IOmeter has each tag following the same sequence, and as a result is showing bogus performance data which only gets better the more tags that get added, rather than experiancing diminishing returns for added tags.


Q21: Where is the documentation?

A21: Documentation is available in pdf format in the install directory. Use Acrobat Reader 4.0+ to view the documentation.




Additional Linux Information

Linux 2.4.1 or later is required so that we can access the improved generic scsi interface ioctls (sg). Testing has been performed on Redhat 7.2.

Motif is Required to run. Download and compile from www.opengroup.org or purchase compiled binaries from a vendor.

Low level scsi access is ultimately controlled by the driver. We can't guarentee that all drivers do everything correctly as Linux is a work-in-progress and drivers are evolving on a constant basis.

To Turn on Direct IO (no kernal memory copy): echo > 1 > /proc/scsi/sg/allow_dio

To change max xfer size (?) modify /proc/scsi/sg/def_reserved_size

Linux FAQ Page
1 2 3 4





Extreme Protocol Solutions © 2005 | Privacy Policy | Terms Of Use