nicolasff / webdis

A Redis HTTP interface with JSON output
https://webd.is
BSD 2-Clause "Simplified" License
2.83k stars 304 forks source link

webdis slow publish rps on slow subscribe clients #24

Closed fabware closed 13 years ago

fabware commented 13 years ago

Hi, Nicolas

I made a test of publish rps with slow subscribe scenario and compared with redis-py client. I do it in python.

test1:

python test_webdis_subscribe.py

ab -n 4000 -c 1 http://127.0.0.1:7379/PUBLISH/ch:test/hi Request per second: 4000 rps

ab -n 10000 -c 1 http://127.0.0.1:7379/PUBLISH/ch:test/hi Request per second: 161.50 rps

test2:

python test_redispy_subscribe.py

python test_redispy_publish.py 10000 Request per second: 4090 rps

161rps isn't normal compared with 4000rps with webdis. It seems publish rps affected by slow subscribe clients.

partial code can be found at: https://gist.github.com/988375

nicolasff commented 13 years ago

Hi,

Thanks for providing the client code, I can reproduce this issue.

nicolasff commented 13 years ago

Hi,

This should now be working as expected. It took me a while to figure it out: the client sockets were blocking. Thanks a lot for reporting this problem, and for providing the test code; I used it to track down the bug.

Nicolas