It has long been the consensus view in the Novell support forums that Hyperthreading does nothing for NetWare. In fact, it can hurt
, so turn it off when you can. I agree.
During this MSA testing I have a chance to see what it can do for me. The test server is brand new with dual processors. As expected, four present themselves when booted, two of which are the logical processors HT gives you. So I ran some IOZONE tests at various combinations of active processor to see what it does for me with a software-mirrored volume.
- With all four processors live I get a throughput of 39MB/s, and CPU load around 7%
- With one real processor and one logical processor I get a throughput of 32 MB/s, and CPU load around 25%
- With one lone processor I get a throughput of 38MB/s and a 45% CPU load...
- With two real processors I get a throughput of 40MB/s and a CPU load around 7%
The reason HT is mostly meaningless for NetWare is that for most places NetWare is used it doesn't help. For certain tasks like GroupWise reindexing, HT could help, but HT won't do a thing to help I/O. The above chart shows that. While it is possible that HT doesn't do any harm, it is quite possible that it can.
The best performance was had when there were two real CPUs in the system. Two CPUs with HT on gave us somewhat slower performance, but not the 66% shown by the link above. That could also be due to timing. The test with one real and one logical showed quite slower results, and is a better example of how HT can hurt.
The interesting thing to me is CPU loading. With a single real CPU loading was around 45%. Add a second real CPU and loading dropped more than half to 7%. Clearly, the I/O stack on NetWare 6.5 Sp5 is multi-threaded to a large degree. Interrupts can spread between the two CPUs, and that alone could account for most of the performance improvements.
As for the greater MSA test, the data are in, I just need to spend time crunching it. At first glance I see two trends:
Tags: netware, hyperthreading
- Mirrored-Write performance follows the curve of the slowest device in the mirror
- Mirrored-Read performance follows the curve of the fastest device in the mirror