Linux Disable Hyper Threading for Pentium 4 server GRUB boot loader

last updated in Categories

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
# 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.


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

5 comment

  1. 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

  2. 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.

  3. 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.

  4. 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.

  5. 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.

    Still, have a question? Get help on our forum!