I‘ve Squid Proxy server with over 100 Windows workstation. I see following error message in my cache.log file:
WARNING! Your cache is running out of filedescriptors
Do I need to filter proxy server requests to avoid this problem? How do I fix this problem under CentOS / Fedora / RHEL / Debian Linux?
If you see this message in your /var/log/squid/cache.log file, it means Squid proxy server is running out of file descriptors and cannot handle the extra requests sent by your client computers.
Task: Find out current file descriptors limits
Login to your Squid proxy server and type the following command at shell prompt:
# squidclient mgr:info | grep 'file descri'
# squidclient -p {port} -u {proxy-user} -w '{proxy-password}' mgr:info | grep 'file descri'
# squidclient -p 8080 -u admin -w 'secretePassword' mgr:info | grep 'file descri'
Sample output:
Maximum number of file descriptors: 1024 Available number of file descriptors: 1008 Reserved number of file descriptors: 100
Squid increase the maximum file descriptors
First, update /etc/security/limits.conf file:
# vi /etc/security/limits.conf
Append following line to increase current limit from 1024 to 4096:
* - nofile 4096
Save and close the file. You must re-login to check new limits:
# ulimit -a | grep ‘open files’
Sample output:
open files (-n) 4096
Next you need to set the maximum number of open file descriptors by modifying squid proxy server configuration as per your Linux distribution.
Set max_filedesc under RHEL / Red Hat / CentOS / Fedora Linux
Stop the Squid as changes of this value isn’t respected by reconfigure command. This value should be changed only if there isn’t any active squid process.
# service squid stop
Open /etc/squid/squid.conf file
# vi /etc/squid/squid.conf
Append / add / modify max_filedesc directive:
max_filedesc 4096
Save and close the file. Start the squid proxy server:
# service squid start
Now again run squidclient command or check log files for messages:
# squidclient mgr:info
Set max_filedesc under Ubuntu / Debian Linux
First, stop squid proxy server, enter:
# /etc/init.d/squid stop
OR
$ sudo /etc/init.d/squid stop
Open /etc/default/squid to set max. number of filedescriptors to use. You can increase this on a busy
cache to a maximum of (currently) 4096 filedescriptors. Default is 1024.
$ sudo vi /etc/default/squid
OR
# vi /etc/default/squid
Now set SQUID_MAXFD:
SQUID_MAXFD=4096
Save and close the file. Start the squid proxy server:
$ sudo /etc/init.d/squid start
Verify that it is working with new limits:
# squidclient mgr:info | grep 'file descri'
See also:
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 11 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
This article is very useful to me . Thanks for the update
There is a typo were it says:
Stop the Squid as changes of this value isn’t respected by reconfigure command. …
# service squid start
The correct is:
# service squid stop
Thanks for the heads up.
how to configure proxy server?
Why you choose 4096? How can I calculate which number is good for me?
nice.. but not work in squid 3.0 stable xx
I have the error message in my log file:
“Your cache is running out of filedescriptors”
Solution is:
visible_hostname directive is missing
In my ubuntu 10.04, I should use RHEL / Red Hat / CentOS / Fedora way to take the effect
i have same problem Your cache is running out of file descripters
please tell solution
I have Changed my max_filedesc value to 51200 but whenever my machine starts, the value is reverting to 1024. However, when I do service squid restart, it picks the value specified in the /etc/squid/squid.conf file which is 51200. What might be causing this?
Thanks !!!