Linux Disable Hyper Threading for Pentium 4 server GRUB boot loader

by Vivek Gite on November 6, 2006 · 5 comments

Q. I am using GRUB boot loader. How do I disable Hyper Threading for Pentium 4 server? I am using CentOS.

A. To improve performance in the past, threading was enabled in the software by splitting instructions into multiple streams so that multiple processors could act upon them. Hyper-Threading Technology (HT Technology) provides thread-level parallelism on each processor, resulting in more efficient use of processor resources, higher processing throughput, and improved performance on today's multithreaded software.

If you disable HT you may notice performance problem. To disable edit grub.conf file:
# vi /etc/grub.conf
OR
# vi /boot/grub/menu.lst

Locate the kernel line that you want to modify and append noht at the end:
kernel /boot/vmlinuz-2.6.8-2-686 root=/dev/hdb1 ro single noht

Save and close the file.

You can also disable HT during booting CentOS Linux. You need to pass an option to kernel.

  1. At GRUB menu
  2. Select the kernel to boot into.
  3. Type 'e' to modify the kernel
  4. Append 'noht' at the end of the line.
  5. Press return key to boot with this options.
  6. Type 'b' to boot to this kernel.

Featured Articles:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 5 comments… read them below or add one }

1 concept10 November 23, 2006

What are the pros/cons of disabling HT on P4 CPUs? I currently run Ubuntu 6.10 (Edgy) and the stock config/kernel has Hyper-Threading disabled. How do I enable this? May I enable this in GRUB or do I have to compile another kernel? uname -a > Linux ubuntu 2.6.17-10-generic #2 SMP

Reply

2 nixcraft November 23, 2006

uname -a clearly indicates that you are running SMP kernel. SMP kernel enables HT and dual core support. So you don’t have to do anything.

To be frank enabling HT will increase your performance. However some application may not work (especially old apps). Those are rare cases and you need to disable HT.

Reply

3 bull January 27, 2007

For any type of server environment HT is beyond worthless. It will degrade your server application performance. HT is meant for interactive DESKTOP applications not DEADLINE based scheduling required by servers.

Reply

4 Bill Broadley December 20, 2008

Depends on the workload, for some server workloads it helps, for others it doesn’t. The new core i7 seems to have done this pretty well and I’m seeing a wider range of workloads where it helps.

Reply

5 Wojciech April 10, 2011

Well in my case HT does quite a lot of harm. An automatic test suite for an application I’m working detects number of processes and splits work load among them. Each test process spins its own application instance which is resource consuming. Even if HT gives some performance increase overall test time suffers.

I could hack test suite to detect HT and reduce number of processes by a factor of two. I’ll try to disable HT first.

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 6 + 5 ?
Please leave these two fields as-is:
Solve the simple math so we know that you are a human and not a bot.



Previous post:

Next post: