New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slowloris : broken link #1142

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

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

This comment has been minimized.

Show comment
Hide comment
@berkerpeksag

berkerpeksag Nov 6, 2015

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 :)

Collaborator

berkerpeksag commented Nov 6, 2015

+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

This comment has been minimized.

Show comment
Hide comment
@molivier

molivier Nov 6, 2015

Contributor

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

Contributor

molivier commented Nov 6, 2015

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

@benoitc

This comment has been minimized.

Show comment
Hide comment
@benoitc

benoitc Nov 20, 2015

Owner

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

Owner

benoitc commented Nov 20, 2015

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

@molivier

This comment has been minimized.

Show comment
Hide comment
@molivier

molivier Nov 26, 2015

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.
Contributor

molivier commented Nov 26, 2015

@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

This comment has been minimized.

Show comment
Hide comment
@benoitc

benoitc Dec 6, 2015

Owner

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

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

This comment has been minimized.

Show comment
Hide comment
@molivier

molivier Dec 9, 2015

Contributor

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

Contributor

molivier commented Dec 9, 2015

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

@benoitc

This comment has been minimized.

Show comment
Hide comment
@benoitc

benoitc Dec 9, 2015

Owner

@molivier thanks!

Owner

benoitc commented Dec 9, 2015

@molivier thanks!

berkerpeksag added a commit that referenced this issue Dec 14, 2015

Merge pull request #1163 from molivier/master
Fix Slowloris broken link. Close #1142

fofanov pushed a commit to fofanov/gunicorn that referenced this issue Mar 16, 2018

fofanov pushed a commit to fofanov/gunicorn that referenced this issue Mar 16, 2018

Merge pull request #1163 from molivier/master
Fix Slowloris broken link. Close #1142
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment