Hiya,
An interesting thing to note is that Squid 1.2 with async-io enabled
actually has a parabolic response time curve. This means it actually runs
a little slow under very light load because async-io polls the async threads
every time the poll/select() call times out or a FD has some network activity
on it. Under low loads it can actualy perform a fair bit worse than without
async. As the load picks up, the threads start to get polled more often and
throughput starts to increase. We've retrievals run up to 30 times faster
on a loaded 1.2async box, than on an unloaded 1.2async box. Past full CPU
utilisation we see a fairly linear slowdown happening.
I have a C program that analyses and prints out a speed ranking for each
of our caches so we can clearly see when things slow down. The speed
rank is roughly equivalent to the KB/sec for either a cache miss or cache
hit. On one of our heavily loaded caches we see:
Avg Hit Rank for 10000 - 20000 total hourly requests: 26.69
Avg Miss Rank for 10000 - 20000 total hourly requests: 2.93
Avg Hit Rank for 70000 - 80000 total hourly requests: 38.91
Avg Miss Rank for 70000 - 80000 total hourly requests: 2.97
Avg Hit Rank for 140000 - 150000 total hourly requests: 24.12
Avg Miss Rank for 140000 - 150000 total hourly requests: 2.70
Avg Hit Rank for 200000 - 210000 total hourly requests: 15.94
Avg Miss Rank for 200000 - 210000 total hourly requests: 2.13
This clearly demonstrates the slowness under low load, and a linear slowdown
as the load increases. Miss Ranks are more network bound than CPU bound and
so tend to be less affected by overall cache load than the Hit Rank.
Cheers,
Stew.
-- Stewart Forster (Snr. Development Engineer) connect.com.au pty ltd, Level 9, 114 Albert Rd, Sth Melbourne, VIC 3205, Aust. Email: slf@connect.com.au Phone: +61 3 9251-3684 Fax: +61 3 9251-3666Received on Thu May 28 1998 - 16:36:51 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:40:29 MST