|
From: | Daishi Kato |
Subject: | Re: Re: [Chicken-users] performance issue in xml-rpc |
Date: | Mon, 11 Dec 2006 11:09:27 +0900 |
Alright, I was able to enable profiling for eggs by editing *.setup. Running 10000 requests gave me the following result: procedure calls seconds average percent ------------------------------------------------------------------------------- dispatch-request 10001 112.828 0.011 100.0000 read-request 10001 55.634 0.005 49.3082 handle-request 10000 40.381 0.004 35.7895 get/post-handler 10000 39.284 0.003 34.8181 SSAX:XML->SXML 10000 26.256 0.002 23.2706 scan-for-significant-prolog-token-1 20000 26.175 0.001 23.1988 element-parser 10000 23.971 0.002 21.2454 read-line-perhaps 10001 19.013 0.001 16.8511 SSAX:read-char-data 260000 13.856 0.329 12.2805 SSAX:read-markup-token 280000 11.773 0.205 10.4352 SSAX:read-QName 270000 7.265 0.690 6.4389 SSAX:read-NCName 280000 6.615 0.362 5.8628 http:read-request-attributes 10000 6.547 0.000 5.8025 SSAX:complete-start-tag 140000 5.562 0.972 4.9295 next-token-of 280000 4.684 0.672 4.1514 g61 10000 4.521 0.000 4.0069 write-result-response 10000 3.448 0.000 3.0559 write-response 10000 2.830 0.000 2.5082 SSAX:skip-S 440000 2.269 0.156 2.0110 SSAX:read-attributes 140000 1.886 0.347 1.6715 assert-curr-char 560000 1.341 0.394 1.1885 SSAX:scan-Misc 20000 1.314 0.57e 1.1645 skip-while 490000 1.262 0.575 1.1185 SSAX:assert-token 130000 1.210 0.307 1.0724 http:write-response-header 10000 1.188 0.000 1.0529 next-token 50000 1.174 0.348 1.0405 def-code254 10000 1.153 0.000 1.0219 def-msg255 10000 1.109 0.000 0.9829 def-alist256 10000 1.071 0.000 0.9492 def-port257 10000 1.034 0.000 0.9173 xml-token-kind 690000 1.026 0.486 0.9093 On 12/8/06, Graham Fawcett <address@hidden> wrote:
On 12/7/06, Daishi Kato <address@hidden> wrote: > > Does smoke come out of the box when the number of requests increase? > > If so, how much? (Hey, you never know unless you ask.) > > Oh, I don't hope it smoke,s by now. Too bad. I could have helped you with that one! :-) > Well, I can try writing the client side in scheme, > so that you can reproduce the problem. (But you need to wait until > next Monday, since I'll be off for a while.) > Currently, the client is written in Java, and I haven't read the code yet. > > Thanks anyway for asking this. Do you happen to know how to run some > kind of profiling on xml-rpc and http eggs? Not too familiar. :-( Chicken has profiler support; also, the fact that you can compile to C suggests that C-profiling tools would also work correctly. But I think I would start with 'top' if you are running on a Unix box; just watch the processes, their CPU and memory usage, and hope to discover a clue. Separating the client and server onto separate machines might also be useful, though it may not uncover the problem. In terms of load testing, I'm pretty primitive when it comes to this kind of thing. I start with apachebench (ab), first from the localhost, then from a nearby peer. Later if I really need to test heavy loads, I have access to a lab of workstations; I script them to attack the server, and watch what happens. It is not like real-world traffic, though -- the latency is too low and the bandwidth too high -- you would need to introduce a bottleneck into your network to be more realistic. But I'm digressing. Graham
[Prev in Thread] | Current Thread | [Next in Thread] |