> Hardware (only running Squid): > > # cat /proc/cpuinfo | egrep -i xeon | uniq > model name : Intel(R) Xeon(R) CPU E5405 @ 2.00GHz > # cat /proc/cpuinfo | egrep -i xeon | wc -l > 8 > > # free -m > total used free shared buffers cached > Mem: 32148 2238 29910 0 244 823 > -/+ buffers/cache: 1169 30978 > Swap: 15264 0 15264 > > # lsscsi > [0:0:0:0] disk MAXTOR ATLAS15K2_73WLS JNZH /dev/sda > [0:0:1:0] disk SEAGATE ST3300655LW 0003 /dev/sdb > [0:0:4:0] disk SEAGATE ST3146807LC 0007 /dev/sdc > [3:0:0:0] disk SEAGATE ST3300655SS 0004 /dev/sdd > [3:0:1:0] disk SEAGATE ST3300655SS 0004 /dev/sde > > # fdisk -l | grep GB > Disk /dev/sda: 73.5 GB, 73557090304 bytes > Disk /dev/sdb: 300.0 GB, 300000000000 bytes > Disk /dev/sdc: 146.8 GB, 146815737856 bytes > Disk /dev/sdd: 300.0 GB, 300000000000 bytes > Disk /dev/sde: 300.0 GB, 300000000000 bytes > > # lspci | grep -Ei 'sas|scsi' > 04:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1064ET > PCI-Express Fusion-MPT SAS (rev 04) > 06:02.0 SCSI storage controller: Adaptec ASC-29320LP U320 (rev 03) > > > # uname -srm > Linux 2.6.27.7 x86_64 > > Squid: > > # squid -v > Squid Cache: Version 3.0.STABLE13 > configure options: '--bindir=/usr/bin' '--sbindir=/usr/sbin' > '--libexecdir=/usr/libexec' '--datadir=/usr/share/squid' > '--sysconfdir=/etc/squid' '--libdir=/usr/lib' '--includedir=/usr/include' > '--mandir=/usr/man' '--localstatedir=/var' '--enable-async-io' > '--with-pthreads' '--enable-xmalloc-statistics' '--enable-storeio=aufs' > '--enable-removal-policies' '--enable-err-languages=English Portuguese' > '--enable-linux-netfilter' '--disable-wccp' '--disable-wccpv2' > '--disable-ident-lookups' '--enable-snmp' '--enable-kill-parent-hack' > '--enable-delay-pools' '--enable-follow-x-forwarded-for' > '--with-large-files' '--with-filedescriptors=65536' 'CFLAGS= > -march=native' > 'CXXFLAGS= -march=native' > > # cat /etc/squid/squid.conf | grep -E cache_'mem|dir'\ > cache_mem 8192 MB > cache_dir aufs /var/cache/proxy/cache1 102400 16 256 > cache_dir aufs /var/cache/proxy/cache2 102400 16 256 > cache_dir aufs /var/cache/proxy/cache3 102400 16 256 > cache_dir aufs /var/cache/proxy/cache4 102400 16 256 > cache_dir aufs /var/cache/proxy/cache5 102400 16 256 > cache_dir aufs /var/cache/proxy/cache6 102400 16 256 > cache_dir aufs /var/cache/proxy/cache7 102400 16 256 > cache_dir aufs /var/cache/proxy/cache8 102400 16 256 > > > # cat /etc/fstab | grep proxy > /dev/vg00/cache /var/cache/proxy ext3 defaults 1 2 > > > Yes, I know, LVM, ext3 and aufs are bad ideas... I'm particularly > interested in a better cache_dir configuration (maximizing disk's usage) > and the correct cache_mem parameter to this hardware. (and others > possible/useful tips)
You have 5 physical disks by the looks of it. Best usage of those is to split the cache_dir one per disk (sharing a disk leads to seek clashes). I'm not to up on the L1/L2 efficiencies, but "64 256" or higher L1 seems to be better for larger dir sizes. For a quad or higher CPU machine, you may do well to have multiple Squid running (one per 2 CPUs or so). One squid doing the caching on the 300GB drives and one on the smaller ~100 GB drives (to get around a small bug where mismatched AUFS dirs cause starvation in small dir), peered together with no-proxy option to share info without duplicating cache. Absolutely minimal swapping of memory. Amos