Tag Info

Hot answers tagged

17

According to Windows IT Pro, you want to leave it on: http://windowsitpro.com/article/articleid/101631/q-does-hyper-threading-affect-hyper-v.html The new four-core Intel Core i7 processor enables hyper-threading, which splits each processor core into two virtual cores to (potentially) improve performance. The concern with Hyper-V and ...


15

In the SQLOS a scheduler is created for each logical processor that SQL Server sees. With hyperthreading enabled this equates to double the schedulers. One of the purposes for the SQLOS is to minimize and prevent context switching from occuring which is why only one scheduler is created for each logical processor. Once the SQLOS creates the schedulers, ...


10

I agree that at best the recommendation is "try HyperThreading on your workload and see what happens". We are doing this right now as I type, and.. it ain't good! you should probably always start with HyperThreading disabled, as that is safest It looks like we should be tuning two things: MAXDOP (Maximum Degrees of Parallelism). Everything I read ...


9

Anandtech found that with the pure read load, it hurt a little, and with a write heavy load, it was a bit of a win. I've not seen anything to make me think it is going to get you a hit much worse than -5%, or a win much better than 15%. Note what with a Atom, it is a huge win, but that is a very odd cpu. All you changed was the cpu? You went from 12MB cache ...


8

In general, I leave HyperThreading ON for VM host servers (VMWare ESXi, KVM, HyperV, etc.). This applies to Intel Nehalem and newer CPUs (5500-series and greater). Additional threads available for scheduling multiple VMs. You may also want to reevaluate the sizing of your guest systems. Typically, it's best to start small on the CPU allocation with virtual ...


7

Hyperthreading is, at best, just a way of abstracting task switching away from the operating system and placing it on-die, with direct access to the L1 and L2 cache, which makes task switching a crapload faster. Testing with VMWare have indicated that disabling HT made no discernable difference under standard load, and a 5% increase under heavy load, due to ...


7

Based on my experience, HT was making I/O operations take forever on my of my active nodes on a Windows 2008 R2 Cluster (running SQL Server 2008 R2). An interesting fact was that it was neither reflected in the wait stats nor in the pssdiag I ran for Microsoft support. The way I noticed low I/O was just by watching the OS counters for physical disk. As Sam ...


6

