Intel's Hyperthreading Technology (HT) is being blamed for server performance problems.
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.