Application Delivery Management
Application Modernization & Connectivity
CyberRes by OpenText
IT Operations Management
One of the nice things about OES2 SP1 Linux is the fact that it runs quite nicely as a para-virtualized VM in XEN.
However, one thing we noticed after migrating an NSS volume from NetWare to the OES2 XEN VM was that disk performance was terrible.
We were using raw block disks from our SAN, so we did not incur the performance penalty of using file-based disks.
However, NSS write times were nowhere near as fast as they were on NetWare.
Through much troubleshooting, we determined that it was ONLY NSS that was affected. Writing the same data to an NCP-enabled EXT3 partition in OES2 XEN did not have any issues.
Upon investigation, and an SR with Novell Technical Support, it seems that the default Linux IO Scheduler for XEN is different than on a physical host.
On a physical host, the default IO scheduler is cfq. On XEN, the virtual machine gets a default IO scheduler of noop.
To see what the scheduler is set to, use the following format, at a Linux/OES2 terminal:
cat /sys/block{DEVICE-NAME}/queue/scheduler
For example, in XEN, block devices are “xvda”, “xvdb”, etc.
So:
cat /sys/block/xvda/queue/scheduler
The output will be (with default settings in the XEN VM):
[noop] anticipatory deadline cfq
The bracket signify which is currently being used.
To change to cfq (in my testing, this yielded the best results):
echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler
For example:
echo cfq > /sys/block/xvdb/queue/scheduler
(our first LUN, xvda was non-NSS, so it didn’t matter).