Re: Echo server in Lua

2015-11-19 Thread Willy Tarreau
On Thu, Nov 19, 2015 at 07:00:32AM +, Thrawn wrote: > Hmm...I haven't tuned anything (this is just my workstation, not a server). > /proc/sys/net/core/somaxconn 128 > /proc/sys/net/ipv4/tcp_max_backlog doesn't exist > > /proc/sys/net/ipv4/tcp_max_syn_backlog512 Yep sorry it's this one. > I

Re: Echo server in Lua

2015-11-19 Thread Thrawn
Nope :|. I've increased somaxconn to 512 and tcp_max_syn_backlog to 2048, but with one process, 1M requests, concurrency 500, I still get a bunch of timeouts, and the longest transaction still takes most of the test (eg 32 seconds out of a test that takes 35). Any other obvious possibilities?

Re: Echo server in Lua

2015-11-18 Thread Willy Tarreau
hi, just chiming in regarding this specific point : On Tue, Nov 10, 2015 at 10:46:32PM +, Thrawn wrote: > I ran ab with concurrency 1000 and a total of 3 requests, against each > server, 5 times, plus one run each with 15 requests (sum of the previous > 5 tests).For Apache+PHP, this

Re: Echo server in Lua

2015-11-18 Thread Thrawn
OK, I've decided to go a bit easier on the stress tools ;), and limited concurrency to 500, using siege. That's resulted in some useful data (attached). HAProxy HTTP endpoint, with 1 process, handled up to 500K total requests without breaking a sweat, in just under 30 seconds, achieving an

Re: Echo server in Lua

2015-11-18 Thread Willy Tarreau
Hi, On Thu, Nov 19, 2015 at 03:37:33AM +, Thrawn wrote: > OK, I've decided to go a bit easier on the stress tools ;), and limited > concurrency to 500, using siege. That's resulted in some useful data > (attached). > HAProxy HTTP endpoint, with 1 process, handled up to 500K total requests >

Re: Echo server in Lua

2015-11-18 Thread Thrawn
Hmm...I haven't tuned anything (this is just my workstation, not a server). /proc/sys/net/core/somaxconn 128 /proc/sys/net/ipv4/tcp_max_backlog doesn't exist /proc/sys/net/ipv4/tcp_max_syn_backlog512 I guess those are pretty low for trying to thrash an echo server...any recommendations?

Re: Echo server in Lua

2015-11-17 Thread Thrawn
ttpreq     bind            192.168.0.120:9012       mode            http     http-request lua.lua-replyip-http-req core.register_service("lua-replyip", "http", function(applet)    local response = applet.f:src()    applet:set_status(200)    applet:add_header(&

Re: Echo server in Lua

2015-11-11 Thread PiBa-NL
-http-req core.register_service("lua-replyip", "http", function(applet) local response = applet.f:src() applet:set_status(200) applet:add_header("Server", "haproxy-lua/echo") applet:add_header("content-length", string.len(response)

Re: Echo server in Lua

2015-11-10 Thread Thrawn
.org/ Benchmarking 127.0.1.1 (be patient) Completed 3000 requests Completed 6000 requests Completed 9000 requests Completed 12000 requests Completed 15000 requests Completed 18000 requests Completed 21000 requests Completed 24000 requests Completed 27000 requests Completed 3 requests Finishe

Re: Echo server in Lua

2015-11-10 Thread Baptiste
On Tue, Nov 10, 2015 at 10:46 PM, Thrawn wrote: > OK, I've set this up locally, and tested it against PHP using ab. > > HAProxy was consistently faster (99% within 1ms, vs 5-15ms for PHP), but at > request volumes over about 35000, with concurrency 1000, it

Re: Echo server in Lua

2015-11-10 Thread Thrawn
OK, some explanation seems in order :). I ran ab with concurrency 1000 and a total of 3 requests, against each server, 5 times, plus one run each with 15 requests (sum of the previous 5 tests).For Apache+PHP, this typically resulted in 5-15ms response time for 99% of requests, with the

Re: Echo server in Lua

2015-11-10 Thread PiBa-NL
b.t.w. if sole purpose of the frontend is to echo the ip back to the client. You should probably also check the 'use-service' applet syntax, i dont know if that could be faster for your purpose. Then another thing to check would be if you want to use the tcp or http service mode. A TCP service

Re: Echo server in Lua

2015-11-10 Thread Thrawn
Hmm...I seem to be able to set up something in TCP mode, and it returns the expected response via curl, but its performance is awful. I must be doing something wrong? Lua: core.register_action("tcp-echo", {"tcp-req"}, function (txn)     local buffer = txn.f:src()     txn.res:send("HTTP/1.0 200

Re: Echo server in Lua

2015-11-08 Thread Thrawn
local response = ""         buffer = txn.f:src()         response = response .. "HTTP/1.0 200 OK\r\n"         response = response .. "Server: haproxy-lua/echo\r\n"         response = response .. "Content-Type: text/html\r\n"         response = response .. &quo

Re: Echo server in Lua

2015-11-03 Thread Baptiste
e = response .. "HTTP/1.0 200 OK\r\n" response = response .. "Server: haproxy-lua/echo\r\n" response = response .. "Content-Type: text/html\r\n" response = response .. "Content-Length: " .. buffer:len() .. "\r\n&q

Echo server in Lua

2015-11-02 Thread Thrawn
Now that HAProxy has Lua support, I'm looking at the possibility of setting up an echo server, which simply responds with the observed remote address of the client (currently implemented in PHP as ). Does anyone have a suggestion of the most efficient possible implementation of this? If