Squid_ The Definitive Guide - Duane Wessels [216]
* * *
[3] On FreeBSD, softupdates aren't a mount option, but must be set with the tunefs command.
OpenBSD
The results in this section are from OpenBSD Version 3.3 (released May 1, 2003). I built a kernel with the following notable configuration options:
option MSGMNB=8192
option MSGMNI=40
option MSGSEG=512
option MSGSSZ=64
option MSGTQL=2048
option SHMSEG=16
option SHMMNI=32
option SHMMAX=2048
option SHMALL=4096
option NMBCLUSTERS=32768
option MAXFILES=8192
Table D-3 and Figure D-3 summarize the OpenBSD results. The choices for OpenBSD are similar to those for FreeBSD. Unfortunately, however, coss doesn't run on OpenBSD, which lacks the aio_read( ) and aio_write( ) functions.
Table D-3. OpenBSD benchmarking results
Storage scheme
Filesystem
Mount options
Throughput
Response time
Hit ratio
diskd(1)
UFS
async, noatime, softupdate
91.1
1.45
56.3
diskd(2)
UFS
63.7
1.44
56.2
ufs(1)
UFS
softupdate
27.6
1.51
56.3
ufs(2)
UFS
noatime
25.1
1.52
56.3
ufs(3)
UFS
22.7
1.52
56.1
ufs(4)
UFS
async
22.1
1.51
56.6
Figure D-3. OpenBSD filesystem benchmarking traces
In general, the OpenBSD results are slightly worse than FreeBSD. This isn't too surprising, given that the OpenBSD project emphasizes security and perhaps spends less time on filesystem performance.
One odd result is that using the async option (alone) caused a slight decrease in performance for the ufs storage scheme.
NetBSD
These results come from NetBSD Version 1.6.1 (released April 21, 2003). Table D-4 and Figure D-4 summarize the NetBSD results. NetBSD actually performs almost the same as OpenBSD. The best configuration yields about 90 transactions per second. Unfortunately, NetBSD doesn't support coss or aufs. I built a custom kernel with these options:
options NMBCLUSTERS=32768
options MAXFILES=8192
options MSGSSZ=64
options MSGSEG=512
options MSGMNB=8192
options MSGMNI=40
options MSGTQL=2048
Table D-4. NetBSD benchmarking results
Storage scheme
Filesystem
Mount options
Throughput
Response time
Hit ratio
diskd(1)
UFS
softupdate,noatime,async
90.3
1.49
57.2
diskd(2)
UFS
softupdate
73.5
1.51
55.8
diskd(3)
UFS
60.1
1.48
55.9
ufs(1)
UFS
softupdate,noatime,async
34.9
1.51
56.2
ufs(2)
UFS
softupdate
31.7
1.52
55.5
ufs(3)
UFS
23.6
1.53
55.4
Figure D-4. NetBSD filesystem benchmarking traces
Solaris
These results come from Solaris Version 8 for Intel (released February 2002). Solaris 9 was available when I started these tests, but Sun no longer makes it freely available. I tweaked the kernel by adding these lines to /etc/system:
set rlim_fd_max = 8192
set msgsys:msginfo_msgmax=8192
set msgsys:msginfo_msgmnb=8192
set msgsys:msginfo_msgmni=40
set msgsys:msginfo_msgssz=64
set msgsys:msginfo_msgtql=2048
set shmsys:shminfo_shmmax=2097152
set shmsys:shminfo_shmmni=32
set shmsys:shminfo_shmseg=16
Table D-5 and Figure D-5 summarize the Solaris results. This is the only other operating system, in addition to Linux, in which the aufs storage scheme works well. Interestingly, both aufs and diskd have about the same performance on Solaris, although the actual numbers are much lower than on Linux.
Table D-5. Solaris benchmarking results
Storage scheme
Filesystem
Mount options
Throughput
Response time
Hit ratio
diskd(1)
UFS
noatime
56.3
1.53
55.7
aufs(1)
UFS
noatime
53.6
1.49
56.6
diskd(2)
UFS
37.9
1.53
55.5
aufs(2)
UFS
37.4
1.49
56.4
coss
32.4
1.47
54.6
ufs(1)
UFS
noatime
24.0
1.53
55.6
ufs(2)
UFS
19.0
1.50
56.3
Figure D-5. Solaris filesystem benchmarking traces
Solaris also supports coss, but at nowhere near the rates for Linux and FreeBSD. For some unknown reason, coss on Solaris is limited to 32 transactions per second.
Number of Disk Spindles
In this section, I compare Squid's performance for different number of disk drives (spindles). These tests are from the Linux system with the aufs storage scheme and ext2fs filesystems.