Skip to content
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

How does artillery tool make HTTP requests? #138

Closed
rvnath opened this issue Jul 15, 2016 · 3 comments
Closed

How does artillery tool make HTTP requests? #138

rvnath opened this issue Jul 15, 2016 · 3 comments
Labels

Comments

@rvnath
Copy link

rvnath commented Jul 15, 2016

OK. If I am using this tool for load testing of a HTTP server, I wanna know if it reuses the tcp connections for multiple requests, or does it follow the setup, user and tear-down approach for each request?

The reason I am asking this is because the behavior I observed in my NodeJS+EspressJS web server. Once the loading (RPS) crosses 500, it starts getting in enobufs error. I am trying to google for a solution, but not yet close to it :(-.

Can I get more info on this error and what I should be doing to avoid this error...

@hassy
Copy link
Member

hassy commented Jul 15, 2016

By default Artillery will open a new TCP connection for each virtual user (which will usually make multiple requests over that connection).

You can set the maximum total number of connections with config.http.pool. That will make multiple virtual users reuse the same connection.

@hassy hassy added the docs label Jul 15, 2016
@rvnath
Copy link
Author

rvnath commented Jul 16, 2016

Thanks for the info. For my particular problem, I tried looking up at this thread. As for what you say, artillery doesn't do a setup / teardown but it will reuse the connections. Why do you think it will result in enobufs error frequently? It happens whenver the loading reaches above 500 RPS. I am using a virtual m/c with 8GB of RAM quad core.

@hassy
Copy link
Member

hassy commented Jul 17, 2016

Artillery creates a new connection for each virtual user so if your scenario only performs one request and you have a high arrival rate, it's possible that too many TCP connections are being created. That would be my guess. Try setting config.http.pool to something like 200 and see what happens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants