Hi All

I've just spent one heck of a long day measuring the performance of 4 web server platforms and reached some interesting conclusions (well, interesting for me anyway. I'm sure I'm treading over well trodden ground for many, but at least I've been able to quantify some of it which may be of interest).

The socket error is a #10061, "could not make a connection because the target machine actively refused it".

The tests I did focused on the relative proportions of the 2 types of errors which get returned when the web server starts to saturate:

a) 403's (or 403.9 on IIS) http error (which results in a managed, trappable error sent back ot the browser)

 . . . then as loading increases . . . .

b) socket errors (which are ugly at the browser and can't be trapped by the web server)

It appears that 4D Web server on Windows (any flavour) has an extremely small zone between the 'no error' and the 'socket error' stage. This was because I couldn't tune the serving capacity (min web processes = 10) down far enough for 4D to start rejecting requests gracefully, so it appears to plough straight from the 'error free' zone into the 'socket error' zone without spending much time in the '403' zone. IIS on the other hand is still returning http errors when 4D (Windows) is well into the 'Socket' zone. Meanwhile, Apache Windows and 4D Mac just keep on serving pages and don't return any errors until they've got 10 times the request loading.

What's going on here ? Why is 4D web server on Windows so hugely different from 4D on Mac or Apache on Windows in this regard ? Category 2 below is the one I would like to be in because although the response times are slow, the server is absorbing the load and therefore I can optimise the dynamic pages, handle the 403's and the site generally runs smoother.

In view of these results, my customer has just instructed me to configure Apache in front of 4D on Windows so I now have about a day (!?! :) ) to learn something about Apache rewrites and come up with a proof of concept prototype. I'm not sure however if it will make any difference since 4D is still at the end of the line (for dynamic pages anyway). The question is whether 4D (Windows) error threshold will just be the same in response to proxy forwarding by Apache as it is when serving directly.

Here are the results of the loading tests for anyone interested. All tests are for serving a 200k static page (no dynamic or Active 4D involved)

Reference points are the 4D error threshold load (the loading at which 4D web server machine starts to return errors) and the maximum tested load of 200 RPS.

CATEGORY 1 - LOW ERROR THRESHOLD (~ 20 RPS), LOW CAPACITY, SHORT RESPONSE TIMES

RPS = Requests Per Second.

************  1] 4D Windows (Standalone) ************

25 RPS:

Error split (Socket / http): 10%/73%
Page rate: 13600 PPH
Response time: 1.3s

200 RPS:

Error split (Socket / http): 75%/22%
Page rate: 13400 PPH
Response time: 1.1s

************  2] 4DMicrosoft IIS ***********************

25 RPS:

Error split (Socket / http): 0%/97%
Page rate: 17280 PPH
Response time: 1.s

200 RPS:

Error split (Socket / http): 15%/84%
Page rate: 2880 PPH
Response time: 2s

CATEGORY 2 - HIGH ERROR THRESHOLD (200 RPS), HIGH CAPACITY, LONG RESPONSE TIMES

************  3] Apache Windows ***********************

25 RPS:

Error split (Socket / http): 0% / 0%
Page rate: 13020 PPH
Response time: 3s

200 RPS:

Error split (Socket / http): 0% / 0%  <-- (not a mistake)
Page rate: 20400 PPH
Response time: 28s

************  4] 4D Mac OS/X ***********************

25 RPS

Error split (Socket / http): 0% / 0%
Page rate: 15300 PPH
Response time: 1.1s

200 RPS

Error split (Socket / http): 0% / 14%  <-- (also not a mistake)
Page rate: 22740 PPH
Response time: 38s

NOTES: All Windows tests on a 2.4 Ghz Pentium, Mac test on 2 Ghz Intel Mac Powerbook
4D 2004.5 Standalone in all cases.


_______________________________________________
Active4D-dev mailing list
[email protected]
http://mailman.aparajitaworld.com/mailman/listinfo/active4d-dev
Archives: http://mailman.aparajitaworld.com/archive/active4d-dev/

Reply via email to