Slowloris : broken link #1142

Closed
molivier opened this Issue Nov 5, 2015 · 7 comments

Projects

None yet

3 participants

@molivier
Contributor
molivier commented Nov 5, 2015

Http link to slowloris seems to be broken and the project not maintained anymore. May be wrk could be used as replacement ?

@berkerpeksag
Collaborator

+1 to wrk, but it would be nice to add an example command since it basically has no proper documentation. Another alternative is https://github.com/valyala/goloris. https://github.com/valyala/goloris/blob/master/goloris.go#L21-L27 can be used as documentation :)

@molivier
Contributor
molivier commented Nov 6, 2015

I didn't know goloris but another nice golang tool is boom which has nice documentation too.

@benoitc
Owner
benoitc commented Nov 20, 2015

goloris sounds like a good replacement. @molivier How boomer can be used to test it?

@molivier
Contributor

@benoitc On MacOSX you can use brew to install golang then boom:

brew install go
go get github.com/rakyll/boom

Then you can use it against your app (here a Flask Hello World with 1 worker):

gunicorn server:app
[2015-11-26 12:20:29 +0100] [89459] [INFO] Starting gunicorn 19.4.1
[2015-11-26 12:20:29 +0100] [89459] [INFO] Listening at: http://127.0.0.1:8000 (89459)
[2015-11-26 12:20:29 +0100] [89459] [INFO] Using worker: sync
[2015-11-26 12:20:29 +0100] [89462] [INFO] Booting worker with pid: 89462

boom -n 1000 -c 100 http://127.0.0.1:8000/
1000 / 1000 Boooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00 % 

Summary:
  Total:    0.6602 secs.
  Slowest:  0.0729 secs.
  Fastest:  0.0054 secs.
  Average:  0.0629 secs.
  Requests/sec: 1514.6818
  Total Data Received:  12000 bytes.
  Response Size per Request:    12 bytes.

Status code distribution:
  [200] 1000 responses

Response time histogram:
  0.005 [1] |
  0.012 [11]    |
  0.019 [10]    |
  0.026 [10]    |
  0.032 [9] |
  0.039 [11]    |
  0.046 [11]    |
  0.053 [10]    |
  0.059 [118]   |∎∎∎∎∎∎∎∎
  0.066 [283]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.073 [526]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

Latency distribution:
  10% in 0.0577 secs.
  25% in 0.0609 secs.
  50% in 0.0663 secs.
  75% in 0.0680 secs.
  90% in 0.0705 secs.
  95% in 0.0720 secs.
  99% in 0.0725 secs.

With 4 workers:

gunicorn server:app -w 4
[2015-11-26 12:23:14 +0100] [89538] [INFO] Starting gunicorn 19.4.1
[2015-11-26 12:23:14 +0100] [89538] [INFO] Listening at: http://127.0.0.1:8000 (89538)
[2015-11-26 12:23:14 +0100] [89538] [INFO] Using worker: sync
[2015-11-26 12:23:14 +0100] [89541] [INFO] Booting worker with pid: 89541
[2015-11-26 12:23:14 +0100] [89542] [INFO] Booting worker with pid: 89542
[2015-11-26 12:23:14 +0100] [89544] [INFO] Booting worker with pid: 89544
[2015-11-26 12:23:14 +0100] [89545] [INFO] Booting worker with pid: 89545

boom -n 1000 -c 100 http://127.0.0.1:8000/
1000 / 1000 Boooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00 % 

Summary:
  Total:    0.2416 secs.
  Slowest:  0.0279 secs.
  Fastest:  0.0041 secs.
  Average:  0.0229 secs.
  Requests/sec: 4139.3052
  Total Data Received:  12000 bytes.
  Response Size per Request:    12 bytes.

Status code distribution:
  [200] 1000 responses

Response time histogram:
  0.004 [1] |
  0.006 [5] |
  0.009 [10]    |
  0.011 [13]    |∎
  0.014 [15]    |∎
  0.016 [13]    |∎
  0.018 [13]    |∎
  0.021 [14]    |∎
  0.023 [409]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.026 [318]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.028 [189]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

Latency distribution:
  10% in 0.0210 secs.
  25% in 0.0225 secs.
  50% in 0.0232 secs.
  75% in 0.0243 secs.
  90% in 0.0263 secs.
  95% in 0.0267 secs.
  99% in 0.0276 secs.
@benoitc benoitc added this to the 19.4.2 milestone Dec 6, 2015
@benoitc
Owner
benoitc commented Dec 6, 2015

@molivier boom sounds OK, do you want to send us a PR to replace the old solution in the doc?

@molivier
Contributor
molivier commented Dec 9, 2015

@benoitc I'm preparing a PR to enhance the documentation. I will push it this week.

@benoitc
Owner
benoitc commented Dec 9, 2015

@molivier thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment