I am currently porting a multithreaded TCP server from NT (yech!) to
UNIX using pthreads. The server has a fairly straightforward design --
it opens a thread for each connection, and each thread spends most of
its life blocked in a call to read() from a socket. As soon as it
receives enough of a request, it does quite a bit of processing and
sends something back to the client.
How would FreeBSD 4.0 perform in such a scenario? We are talking
hundreds, maybe thousands of threads, a lot of them doing blocking reads
and writes. Is the standard pthreads library adequate for the task, or
would "Linuxthreads" be a better choice? What is the main difference
between the standard FreeBSD pthreads and "Linuxthreads" -- it seems
both are implemented using a version of clone().
The hardware is probably going to be UP at first -- a fast Pentium III
(733MHz?), an Intel 820 board, an Adaptec U2W SCSI controller, and a
couple of U2W LVD SCA disks to go with it. The operating system has
yet to be chosen. I have tried Solaris 7 on similar hardware, and it
seems so much slower than FreeBSD -- and so bloody unresponsive when
doing I/O that even NT seems faster. On the other hand, Solaris's
threads implementation is supposedly better than anything else out
there. I'm not even considering Linux -- or should I? Is it safe to
use FreeBSD 4.0-S on a production server? So far I've had nothing but
positive experience with it.
Any advice will be much appreciated.
Alex Keahan
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message