Re: [Nethttpd-plex] Poor performance on FreeBSD 8.2
Matías Giovannini <[email protected]> Thu, 7 Jul 2011 16:41:57 -0300
| Newsgroups | gmane.comp.lang.ocaml.lib.net.devel |
|---|---|
| Message-ID | <CALzEXo927ryo6AE9XKVDhGR6_JMoPWoE+apzp1TXAVQxEsxScw@mail.gmail.com> |
Gerd, thank you for your response. I understand your explanation, except that I still can't account for the enormous difference in throughput between Nethttpd_services.dynamic_service and Nethttpd_services.file_service (if I understand the code correctly, the latter handles by returning a `File value to the engine, while the former generates dynamic content with Netcgi.cgi_activation#out). I'm preoccupied with trying to extract the maximum sequential speed possible out of Nethttpd since the client does no pipelining, and I have essentially no control over it. Kind regards, Matías. On Thu, Jul 7, 2011 at 4:11 PM, Gerd Stolpmann <[email protected]>wrote: > Matías, > > I can confirm that I also get poor performance with your curl tester, > but good performance with other utilities. And it is easy to explain. > > Your tester plays a strict ping/pong game, i.e. the next request is > first sent when the previous is done. The siege tool, however, uses > pipelining to get better performance. This means a certain number of > requests are sent in sequence without waiting for replies (i.e. the > request sending is a certain number of messages ahead to response > reception). (Look here: http://en.wikipedia.org/wiki/HTTP_pipelining) > > The difference is enormous, but is completely an artifact of the testing > method. The transport time for messages is not negligible, even for > local-loopback transport, and by default there are TCP options in effect > that artificially delay the messages in order to reduce the number of > Internet packets (Nagle algorithm). Trying TCP_NODELAY (on both sides) > would be interesting, also a non-TCP transport (e.g. Unix domain sockets > - should be easy with nethttpd, but I don't know whether curl allows > it). > > I suspect that your self-written server benefits from shutting the > connection down immediately. The kernel knows then that no more data > will come. > > Gerd > > > Am Donnerstag, den 07.07.2011, 14:40 -0300 schrieb Matías Giovannini: > > I've migrated to Debian Lenny, and even though I see higher throughput > > compared to FreeBSD 8, there is a huge discrepancy between static file > > serving and dynamic services in Nethttpd: > > > > > > $ ./curl_test -v -m g -n 100 > > 'http://127.0.0.1:4444/share/misc/magic.mime' > > Total time: 0.100 s (996.35 req/s) > > cURL time: 0.100 s (1000.11 req/s) > > successes: 100/100 > > $ ./curl_test -v -m g -n 100 'http://127.0.0.1:4444/adder' > > Total time: 3.961 s (25.25 req/s) > > cURL time: 3.960 s (25.25 req/s) > > successes: 100/100 > > > > > > I've measured my own dynamic handler and its activation is > > consistently under 1 ms, so I'm confident that it is not the handler > > code that is holding my throughput back. > > > > > > Maybe something to do with Netcgi? I'd love to hear your opinions. > > > > > > Regards, > > Matías. > > > > On Tue, Jul 5, 2011 at 7:15 PM, Stéphane Legrand <[email protected]> > > wrote: > > Le mardi 05 juillet 2011 à 17:30 -0300, Matías Giovannini a > > écrit : > > > Stéphane, > > > it's odd, as testing the cURL script against a minimal > > server I get > > > good throughput: > > > > > > > > > $ ./curl_test -v -n 1000 'http://127.0.0.1:9999/' > > > Total time: 0.149 s (6699.49 req/s) > > > cURL time: 0.122 s (8206.21 req/s) > > > successes: 1000/1000 > > > > > > > > > I tried this server with the curl client. I also get much > > higher request > > rate (around 1000 req/sec). > > > > I really don't know. Have you tried to play with the curl > > options, > > particularly the TCP_NODELAY one ? > > > > > > Regards, > > Stéphane. > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > > All of the data generated in your IT infrastructure is seriously > valuable. > > Why? It contains a definitive record of application performance, security > > threats, fraudulent activity, and more. Splunk takes this data and makes > > sense of it. IT sense. And common sense. > > http://p.sf.net/sfu/splunk-d2d-c2 > > _______________________________________________ Ocamlnet-devel mailing > list [email protected] > https://lists.sourceforge.net/lists/listinfo/ocamlnet-devel > > > -- > ------------------------------------------------------------ > Gerd Stolpmann, Bad Nauheimer Str.3, 64289 Darmstadt,Germany > [email protected] http://www.gerd-stolpmann.de > Phone: +49-6151-153855 Fax: +49-6151-997714 > ------------------------------------------------------------ > > ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Ocamlnet-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ocamlnet-devel