>From what I have seen, pthread accept serialization does not scale well on >multi CPU Solaris systems (above 4 way). pthread is much faster than fcntl on single CPU boxes, but much slower than fcntl on a 12 way box.
Bill > I've brought this up before and I'll bring it up again. =-) > > Ian has seen about a ~60rps improvement using AcceptMutex pthread > versus fcntl() on Solaris with httpd. Also, fcntl has scalability > issues from what I can tell on Solaris (as described in STATUS) > that cause fatal errors in httpd. > > I know that the AIX guys use pthread as well. > > Is there any platform that meets the criteria for our pthread > interprocess implementation where it is *not* better than fcntl()? > > If there is a problematic platform, then I'd like to set Solaris > to use pthread by default. (I think we can define apr_lock_method.) > -- justin > > Index: configure.in > =================================================================== > RCS file: /home/cvs/apr/configure.in,v > retrieving revision 1.366 > diff -u -r1.366 configure.in > --- configure.in 2001/09/22 19:10:18 1.366 > +++ configure.in 2001/09/22 19:11:41 > @@ -1126,13 +1126,13 @@ > APR_DECIDE(USE_SYSVSEM_SERIALIZE, [SysV IPC semget()])) > APR_IFALLYES(func:flock define:LOCK_EX, > APR_DECIDE(USE_FLOCK_SERIALIZE, [4.2BSD-style flock()])) > +APR_IFALLYES(header:fcntl.h define:F_SETLK, > + APR_DECIDE(USE_FCNTL_SERIALIZE, [SVR4-style fcntl()])) > # note: the current APR use of shared mutex requires /dev/zero > APR_IFALLYES(header:pthread.h define:PTHREAD_PROCESS_SHARED dnl > func:pthread_mutexattr_setpshared dnl > file:/dev/zero, > APR_DECIDE(USE_PROC_PTHREAD_SERIALIZE, [pthread mutex])) > -APR_IFALLYES(header:fcntl.h define:F_SETLK, > - APR_DECIDE(USE_FCNTL_SERIALIZE, [SVR4-style fcntl()])) > if test "x$apr_lock_method" != "x"; then > APR_DECISION_FORCE($apr_lock_method) > fi >
