[squid-users] Performance issue -- serving from cache
Brad House
brad at brad-house.com
Mon Feb 23 16:43:47 UTC 2026
On 2/23/26 11:39 AM, Alex Rousskov wrote:
> On 2026-02-23 11:13, Brad House wrote:
>> On 2/18/26 11:04 AM, Brad House wrote:
>>
>>> On 2/15/26 8:00 PM, Alex Rousskov wrote:
>>>
>>>> On 2026-02-14 14:45, Brad House wrote:
>>>>> I've got a squid deployment where serving from cache can be slower
>>>>> than an uncached download. I'm seeing speeds of around 50MB/s when
>>>>> serving from cache, which is much slower than anticipated. Infact,
>>>>> when hitting fast upstream servers, serving of a non-cached asset
>>>>> is faster (even though its still hitting squid to fetch it).
>>>>>
>>>>> I'm thinking there's got to be something wrong with my squid
>>>>> configuration, I'm currently running on Rocky Linux 10 with Squid
>>>>> 6.10-6.
>>>>>
>>>>> The VM I'm using currently has 4 cores, 16G RAM and 100G of usable
>>>>> space. I used fio to measure disk performance and I got
>>>>>
>>>>> * Random Write: 3629MiB/s (1MB block), 33.2k (4k block) IOPS
>>>>> * Random Read: 8391MiB/s (1MB block), 43.5k (4k block) IOPS
>>>>
>>>>
>>>> What speed to you get when Squid serves the object from the memory
>>>> cache? Do not configure a disk cache for this test to make sure
>>>> that Squid is not reading from disk...
>>>>
>>>> I cannot help with AUFS cache_dirs, but _if_ AUFS code uses 4KByte
>>>> I/O blocks, then 50MByte/s you are measuring is equivalent to 12K
>>>> IOPS which is arguably not that bad for that long-neglected AUFS
>>>> code (compared to "raw" 44K IOPS performance you measured with fio)!
>>>>
>>>> Please note that I am not trying to imply that rock cache_dir with
>>>> a large slot-size setting would work faster than AUFS. And even if
>>>> properly configured rock does work faster than AUFS, I would be
>>>> really surprised if Squid can approach Traffic Server performance!
>>>> The two projects had vastly different focus and resources.
>>>>
>>>>
>>>> HTH,
>>>>
>>>> Alex.
>>>>
>>>
>>> I'll need to wait until the weekend to give the memory-only cache a
>>> try. Do you have any suggested Rock settings I should try while I'm
>>> testing things? I'm ok wasting disk space on smaller items if it
>>> means it can serve from cache faster in general.
>
> Unfortunately, I cannot efficiently guide you through these
> optimizations right now, but, FWIW, I wrote a few optimization notes
> for rock some time ago:
> https://wiki.squid-cache.org/Features/RockStore#performance-tuning
>
> I am not implying that the above notes are applicable to your case.
>
>
>> I get 350MB/s serving from memory cache which is much more reasonable.
>
> Great!
>
>
>> Also, I tried Rock again, and inspecting the logs further it appears
>> it isn't caching at all and always serving direct. I'm getting these
>> errors in the log:
>>
>> 2026/02/23 10:58:35 kid1| ERROR: /var/spool/squid/rock exception:
>> check failed: pending->writeRequest->len <= Ipc::Mem::PageSize()
>> exception location: IpcIoFile.cc(381) push
>> current master transaction: master60
>
> This ERROR looks like a sign of a Squid bug. I have not investigated
> it, but if you are setting rock slot-size to more than 32KB, please
> try to lower that value to 32768. Testing Squid performance while
> Squid emits those ERRORs is probably meaningless.
>
>
>> I guess I could bump the memory up in the VM to something like 64G so
>> the hotter items can be served faster an only needs to go to disk
>> either after restart or when an item is no longer in memory cache.
>
> If your workload hot subset fits into that larger memory cache, it may
> be the best first optimization step. There is also memory_cache_mode,
> but I cannot predict whether changing that would help or hurt in your
> use case.
>
>
> Good luck,
>
> Alex.
>
Ok, yeah, I had set the rock slot-size to 64K, so I'm guessing that's
the issue.
I'm just going to go the memory route for now ...
Thanks.
-Brad
More information about the squid-users
mailing list