[squid-users] Network appliance Sizing for Squid transparent proxy
Amos Jeffries
squid3 at treenet.co.nz
Sun Nov 27 15:28:03 UTC 2022
On 27/11/2022 5:37 am, Lucas Vicente Pereira wrote:
> Dear,
>
>
> I have a project and would like to use Squid for WebProxy with Full
> SSL inspection, external acl to control urls access.
>
Firstly, be aware that TLS when used properly *cannot* be decrypted
transparently.
So do not expect 100% inspection rates. Even though typical web HTTPS
can still be inspected, service security levels vary a lot.
> Environment information:
>
> ~2500 users
> 3 x Internet links 1 Gbps each
> Average HTTP requests per minute since start: 65956.1
> ClamAv integration
> Snort Integration
> Iptables REDIRECT for squid
>
> Please, can you please help me with appliance sizing for this environment?
>
Disclaimer: I do not have any numbers for Squid when ClamAv is added.
Someone else here may be able to supply or correct my below numbers from
their actual experience when that tool is used.
AFAIK Snort and iptables are so much more efficient than Squid that they
are essentially not relevant.
Your 1.1k RPS is well within Squid's capabilities for HTTP (15k-20k RPS
limit), but the "SSL inspection" will add much overhead so YMMV.
Squid places heavy loads on CPU and I/O systems. The key things to look
for when you are pushing performance boundaries are (in order of
impact/gains IMO):
* as much RAM as you can afford. Within reason, ~128GB is probably
enough for most Squid.
- I/O is a major point of performance loss. Network I/O is implicitly
minimized by Squid defaults.
- Now that RAM comes by the GB I typically recommend a memory cache
over disk cache.
* prefer CPU with higher GHz rating than more cores,
- the GHz translates directly into faster transaction times + more
clients, cores translates only to parallel capacity/clients.
* real/physical cores better than hyper-threading,
- Squid workers are single-threaded and can push their CPU hard. In
this case hyper-threading just slows the CPU down.
* bare-metal better than container; container better than VM.
- under load Squid will just keep squeezing the machine until it has
nothing left to give - then traffic speed takes a nosedive at the worst
possible time to do so.
The rest is down to configuration and making the whole system as simple
as possible at every level.
HTH
Amos
More information about the squid-users
mailing list