[ic] Problems with PreFork

Dan Browning interchange-users@interchange.redhat.com
Tue Jan 15 18:43:00 2002


> I have three hosts running IC. One is for development. Two are for
> production. The setups are nearly identical: Linux 2.4.16, IC 4.8.3,
> perl 5.6.1, mysql 3.23.47 (on a different host), SessionType NFS (nfs
> server on a different host).
> 
> The production servers are behind a LVS NAT.
> 
> PreFork does not cause any problems on the devo server. When I set
> PreFork on the production servers I get problems with only 
> only part of
> the pages showing. There are no error messages in error.log or
> /var/log/interchange/(debug|error).log
> 
> How should I debug this problem?
> 
> BTW, I have this idea that setting PreFork will improve 
> performance. If
> that is not the case, I do not need to solve this problem.
> 
> -- 
> Bill Carr

Wonderful -- it is nice to know that more people are clustering IC.  I
have a LVS-DR cluster with MySQL-based sessions that runs PreFork very
well - 2.4.17 kernel + PgSQL, but same otherwise.  I did have lots of
trouble with NFS-based sessions not scaling very far ("Bad counter
magic" and "Data not stored in SessionDBM" error messages), perhaps
partly due to (as Kevin Walsh suggested to me) the NFS-unfriendly locks
in File::CounterFile (would be nice if someone hacked fcntl support into
it).  If you want to move to MySQL-based sessions, the config I used is
below.  

What is your MaxServers for IC?  Perhaps the NFS writelock contention is
timing out between many servers and the processes give up and send
whatever HTML they happened to generate.  You could try a lower
MaxServers to test the theory, but it doesn't solve the problem.  Are
there any clues in the apache error log?  Is it always a random quantity
of bytes of HTML?  Can you bypass the LVS-NAT and bench the systems
directly (just to be absolutely sure)?

I'm sure you'll get it pretty quick here.  HTH,

-Dan

+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Dan Browning, Sr. Tech Consultant
| Kavod Technologies, 1498 SE Tech Center Pl Ste 170
| Vancouver, WA 98683  <dan.browning@kavod.com>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"But officer, I was only trying to gain enough speed so I could coast
to the nearest gas station."


Variable	MYSQL_SESSIONS_YES	1
Variable	SESSION_DSN
dbi:mysql:sessionfiles:mysql_server

ifdef MYSQL_SESSIONS_YES
Message	Enabling MySQL-based sessions...
SessionType DBI
Database  session  session.txt __SESSION_DSN__
Database  session  USER         ds
Database  session  PASS         tenspeed
Database  session  KEY          code
Database  session  COLUMN_DEF   "code=varchar(64) NOT NULL PRIMARY KEY"
Database  session  INDEX		code
Database  session  COLUMN_DEF   "session=blob"
Database  session  COLUMN_DEF   "sessionlock=VARCHAR(64) DEFAULT ''"
Database  session  COLUMN_DEF   "last_accessed=TIMESTAMP(14)"
SessionDB   session

Message ...Done
endif
ifndef MYSQL_SESSIONS_YES
Message MySQL-based sessions not enabled.
endif