[interchange-cvs] CVS notice: activity by heins

interchange-cvs@lists.akopia.com interchange-cvs@lists.akopia.com
Sun, 15 Apr 2001 00:59 -0500


CVS activity by user 'heins':
interchange/scripts interchange.PL,1.15.2.35,1.15.2.36
Update of /anon_cvs/repository/interchange/scripts
In directory www.akopia.com:/tmp/cvs-serv20368/scripts

Modified Files:
      Tag: DEV_4_7_0
	interchange.PL 
Log Message:

  * Added Tie::ShadowHash to list of carried modules. We should add
    to Bundle::Interchange, but it hasn't changed for 3 years and the
	version we carry about should be OK. Using the "extra" method of
	distribution.

  * Cleanup of Vend::Server and scripts/interchange.PL (along with
    some other modules) to move IC closer to being thread-safe for
    server execution. This should make it fairly reasonable to
    start testing with the PreFork mode, which is pretty
    worthwhile.

	WARNING: This is a dangerous change. I have messed with the state of
	the global variables, and it is not at all inconceivable this will
	need to be backed out as a show-stopper is found. If you are relying
	on the code to any degree, I suggest you wait a while before making
	this update.

	Standard low traffic mode, 
		MaxServers   5

	% /h/cgi-bin/nph-bench
	Doing 1 times, pages=blank, concurrency=-n 50 -c 5.
	BEGIN round 1
	gfound blank: Requests per second:    5.13
	mfound blank: Requests per second:    4.80
	pfound blank: Requests per second:    4.80
	END round 1


	RPC mode
		PreFork             Yes
		StartServers        5
		MaxRequestsPerChild 100

	Doing 1 2 3 times, pages=blank, concurrency=-n 50 -c 5.
	BEGIN round 1
	gfound blank: Requests per second:    37.94
	mfound blank: Requests per second:    38.88
	pfound blank: Requests per second:    35.69
	END round 1
	BEGIN round 2
	gfound blank: Requests per second:    36.10
	mfound blank: Requests per second:    37.04
	pfound blank: Requests per second:    21.21
	END round 2
	BEGIN round 3
	gfound blank: Requests per second:    27.92
	mfound blank: Requests per second:    34.84
	pfound blank: Requests per second:    30.92
	END round 3

	gfound=DBM
	mfound=MySQL
	pfound=PostGres

	Both are serving a page without ITL in it, which essentially measures
	overhead introduced by the IC server. Some of the variance in the second is
	due to having to re-fork servers once reaching MaxRequestsPerChild.

	Here are some times for a page which has only

		<XMP>
		[query list=1 sql="select * from products"][sql-code] [sql-param description] [sql-price]
		[/query]
		</XMP>

	Without prefork:
		Doing 1 times, pages=dbtest, concurrency=-n 50 -c 5.
		BEGIN round 1
		gfound dbtest: Requests per second:    2.54
		mfound dbtest: Requests per second:    2.46
		pfound dbtest: Requests per second:    1.79

	With prefork:
		Doing 1 times, pages=dbtest, concurrency=-n 50 -c 5.
		BEGIN round 1
		gfound dbtest: Requests per second:    4.23
		mfound dbtest: Requests per second:    4.36
		pfound dbtest: Requests per second:    2.51
		END round 1

	All are measured on my 800MHz Athlon with IDE. Sessions are zeroed before
	each run, and a new session is created every time.

	Postgres is consistently slower than MySQL and GDBM in these cases. I
	did the same query using Benchmark, and it is obvious the DB takes up
	much of the time.