By default the proxy service uses a single instance that favors the CPU 1 of your system (technically the CPU #0). It's important to note that it requires careful configuration and monitoring to ensure proper resource allocation, load balancing, and overall system stability.
Using multiple instances in the proxy get some benefits:
Improved Performance: This mode can take advantage of multiple processor cores or threads to handle concurrent requests more efficiently. This parallel processing capability allows for faster response times and increased overall performance, especially in high-traffic environments.
Scalability: It enables proxy service to scale horizontally by distributing the workload across multiple processors or cores. As the demand for caching and proxy services grows, you can add more processing power by simply adding additional CPUs or cores to handle the increased load.
Increased Throughput: The proxy can handle a higher number of concurrent connections and process more requests simultaneously. This leads to increased throughput and better utilization of system resources, resulting in improved network performance and user experience.
Enhanced Stability and Redundancy: Using multiple instances, you can achieve increased stability and redundancy. If one processor or core becomes overloaded or experiences an issue, the other cores can continue to handle incoming requests, minimizing the impact on overall system performance and availability.
Internal Load Balancing: This mode allows for load balancing across multiple processors or cores, enabling efficient distribution of incoming requests. This feature helps evenly distribute the workload and prevents bottlenecks, ensuring optimal utilization of system resources.
Flexibility and Customization: It provides flexibility for customization based on your specific requirements. You can adjust the number of cores or threads dedicated to the proxy service, fine-tune cache settings, and optimize resource allocation to meet your performance goals.
You need to tune smoothly the number of instances because distributing and managing system resources across multiple cores or threads can be challenging. Improper resource allocation may lead to inefficient use of CPU power or memory, resulting in degraded performance or instability. Careful monitoring and tuning are necessary to ensure optimal resource utilization.
¶ Each instance is independent in terms of its resources.
This means that if one instance requires the loading of 20 authentication daemons, 15 web filtering daemons, if you add a second instance, you will end up with 40 authentication daemons and 30 web filtering daemons Be careful with the number of loaded instances
On 8 instances with 8 cpus, you will end up with 160 authentication daemons and 120 web filtering daemons !! So many processes to manage will strongly degrade the whole system ! We suggests to use the Artica Stress tool to evaluate correctly settings.
On the left menu, choose “Your Proxy” > “Multiple CPUs”
At the center you will be able to affect an instance of available CPU(s);
Start slowly by using 2 and then 3, do not try to associate an instance to each CPU as you risk overloading.