≡ Menu

Squid Proxy WARNING! Your cache is running out of filedescriptors error and solution

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:

  1. FreeBSD Squid Proxy Caching Server Increase File Descriptors Limits
Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:



{ 11 comments… add one }
  • Balaviswanathan October 12, 2008, 6:00 pm

    This article is very useful to me . Thanks for the update

  • Julio April 1, 2009, 6:55 pm

    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

  • nixCraft April 1, 2009, 7:15 pm

    Thanks for the heads up.

  • rafee June 20, 2009, 4:21 pm

    how to configure proxy server?

  • hungnv December 18, 2009, 10:23 am

    Why you choose 4096? How can I calculate which number is good for me?

  • rafha March 6, 2012, 5:40 pm

    nice.. but not work in squid 3.0 stable xx

  • Zaman October 4, 2013, 9:44 am

    I have the error message in my log file:
    “Your cache is running out of filedescriptors”
    Solution is:
    visible_hostname directive is missing

  • okwap March 19, 2014, 6:49 am

    In my ubuntu 10.04, I should use RHEL / Red Hat / CentOS / Fedora way to take the effect

  • khandu July 3, 2014, 6:36 am

    i have same problem Your cache is running out of file descripters

    please tell solution

  • Greg January 11, 2016, 12:43 pm

    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?

  • HellofromRussia February 13, 2016, 8:32 pm

    Thanks !!!

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , , , , , , , , , , , , , , , , , ,