Recently in hyperthreading Category

NetWare and Hyperthreading, again

| No Comments
I talked about this one last year during some benchmarking. I just had a classic case crop up today.

It has long been consensus in the support forums that, (paraphrased) "If you have hyperthreading turned on and get an I/O thread stuck on a logical process, woe be unto you."

I have a server that I've been backing up for a fellow admin in another department. This particular server has 525GB of storage to back up, so it's going to take some time. It has been vexing figuring this one out. Until today, when I finally twigged to the fact that this server has HT turned on. I turn HT off as almost the first thing I do when setting up a server, so I don't think about it when troubleshooting.

Between 1000 and 1215 today, the backup got 882MB of data. Yeah, very crappy.

At 1215 I turned off the logical processors. This is a handy feature NetWare has, and I used it in the article I linked above.

At 1222 when I checked back the backup was up to 4.0GB.

At 1417 it is now up to 71GB backed up.

The only thing that changed was me turning off the logical processors. That's it. At that rate, this server should be backed up in around 15 hours, which is a far cry from the 30+ hours it was doing before.

Turn Hyperthreading off on your NetWare servers. Just do it.

NetWare and Hyperthreading

| 1 Comment
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:
  • 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
Tags: ,

Other Blogs

My Other Stuff

Monthly Archives