delivery size : 10~500K (avg 300KB) file total file size : 1TB Request per sec - Minimum : 3000 Requests / sec Average : 9000 requests / sec Peak : 36000 Requests / sec Inactconn : 150,000 / Average enforce object ttl : 1Day (NO REFRESH/MODIFIED ignore) daily cache average area size (following ttl time) : most 8.2GB peak transmit rate : 400MBps Memory : 16GB
Additional Information Storage : 3ware sata raid5 capacity : 4TB Transferating Speed : READ 190MB/s / ( actually most 30MB/s left bandwidth for handle cache server, we have a lot of writing, and reading for another service.)
Current Configuration Using Squid only first level caching on memory no secondary level caching
Problem : never cache again when the object has been expired. 1day -> cached object -> 1days over(2days) -> cached object has been expire also purge memory -> 2Days after -> the object never cache again -> user request this -> direct pass throught to origin server
We got a serveral I/O hazard when the expired object is issued in our site by users.
Tried aufs secondary level caching with async i/o , but the result is very poor. if you have setting like that, you cannot make a traffic over 250Mbps
I'll trying to install squid version 3. Actually there is no solutions, except zeus web server. (i saw the report which zeus performance results, it is good for this case, but still have memory caching problems for seperate process sharing)
Tried Solutions varnishd - it supporting useful configuration, the vcl have much feather than squid's. but we got a serveral memory bugs. it isn't perfect yet. do not use to production. and there is no cache replacement logics such like as LRU, Greedy dual size freqs. this is very important logic when you operating over memory only system.
lighttpd - too very slow. that is not optimized for cache usage