[squid-users] Running SMP workers on multi-core systems

Praveen Ponakanti pponakanti at roblox.com
Fri Oct 1 06:37:10 UTC 2021


Hi Alex,

Thanks a lot for the clarification on the config for running multiple
workers with version 5.1, its a lot simpler now with just the "workers"
config! I have been able to resolve the "commBind Cannot bind socket FD" error
by ensuring the var/run/squid folder is created with write permissions. I
have a docker container (ubuntu) with squid configured with
the --localstatedir option prior to build (as the installation is at
/squid), I have managed to fix it with some changes to the docker
entrypoint script and am able to run 16 kid processes on my test server.
However, I am still trying to get the container working in a nomad job
(which was fine with version 4.13 with almost the same config but w/o
additional workers). I havent been able to extract the cache log when run
inside nomad so far, will try again and post here if I need
further assistance on that.

BTW, when I attempt to use the following config with 5.1 the cache log says
that I need to run 'squid -z' to create the swap directories. Is that
something I would need to add to my Docker build steps so that it is set
up before the squid server is run?

Thanks again for the config examples and pointers.

Praveen

"cache_dir ufs /squid/var/cache/squid 400000 16 256"

2021/09/30 22:27:39 kid3| Swap maxSize 409600000 + 262144 KB, estimated
31527857 objects

2021/09/30 22:27:39 kid4| storeDirWriteCleanLogs: Operation aborted.

2021/09/30 22:27:39 kid3| Target number of buckets: 1576392

2021/09/30 22:27:39 kid3| Using 2097152 Store buckets

2021/09/30 22:27:39 kid4| FATAL: Failed to verify one of the swap
directories, Check cache.log

for details.  Run 'squid -z' to create swap directories

if needed, or if running Squid for the first time.

2021/09/30 22:27:39 kid3| Max Mem  size: 262144 KB [shared]

2021/09/30 22:27:39 kid3| Max Swap size: 409600000 KB

2021/09/30 22:27:39 kid3| ERROR: /squid/var/cache/squid/00: (2) No such
file or directory

2021/09/30 22:27:39 kid3| Not currently OK to rewrite swap log.

2021/09/30 22:27:39 kid4| Squid Cache (Version 5.1): Terminated abnormally.

2021/09/30 22:27:39 kid3| storeDirWriteCleanLogs: Operation aborted.

2021/09/30 22:27:39 kid3| FATAL: Failed to verify one of the swap
directories, Check cache.log

for details.  Run 'squid -z' to create swap directories

if needed, or if running Squid for the first time.

2021/09/30 22:27:39 kid2| Store logging disabled

2021/09/30 22:27:39 kid3| Squid Cache (Version 5.1): Terminated abnormally.




root at testhost:/squid# ls -l /squid/var/cache/

total 4

drwxr-xr-x 2 root root 4096 Sep 30 17:52 squid

On Thu, Sep 30, 2021 at 6:30 AM Alex Rousskov <
rousskov at measurement-factory.com> wrote:

> On 9/30/21 2:49 AM, Praveen Ponakanti wrote:
>
> > I am trying to use the squid cache as an outbound HTTP/S proxy service
> > for our production network and would like to scale up the request per
> > sec by running it on multi-core systems.
>
> > I have searched up the archives and config docs, but couldn't find
> > anything more recent than the below on setting up SMP workers.
> > https://wiki.squid-cache.org/ConfigExamples/SmpCarpCluster
> > https://wiki.squid-cache.org/ConfigExamples/MultiCpuSystem
>
> The two old exotic configurations above are not what you should be
> starting with when thinking about SMP support in modern Squids. The best
> starting points I know about are
>
> * https://wiki.squid-cache.org/Features/SmpScale
> * http://www.squid-cache.org/Doc/config/workers/
> * http://www.squid-cache.org/Doc/config/cpu_affinity_map/
> * http(s)_port worker-queues option
>
> That Feature wiki page does not get many updates these days; if there is
> a conflict between information sources, the directive documentation in
> your squid.conf.documented may have more recent information.
>
>
> > * Can someone please let me know if the config examples in those docs
> > still apply to the latest version 5.1.
>
> I bet those use cases themselves do not apply well to your situation.
>
>
> > * Do we still need the combination of squid, frontend, backend.conf
> > files, or is it enabled simply with the "workers" line in the main
> > config file?
>
> The workers directive does not require multiple Squid instances (with
> multiple configuration files, etc.).
>
>
> > * When I attempt to run the squid server with "workers 4" in the
> > squid.conf, I get the following error (one for each kid) and the main
> > process does not bind to the "http_port 3128". I see several UDP ports
> > opened up for each kid process.
>
> > 2021/09/29 00:44:10 kid5| commBind Cannot bind socket FD 11 to [::]: (2)
> No such file or directory
>
> Unfortunately, I cannot tell exactly what went wrong based on that
> low-level message alone, but it could be a variant of [1]. If you cannot
> figure it out after checking [1] suggestions, consider sharing "squid
> -X" startup cache.log for analysis. There is
>
> [1]
>
> https://wiki.squid-cache.org/Features/SmpScale#Cannot_bind_socket_FD_NN_to_.5B::.5D:_.2813.29_Permission_denied
>
> The UDP ports you are seeing are probably for the internal DNS resolver
> which is not SMP-aware.
>
>
> > * Does anyone have recommendations on the maximum number of workers to
> > use on a 64 core host (assuming no other CPU intensive apps are running
> > on the same host). Caching is not a must for our initial deployment, so
> > we are fine disabling caching.
>
> 28-30. See the following wiki section for the corresponding rules of
> thumb:
>
> https://wiki.squid-cache.org/Features/SmpScale#How_to_configure_SMP_Squid_for_top_performance.3F
>
>
> HTH,
>
> Alex.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20210930/f61df658/attachment-0001.htm>


More information about the squid-users mailing list