High-Traffic Proxy Connections
ProxyMesh will support large numbers of short-interval, recurrent proxy server connections. All of our proxies have a limit of 100 concurrent connections per IP address. These proxies are shared by all customers, and, to maintain service reliability, we cannot increase the number of requests above 100 per second on a given server; nor can we accommodate high-traffic by adding more IPs to a single server.
Requests exceeding the limit result in
503 error responses. Therefore, if you are running queries with traffic exceeding 100 concurrent connections/IP/proxy, and if you cannot slow your crawl rate, you will need to use multiple proxies.
When high-level traffic involves a group of related URLs, best practice is to distribute your requests across multiple proxies. Scaling your requests across multiple proxies is best done by adding more proxies to your account. Consider upgrading your subscription plan for access to more proxies. Or, with the ProxyMesh 50 or ProxyMesh 100 plan, you also have the option of adding extra proxies beyond the number offered in each plan. You'll find details in Adding Proxies for More IPs.
You can add extra proxies to your account for $10/month each. So, let's say you were enrolled in the ProxyMesh 100 plan and you needed to run 1,280 concurrent requests per second. ProxyMesh 100 provides 11 proxies. By adding two extra proxies, you could scale the 1,280 requests across 13 proxies so that the number of concurrent requests on each proxy was well under 100. Your monthly cost would be $100.00 for the 100 plan and an additional $20.00 for the 2 extra proxies.
Please note that the limit of 100 concurrent connections connections/IP/proxy will also apply to any extra proxies you add. This limit helps ensure that a single customer would not impact the service for other customers.
Here are some recommended practices that can speed your proxy responses and minimize timeouts.
- Reduce the number of concurrent requests from a single IP. This could involve using an additional IP for crawling, or slowing down your crawl rate on your current requests.
- With added proxies, you have more connection strategies available, such as putting all of your authorized proxy hostnames in a list in your code or script, then randomly choosing one proxy for each request.
- To connect to sites – especially in large numbers – in a specific geographical area, use proxies located near that area and, if possible, in the same domain. For example, use European proxies to connect to European sites. Try configuring the X-ProxyMesh-Country request header for this result when using the open and world proxies.
Apparent Server Outage Errors
Occasionally while running a high-traffic proxy connection, you may see an error message that seems to indicate a server outage.
Message: 'cURL error 56: Proxy CONNECT aborted due to timeout.'
This does not necessarily indicate a true outage on the proxy. There could have been network issues in between, or perhaps some of the outgoing IPs were temporarily blocked by the remote site.
Each geographical region has multiple IP addresses associated with it, representing multiple servers to handle requests. At any time, these IP addresses may be switched, making an individual IP unavailable; at this point another IP would be added to take over. Also, sometimes requests can be sent to an IP that is no longer available, resulting in issues such as this.
To reduce the impact of timeout errors, we suggest two steps:
- Upgrade your plan and distribute your requests across multiple proxies.
- Implement a retry strategy in your app, so that when a timeout occurs, you try a different proxy, and/or wait 1 second before retrying.
503 Error Responses
503 error response to a request can have several possible meanings. Two of these are:
service UnavailableThe proxy server cannot handle requests right now. This is rare, but can happen under high load situations.
too Many ConnectionsYou have more than 100 open connections to the proxy server from a single IP.
These messages will be in the response body when you receive a
503 error from the proxy server. The Proxy Status Page does not report how many concurrent connections you have per server. For assistance with this measure, please contact support.
Your dashboard does offer a means of checking the overall load and condition of a given server. From the dashboard, just click on the name of the server to view a page with a variety of information about the server. Our article Proxy Status Page discusses the metrics displayed on that page.
If the server status is
503 response could mean you're exceeding the limit on concurrent connections, and may need to reconsider your high-traffic strategy.