Hi folks,
I'm using Squid 2.4-STABLE3 on Linux 2.4.X, and it appears that the only
way I can convince Squid to start with more than 1024 file descriptors
(even if bash's ulimit -n reports, for example, 30000 at compilation
time and runtime -- I'm dead certain that the OS and the shell limits
are set high enough) is to bruce-force set the number in main.c like so:
*** main.c Tue Dec 25 07:38:51 2001
--- main-new.c Wed Jan 2 21:26:41 2002
***************
*** 575,580 ****
--- 575,581 ----
debug_log = stderr;
- if (FD_SETSIZE < Squid_MaxFD)
-
Squid_MaxFD = FD_SETSIZE;
+ Squid_MaxFD = 30000;
#if defined(_SQUID_MSWIN_) || defined(_SQUID_CYGWIN_)
if ((WIN32_init_err = WIN32_Subsystem_Init()))
Note that this diff is against CVS HEAD, but the results are the same
with 2.4-STABLE3. This works fine, or at least appears to under very
heavy load.
I don't really want to do this to main.c (for distribution purposes), so
I've tried instead to force the define of src/squid.h's
CHANGE_FD_SETSIZE to 1 (despite the dire warning as regards Linux)
before a compilation but it seems to have no effect. After compiled
this way (and running in a shell that has 30000 max open fds) Squid
still starts with 1024 FDs available according to cache.log. Note that
I *do* see configure report the max number of open filedescriptors as
30000 (as opposed to the Linux default of 1024). It also reports
FD_SETSIZE as 1024.
Has anyone else encountered this problem?
- C
Received on Thu Jan 03 2002 - 09:34:04 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:05:37 MST