- How can I find out if I have NPTL?
Just type "getconf GNU_LIBPTHREAD_VERSION" at your prompt. It will give you the name
and version of the pthreads library of your Linux. I have "NPTL 0.61" on my machine...
- How fast is dpfTVS/hssTVS compared to others?
Even without use of its cache, dpfTVS is almost capable to keep up with, for example, lighttpd.
hssTVS on the other hand is so fast that it can best all other servers I've tested sofar. To get
a better idea you should look at some raw numbers on the
benchmarks pages. It's still being expanded and I still optimize the code, so check it from
time to time.
- Is there still room for performance optimisations?
In the past I said that there's not much left. Since then I managed to increase the speed
significantly, so I leave that open.
- Why not OpenSource (GPL)?
I am currently looking for a new job. I am also thinking about making these servers, and the
related projects like forum system and so on, my "job". If I'd use OpenSource now I would
loose the option to bring something unique into a job as well as I'd loose the possibility
to market my achievements. In case I find either an unrelated job, or one that doesn't "pay"
for my code, I will most likely go GPL. Allthough that wouldn't be nice for the other premium
servers I guess....
- What's the speed difference between the NPTL and LinuxThreads Library?
As of built 890 running on a 2.6 kernel with LinuxThreads dpfTVS will be almost as fast as
with an NPTL environment. 890 features dynamic pre-forking what helps a greate deal as a once
created process is re-used as long as there is need for it. However, NPTL also has the better
scheduler and lower context switch times, so NPTL is still a big plus. Besides, dpfTVS needs
a rather new mmap library to run properly, which seems to be only there when NTPL is also
available. There is no speed difference for hssTVS at this time. Actually hssTVS should even
run fine on older kernels, but I haven't tested that yet.
- What's the difference between non-persistent, persistent and pipelined requests?
In case of non-persistent connections the browser will open a new connection for every
file it wants. Persistent connections allow the browser to request several pages after
opening only one connection for them all. Pipelining means that the browser takes all
his requests (or a bigger number at least) and sends them in a single packet and then
waits for the responses to drop in.
- I miss a feature, why isn't it there?
First of all, neither dpfTVS nor hssTVS are finished yet. But then I've never used any other webserver
but my own ones, so I might not be aware that the feature you are looking for might be of intrest to
anyone. So, before you leave, tell me about it (forum/email).
- Do the servers support zero-copy?
Yes, hssTVS (as well as basically all TVS servers) supports zero-copy via sendfile. That's the only Linux command with this feature right now. For hssTVS you'd just have to disable the file mapping part of the cache subsystem (disable mmap) to use it all the time. Files too big for the cache (> max_cached_size) already get transfered via sendfile.
But... that makes only sense if the hardware/driver supports it too. Currently the only lan cards I know of are rather expensive 1GBit ones. For all people with no zero-copy capable hardware it would be a major slowdown to force the usage of sendfile.
|