siege 测试JFinal+undertow 框架

利用siege测了一下单机JFinal框架+undertow的的性能,也不知道下面的结果到底算是性能如何呢?  为了测最快速度,我只写了一个controller的method直接返回renderNull();


gary@ubuntu18$ siege -c1000 -r100 http://127.0.0.1:8000/mock/siege

** SIEGE 4.0.4

** Preparing 1000 concurrent users for battle.

The server is now under siege...

Transactions:       100000 hits

Availability:       100.00 %

Elapsed time:        19.29 secs

Data transferred:         0.00 MB

Response time:         0.18 secs

Transaction rate:      5184.03 trans/sec

Throughput:         0.00 MB/sec

Concurrency:       929.95

Successful transactions:      100000

Failed transactions:            0

Longest transaction:         2.11

Shortest transaction:         0.00



gary@ubuntu18$ siege -c1000 -r200 http://127.0.0.1:8000/mock/siege

** SIEGE 4.0.4

** Preparing 1000 concurrent users for battle.

The server is now under siege...

Transactions:       200000 hits

Availability:       100.00 %

Elapsed time:        40.25 secs

Data transferred:         0.00 MB

Response time:         0.19 secs

Transaction rate:      4968.94 trans/sec

Throughput:         0.00 MB/sec

Concurrency:       947.82

Successful transactions:      200000

Failed transactions:            0

Longest transaction:         2.36

Shortest transaction:         0.00


另外也调了了一下undertow的ioThread以及workerThread, 基本ioThread最好状态是在 cpu核数×2的数值上, workerThread不宜超过500

评论区

JFinal

2019-10-12 23:13

这个测试结果并不理想,俱乐部群里面有测试值达到 38000 的

可能是 renderNull() 拖慢了速度,改成 renderText("ok") 试一下

当然,性能测试还与很多因素有关

山东小木

2019-10-13 09:48

可以翻译成中文 整体描述一下

zhangtianxiao

2019-10-14 17:13

@JFinal 可能吗, 怕不是本机测本机开了keepAlive,

JFinal

2019-10-14 17:16

@zhangtianxiao renderNull() 不会向客户端输出任何东西,可能造成客户端的等待,起码会等待服务端关闭连接之类的动作

客户端如果发生等待,可能就不会发起新的请求,从而造成性能测试结果很低

任何待等都可能拉低性能

zhangtianxiao

2019-10-14 17:23

上一下配置?

zhangtianxiao

2019-10-14 17:25

@JFinal 设置content-length头可以解决这个问题

wrongch

2019-10-24 20:48

Http Response code 设为204 NO_CONTENT 应该可以解决renderNull()等待问题

热门分享

扫码入社