One thing I can think of is that you may be calling ts.fetch() unconditionally. We need to check if it is an internal request first. If it is, it is likely done to the ts.fetch() and therefore we should not do a ts.fetch() for an incoming internal request.
Otherwise it will result in a recursive situation and severely affect performance. But if you have taken care of that already, pls share your script with you so I can take a closer look. Thanks. On Thu, Dec 22, 2016 at 9:48 AM, Shu Kit Chan <chanshu...@gmail.com> wrote: > Can you share your lua script in full with me? > > Thanks. > > Kit > > On Thu, Dec 22, 2016 at 1:30 AM, Di Li <di...@apple.com> wrote: >> Hey Guys, >> >> Running 6.2.0 with cherry pick of TS-4497 to make the ts.fetch work, >> otherwise it won’t even function. >> >> The performance came back with very terrible results, not sure the issue is >> on the keep alive has been disabled for internal request or the ts.fetch >> lock on itself >> >> I have running the ts.fetch or luasocket with a service on 127.0.0.1, so not >> really remote request >> >> >> without ts.fetch, I have 45156 req/s >> >> [root@Di-Dev wrk]# ./wrk -c 50 -t 20 -d 10 -s ./scripts/via_proxy_get1.lua >> http://10.12.17.57:8080 >> Running 10s test @ http://10.12.17.57:8080 >> 20 threads and 50 connections >> Thread Stats Avg Stdev Max +/- Stdev >> Latency 1.16ms 3.55ms 87.34ms 99.06% >> Req/Sec 2.27k 596.33 3.49k 67.84% >> 456054 requests in 10.10s, 374.47MB read >> Requests/sec: 45156.39 >> Transfer/sec: 37.08MB >> >> >> with ts.fetch, I have roughly 80 req/s, simply add following into any hook >> call back function >> >> local res = ts.fetch('http://127.0.0.1/ping', {method = 'GET’}) and no >> process any data from the res, purely just call it. >> >> >> >> [root@Di-Dev wrk]# ./wrk -c 50 -t 20 -d 10 -s ./scripts/via_proxy_get1.lua >> http://10.12.17.57:8080 >> Running 10s test @ http://10.12.17.57:8080 >> 20 threads and 50 connections >> Thread Stats Avg Stdev Max +/- Stdev >> Latency 547.01ms 98.71ms 1.12s 84.97% >> Req/Sec 4.46 3.06 20.00 77.60% >> 712 requests in 10.02s, 598.66KB read >> Requests/sec: 71.07 >> Transfer/sec: 59.76KB >> >> >> >> with luasocket, I have roughly 19000 req/s, still a huge drop on >> performance, that’s the reason we tried the ts.fetch, but come back with way >> much worse results. >> >> >> >> Thanks, >> Di Li >> >> >> >> >>