Re: Using O_DIRECT in I/O to cache

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 25 Aug 2010 17:16:30 +1200

Chris Worley wrote:
> On Thu, Aug 5, 2010 at 11:27 AM, Chris Worley <worleys_at_gmail.com> wrote:
>> I have a customer using Squid and
>> want to be able to help optimize Squid for very low latency drives. I
>> want to experiment with bypassing the Linux scheduler and open all
>> files in the cache with O_DIRECT, but in looking at the source code,
>> there are hundreds of "opens", and nothing clearly directed at the fs
>> cache (to the first-time observer; an idiot, or however you see me),
>> and was hoping somebody would point me to which "open" calls I should
>> focus on. There also seems to be some AIO functionality too... any
>> pointers to how that's setup to work would be a bonus.
>
> Here's my thinking:
>
> build and configure squid for aufs, but first modify all instances of
> "O_BINARY" to "O_BINARY | O_DIRECT" in the files in the src/fs/aufs
> directory.
>
> Are there chances for success?
>
> Thanks,
>
> Chris

Hi Chris,
   How did this go so far? As I read the documentation you are right.
It *should* go faster.

Adrian found a problem in Squids use of AIO write() a while back which
he explained as causing it to block instead of being async like its
supposed to. This shows up on the BSD family of OS using AUFS. Linux
seems to work okay, possibly because of the scheduler layer.
  A fix for that problem is greatly desirable. If your work does
anything to help with that it would be welcome.

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE9 or 3.1.7
   Beta testers wanted for 3.2.0.1
Received on Wed Aug 25 2010 - 05:16:36 MDT

This archive was generated by hypermail 2.2.0 : Wed Aug 25 2010 - 12:00:05 MDT