Unfortunately, I don't know of any simple answer (perhaps, others might know) 
to configure the active connection limit. 
Like I mentioned in my previous reply, the number of simultaneous/active 
connections that ATS can handle really depends on how much memory each of those 
connections are consuming. The memory consumed by a single (active) connection 
typically includes the (various) context/state memory associated with the 
connection, any transient/permanent iobuffers needed to complete the download 
etc. (Note also that the number of active connections (and their associated 
context/state and other memory) also include the origin (outbound) connections 
that ATS needs to make to download the objects). So, as such, it varies for 
each use case and end-to-end latency factors in a given deployment. Also, note 
that even *non-active* connections (assuming, you are enabling 
persistent/keepalive connections) consume some small amount of memory as well.
One approach is to actually run tests using some load generator (e.g 
ab/httpperf etc) to understand the limits in your specific use case and 
configure based on that.
Thanks,
Sudheer

    On Saturday, February 13, 2016 11:21 AM, Muhammad Faisal 
<[email protected]> wrote:
 

 #yiv7115368469 body {font-size:13px;}Thanks Sudheer. What i have understood 
the below details is:
Assumption: 200kbps/active connectionWith default Con throttle: 30000Active 
Conns: 9000Per ATS Server the total Network Throughput: 9000x200 = 1.8Gbps
Am I interpreting it correctly?

I'm still confuse on active connection limit relation with memory like we have 
for 1MB RAM/gigabyte Cache Disk.

-- ThanksF.
irc: zoot

On Sun, 14 Feb 2016 00:01:46 +0500, Sudheer Vinukonda <[email protected]> 
wrote:


proxy.config.net.connections_throttle is primarily limited by amount of memory 
available to ATS (minus the configured amount of RAM cache) in the system. For 
example, if your system has 16g of RAM and your provisioned RAM cache of 8g, 
assuming there's no other process running in the system that takes a lot of 
memory, then ATS uses up all of the remaining 8g for connections (and other 
contexts, iobuffers etc).
When there's no more memory available for ATS to allocate for new connections, 
it could result in swap activity and performance degradation.
The actual bandwidth throughput may or may not directly impact the maximum 
number of connections the system can handle, since the bandwidth throughput 
depends on the type of the use case (size of response body). If your use case 
is video, with typically larger size objects (compared to web), then you are 
more likely to be limited by the network throughput than number of connections.
Typical (large scale) production deployments use some sort of load balancer to 
distribute the connections in a cluster of ATS and are generally liberal with 
the proxy.config.net.connections_throttle setting (letting the connection load 
be balanced/limited at the LB level, rather than at the individual ATS host 
level).
Thanks,
Sudheer


On Friday, February 12, 2016, 8:33 PM, Muhammad Faisal <[email protected]> 
wrote:
Hi All,I have been through previous posts on mail archives and understood that 
CPU is not much of a concern when scaling ATS for high load. The actual 
performance drivers are RAM and Disk space which is approx. 1MB/Gigabyte Disk. 
I'm a bit confuse on connection throttle variable which is set by default to 
30000 and docs says it can handle ~9000 active connections. 
proxy.config.net.connections_throttle What could be if: Peak Traffic Rate = 
1Gbps: A single deployment as per below hardware specifications will be enough? 
How connections throttle can be scaled to serve 50,000 active connections?What 
is the upper limit for this configuration variable? and relation with the OS 
and Hardware?   How much traffic rate and active connections can be served 
with: 2x 8-Core Xeon CPUs (16-Cores)24 GB RAM4x 1Gbit NIC4x 1TB HDD (Raw disks) 
  --
Thanks
F.
irc: zoot
 









  

Reply via email to