On Wed, 7 Apr 2004, Francisco Lopez wrote:

> Tests are performed using Jmeter 2.0 from 3 different pc's (to avoid
> client stress).
> Each test run is a constant number of requests (3000) varying the number
> of simultaneous users (3, 6, 15, 30, 60, 150). The objects requests are
> chosen on each loop among a set of 10, with an average page size of 50k.

3000 * 50k = ~150 MB. This work set easily fits in memory.

> Overall, the analysis of the results are consistent with the expected
> behavior:
> a) Number of cpu's has a minimal impact in performance since main squid
> process is not multithreaded

Correct.

> b) Disk performance (SCSI vs. newest IDE controllers) has a minimal
> impact on performance

Correct, as you don't need any disks with such small workset.

> c) Filesystem type affects performance (ext3 w/journaling is slower than
> non journaling filesystems)

With no significant disk I/O there is not much impact of filesystem..

> d) Faster cpu's improves performance

Yes.

> BUT
> a) AUFS performs the same or slower than UFS. According to what I've
> been reading, AUFS should take advantage of multithreading for I/O, and
> in high loads this should improve i/o performance

See above.

> b) 100% TCP_MEM_HIT performs the same or slower than TCP_HIT

Then you are swapping. Make sure your system is not swapping. Assuming you 
have sufficient ram you may need to disable the swap partition.

> So my questions are:
> Why AUFS is slower than UFS ?

Because it sacrifies CPU time to utilise disk I/O seek time, which is not 
a bottleneck for you as you don't use the disks with such small 
workingset.

> Why memory hits are slower than disk hits ?

Because something is terribly wrong in your setup.

> The only theory I have right now is for the second question:
> OS filesystem cache performs better than squid memory cache

The Squid memory cache is some magnitude faster than the OS filesystem
cache, and considerably friendler on CPU usage as there is much less data
copying going on.



The issues with filesystems, aufs/ufs etc is mainly of importantce when 
you have a very large workingset of objects such as is the case in a 
general Internet proxy having the whole Internet as it's workingset..  
accelerators usually have a much smaller and manageable set of objects 
where the need of disk I/O is not as important.

Regards
Henrik

Reply via email to