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