Alec Matusis
matusis at yahoo.com
Thu Apr 3 04:17:07 EDT 2008
I just installed a second webserver machine. About 1/3 of all http requests are now routed to this new webserver, which has identical configuration to the first webserver. Both webservers connect to a single DB server. On the new webserver I am intermittently getting the following error: OperationalError: (2003, "Can't connect to MySQL server on '10.18.3.0' (4)") What puzzles me is that the old webserver did not have this error under 70% higher request rate (at 600 req/sec), before some of the load was removed from it. Mod_python/python installation is identical on both boxes, and they are running exactly identical scripts. TCP stack also seems to be configured identically. When I got a bunch of these errors, I did notice about 15000 connections to the database in TIME_WAIT state on this problematic new webserver. The new machine is a bit slower (2x2.66GHz xeon vs 2x3.0GHz on the old one), but would this small difference cause such a problem? The script that connects to the DB is: def load(self): ..... dbc = MySQLdb.connect(host=config.db_host, db=config.db, user=config.db_user, passwd=config.db_passwd ) dbc.autocommit(True) c = dbc.cursor() r = c.execute( query) if r == 0: #not sure what the key error is supposed to be but it is being caught raise ProfileError rvalues = c.fetchone() c.close() dbc.close() .... I am very puzzled what may cause this...
|