I still feel that testing your specific workload, as per the original answer, is the only way to be sure. It's not an ideal answer when you're trying to tune a production system (so I'd ask if it was possible to get an identical testbed in systems where both performance and availability really matter) but it's the only one I'm really comfortable with. We ...


6

Programs that are aware of hyperthreading are able to distinguish between a physical core and a logical (virtual) core, and allocate resources accordingly. Hyperthreading decreases the cost of context-switching by allowing the states of two processes to be stored at any given time, instead of just one state at a time. Context-switching is typically ...


6

That depends. If the CPU utilization is from user, then the answer is most likely "yes". If the CPU utilization is from iowait, then you're wasting your money until you upgrade your storage system. If it's mostly from system, then you probably have a driver or hardware device that is taking up too many interrupt resources (network card, maybe?)


6

This really is a personal/enterprise decision. But yes, HT cores are typically included the formula.


5

What I read also stated that SQL Server could put two parallel query ops onto 1 logical core (2 threads), thereby degrading performance. I have a hard time believing SQL Server's architects would have made such an obvious miscalculation. This is not a SQL Server problem. Hyper-Threading virtual cores look totally identical to real cores for ...


4

This link describes how to match physical id, core id, and sibling count to identify which entries in /proc/cpuinfo are on the same core, but I can make no claims as to its accuracy. It also looks similar to this question.


4

Yes. Append the noht parameter to the kernel on boot. From http://www.faqs.org/docs/Linux-HOWTO/BootPrompt-HOWTO.html : The `noht' Argument This will disable hyper-threading on intel processors that have this feature. If using lilo edit you /etc/lilo.conf (and run lilo afterwards) or if using grub then edit your /boot/grub/menu.lst .


4

I've only read about this topic a handful of times. I found an article at www.vmguy.com here that sums up the consensus on this HT issue (direct from the article): There are pros and cons to using HT in ESX. Pros Better co-scheduling of SMP VM’s Hyperthreading provides more CPU contexts and because of this, SMP VM’s can be ...


4

The old problem with Hyper Threading in Virtual Server 2005, without getting overly technical, is the CPU cache was being poisioned, i.e. it was caching almost nothing because the context of what was happening on each thread was unrelated - causing them to compete for the on chip cache. Newer chips have larger and smarter caches so this is less problem. Is ...


4

Since there is a virtualization layer between your server OS and the hardware with EC2, there's not even a guarantee that all 8 threads from your vCPUs are executing on the same physical CPU. Trying to measure things like cache hits or patters from inside the guest are an exercise in futility. You don't have visibility into the actual hardware. A vCPU ...


4

You will see 6 x 2.4GHz (14.4GHz). The Intel HyperThreaded CPU cores do not count towards the CPU resources. Here's an example with a single quad-core Intel 2.26GHz CPU: And the socket information:


4

The correct answer is "it really depends." vCPU sizing isn't just a case of "more cores = better than"; you need to keep in mind that relaxed co-scheduling can cause your system to run significantly more slowly in cases where you have multiple CPUs but are only stressing some of them. It's essentially the same shoe-shining problem that you might have seen if ...


3

HyperThreading is Intel's name for multiple run queues on single processor core. For now Intel only have processors with 2 threads, but other architectures has more, e.g. IBM power 7 have 4 threads.


3

It really depends. If, like you're saying, you're going to "max out", which I suppose means overallocate CPU (assign more virtual CPU cores than you have available, or exactly as many as you have available), then HT should definitely be on. If you are not overallocating, then it is usually better to test under your specific loads - sometimes HT can ...


3

You will reach 800% (within rounding error), but it's not 8 times 100% usage. The point is that hyperthreads are not separate processors, they use most of the same resources, so the usage 'spills' to the other thread. Imagine one single-trheaded task, consuming 100% of its logical core. You see 100% usage and the task proceeds, for example at 10 stones ...


3

There are subtle changes among CPU packages. I've yet to see such a configuration supported. Last time we wanted to upgrade a machine there was no way of getting the same chip as the one installed, and even changing the existing one and adding a twin wasn't possible as support for the motherboard was discontinued. It is probably cheaper in the end if you ...


3

I'm 99.9% certain that cpuinfo would not display processors that aren't supported by the kernel. dmidecode, on the other hand, may.


3

Are you sure your CPUs even have HyperThreading on them? I think most quad core CPUs don't. My ESX Servers also report that HyperThreading is "inactive" and I've got AMD CPUs which have never had HT on them.


3

You can see which cores are on which processors by taking at look at /proc/cpu info. For example, you will see on a machine with a dual core cpu processor : 0 (snip) core id : 0 cpu cores : 2 for the first core on the processor and processor : 1 (snip) core id : 1 cpu cores : 2 on the second. So, generally speaking, I think you would ...


3

Hyperthreaded cores aren't to be treated as fully-capable cores. Remember, they're virtual cores, so they share some of the resources of the physical cores. The benefit of hyperthreading surfaces in highly-threaded and parallelized processes, but not in the use-case you're describing. In my experience, hyperthreaded cores perform like 30-40% of a real core, ...


2

Well, basically it has the same use as on single processor machines: It adds additional hardware threads unless there is ressource contention. That simple. Same argumentation there and as with single processor the use totally depends on the application. Office applications dont even need 6 cores, the the question is moot. Same for games - most dont even ...


2

cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list will print comma-separated list of sibling cores for a particular physical CPU/core. I used cpu0 (first core) as example. The same information can be extracted from "core id" fields in /proc/cpuinfo (thanks user61849).


2

You don't mention a hypervisor but whichever you're dealing with be careful to not needlessly over-allocate vCPUs - the reason is that the hypervisor won't allow the VM to execute ANY code until ALL of the assigned vCPUs are ready - this means that your VM can be sat around for huge amounts of time - just assign what you need, it's easy to add later. Oh and ...



Only top voted, non community-wiki answers of a minimum length are eligible