[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.