[squid-users] Information for AIX and Squid

From: <BLATS@dont-contact.us>
Date: Thu, 7 Jun 2001 18:40:03 +0200

I use Squid 2.4 Stable 1 AIX 4.3.3 2GB RAM 2x18Gb disks PowerPC 604 375 MHz
since many days without problem

Some info to know

Compilation :

export CFLAGS="-Wl,-bmaxdata:0x40000000 -D_LARGE_FILES"

in -Wl you must read -White legacy (info following provided par Matthias
FAQ March 2001 "Squid on AIX") If you compile squid without this option,
squid restart automatically each time the SZ and RSS size are over 256 MB
(you reach 256MB if you have default cache_mem and 10 GB of cache)

-D_LARGE_FILES to read file (fopen) > 2Gb if your log file is over 2 GB

configure --enable-storeio=diskd,ufs,null --enable-underscores

squid.conf :

cache_mem 64 MB
cache_swap_low 95
cache_swap_high 100
cache_dir diskd /cache1 16000 32 256
cache_dir diskd /cache2 16000 32 256
cache_store_log none
log_icp_queries off

my SZ and RSS size are about 542 MB
cache is full
5 min average of counters : 105 http requests/sec

Message from Matthias :

Hi,

I am running squid on AIX. I had big problems with squid crashing very
often. Scanning this lists archive i found posts of others with the same
problem, however no solution. Squid ran fine until its memorysize
reached 256 MB of virtual memory. Then it crashed with obscure error
messages.
It seems i have now solved the problem and a stable squid (one month
without a crash).

So here i share my findings (for the FAQ?).

I am using AIX 4.3.3 and squid 2.3Stable4, compiled with gcc2.95.2.

On AIX ulimits are configured in file /etc/security/limits.
Squid wants lots of memory and filedescriptors, so i used
data=-1 and nofiles=32768.

The MAIN problem on AIX for squid is the fact, that AIX places some
additional ulimits into the binary file during linking! See the ld
manpage for more details. The default ulimit for datasegment size as
specified in the binary is 256 MB.
This can be changed by the following commandline switch to gcc during
linking: -Wl,-bmaxdata:0x40000000. The number 0x40000000 is the
limit in bytes, specified in HEX. So this example means 1GB of
datasegment size.
Additionally i used the gcc compiletime switch -mcpu=common to
be able to copy binaries between different AIX systems.

Hope this is useful.

Matthias
Received on Thu Jun 07 2001 - 10:40:49 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:00:33 MST