我使用Lua Cjson来解析request中的数据,提取其中一个field来做proxy,但好像Lua cjson的性能非常不好。
我用一个简单的json {"id": xxx},QPS 20s 可以达到17303
$ wrk -t6 -c12 -d20s --timeout 2s https://127.0.0.1:20000/dev
Running 20s test @ https://127.0.0.1:20000/dev
6 threads and 12 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 726.19us 737.91us 26.40ms 94.03%
Req/Sec 2.91k 1.68k 7.74k 78.08%
348170 requests in 20.01s, 62.74MB read
Requests/sec: 17403.42
Transfer/sec: 3.14MB
还一个稍微复杂一点地"{\"id\": xxx,\"app\": {\"bundle\": \"749124884\",\"cat\": [\"IAB3\",\"utiliti0es\"]}}",QPS就只有138了, CPU
Running 20s test @ https://127.0.0.1:20000/dev
6 threads and 12 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 18.33ms 4.01ms 42.38ms 69.53%
Req/Sec 108.47 20.53 161.00 67.58%
12975 requests in 20.01s, 2.34MB read
Requests/sec: 648.31
Transfer/sec: 119.63KB
感觉这个差距有点悬殊,大家有没有遇到过这样的问题?
准备用systemtap去看看cpu花在哪呢,如果大家有其他profile的方法也建议下,谢谢!