Search squid archive

Re: Running SMP workers on multi-core systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@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@xxxxxxxxxxxxxxxxxxxxxxx> 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.
_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux