rails hyperthreading on Quad core

Kuros Yalpani wrote:

Hi, my video sharing website (politube.org) that I developed with rails, runs on lighttpd/fcgi (I know it is obsolete by now) and is severely under load and regularly blocks because the lighttpd process chews up 50% of RAM (1GB).

So now I want to move the system to a new server with 8GB, 64bit , Quad core processor (intel i7 920) but I am not sure if hyperthreading will really do anything better. Even if I switched to mongrel, would it be able to leverage the Quadcore architecture?

Please note that hyperthreading (which is a technique for splitting up one procesor into two virtual processors) is not the same as application threading.

Whether hyperthreading will be beneficial is highly dependent on your workload. Benchmarks for your application are your friend.

In general, I would say, hyperthreading will be beneficial if you have a workload that is a composite of two distinct and mutually exclusive loads, such as video processing on the one hand and I/O on the other. If the loads are not mutually exclusive then you will have a lot more cache misses and hyperthreading may actually be detrimental.

Roderick van Domburg wrote:

Kuros Yalpani wrote:

Hi, my video sharing website (politube.org) that I developed with rails, runs on lighttpd/fcgi (I know it is obsolete by now) and is severely under load and regularly blocks because the lighttpd process chews up 50% of RAM (1GB).

So now I want to move the system to a new server with 8GB, 64bit , Quad core processor (intel i7 920) but I am not sure if hyperthreading will really do anything better. Even if I switched to mongrel, would it be able to leverage the Quadcore architecture?

Please note that hyperthreading (which is a technique for splitting up one procesor into two virtual processors) is not the same as application threading.

Whether hyperthreading will be beneficial is highly dependent on your workload. Benchmarks for your application are your friend.

In general, I would say, hyperthreading will be beneficial if you have a workload that is a composite of two distinct and mutually exclusive loads, such as video processing on the one hand and I/O on the other. If the loads are not mutually exclusive then you will have a lot more cache misses and hyperthreading may actually be detrimental.

-- Roderick van Domburg http://www.nedforce.com

actually, this would presumably answer my question, since if hyperthreading is emulating multiple cpu's then the multiprocess architecture of fcgi would benefit from that. However, I am not sure on how load "mutual exclusivity" affects cache usage. Do you mean a kind of instruction cache? Any Idea on how mongrel vs lighttpd behaves?

thanks

Kuros

i found thin seems to run faster then mongrel in my app. just my 2 cents.

nayeem