Hyperthreading hurts server performance, say developers

Intel had stated that hyperthreading's performance advantages would show once threaded software became available, but it appears that in some cases the opposite is true.

With both SQL Server and Citrix Terminal Server installations, HT-enabled motherboards show markedly degraded performance under heavy load. Disabling HT restores expected levels, according to reports from within the IT industry.

"Our customers were complaining about much worse performance than expected when running Citrix Terminal Server and our software on the same machine," said Peter Ibbotson, technical director of UK accounting software company Lakeview Computers.

"We've had fun and games in the past when we've enabled hyperthreading for testing and we'd seen that motherboards had started to arrive with it enabled. When we disabled hyperthreading, performance went back to normal," Ibbotson added.

Hyperthreading allows different elements of a processor to run different code at the same time, which Intel has claimed will boost chip performance and allow a CPU to process nearly twice as much information as one without hyperthreading.

Slava Ocks, a developer working on SQL Server 2005 within Microsoft, reported similar problems in a blog posting earlier this month.

"Our customers observed very interesting behaviour on high-end HT-enabled hardware. They noticed that in some cases when high load is applied SQL Server CPU usage increases significantly but SQL Server performance degrades," wrote Ocks.

Ocks then detailed testing which showed this behaviour where a system thread -- in this case one cleaning out blocks of disk cache memory -- is running at the same time as worker threads. "With Intel HT technology, logical processors share L1 & L2 caches. As you would guess [this] behaviour can potentially trash L1 & L2 caches," he said.

The on-chip cache exists to speed operation by keeping copies of recently accessed data where it can be accessed without recourse to main system memory -- which is much slower by comparison. Where multiple threads access different parts of memory but are simultaneously processed by the chip's Hyperthreading Technology, the shared cache cannot keep up with their alternate demands and performance falls dramatically, according to analysis by Ocks and Ibbotson.

"It's ironic," said Ibbotson. "Intel had sold hyperthreading as something that gave performance gains to heavily threaded software. SQL Server is very thread-intensive, but it suffers. In fact, I've never seen performance improvement on server software with hyperthreading enabled. We recommend customers disable it when running Citrix and our software on the same server"

At the time of writing, Intel had not responded to requests for comment on these claims.

Earlier this year, Intel hyperthreading was revealed to have a security flaw where threads could find information from each other through the shared cache despite having no access to each other's memory space.

ZDNet UK's Rupert Goodwins reported from London. For more coverage from ZDNet UK, click here.

Advertisement

Talkback 3 comments

    This is old news Anonymous -- 21/11/05 (in reply to #120123572)

    This HT issue is very old news and was reported almost 3 years ago. For example, see,
    http://www.passmark.com/forum/viewtopic.php?t=8

    In simple terms, you only get good performance with Hyperthreading when the threads are working on different data and using different parts of the CPU.

    Yes - Disable HT always! Damon -- 21/11/05

    Have done mulitple SQL installs and always found that prior to SP3a for SQL2000, that HT didn't make a difference. However, after applying SP3a, degraded performance if HT was enabled. A query that would take 2 seconds to run normally, would take 3 minutes with HT enabled.

    From now on, virtually every high end system using SQL will have HT disabled to prevent issues, unless the application or query has been written to take advantage of HT.

    Never say Never--HT works for me Ian Ippolito -- 19/04/06

    I tested hyperthreading on our website database (which has a decent load...it's in the top 2000 of all sites on the web according to Alexa). I found we get a 10% boost from hyperthreading. You can see my test methodology and results here: <a href="http://rentacoder.com/CS/blogs/real_life_it/archive/2006/04/18/SQL_Server_2005_performance_testing_with_hyperthreading_and_MAX_DOP.aspx">http://rentacoder.com/CS/blogs/real_life_it/archive/2006/04/18/SQL_Server_2005_performance_testing_with_hyperthreading_and_MAX_DOP.aspx
    </a>
    The bottom line is to test yourself and see what applies to you.

    Ian Ippolito

Add your opinion

Latest Videos

Sponsored content

Power Centre - Content from our premier sponsors

Blogs

  • Renai LeMay How reliable is IP telephony?
    Have you ever heard a weird kind of hissing, crackling or popping noise when calling someone on an IP telephony line? How rare is the phenomenon these days?
  • Array Forget the NBN, 100Mbps is already here
    Telstra and TransACT will shortly begin offering 100Mbps broadband to many customers. By moving early, the companies have not only raised the bar for Australia's broadband services, but thrown down a challenge to a government that now faces increased pressure to deliver the NBN as promised.
  • Array IT: Govt's cost-cutting bitch
    The government needs to stop looking at IT as a necessary evil or the place to remove costs when the Treasurer comes calling.
  • More blogs »

Tags

Back to top

Featured