> 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


Reply via email to