Well IMO the cleanest solution would be to convince the mlocate devels to introduce an /etc/updatedb.d/ directory so every package could drop their snippet there. Since that might be a rather long shot I agree that it is a a job for general management
In cfengine it would just read something like:
...
edit_line =>
regex_replace("(^\s*PRUNEFS=\")(?!ceph)(.*$)","$(match.1)ceph $(match.2)");
...
With a proper self containing bundle once called from postinst that would
survive any
upgrade of mlocate with minimal impact.
Regards,
Bernhard
> On Feb 18, 2014, at 7:20 PM, Dan van der Ster <[email protected]>
> wrote:
>
> Hi,
>
> On Tue, Feb 18, 2014 at 6:52 PM, Gaudenz Steinlin <[email protected]> wrote:
>>
>> Hi
>>
>> Sage Weil <[email protected]> writes:
>>
>>> Dan at CERN noticed that his performance was tanking because updatedb was
>>> running against /var/lib/ceph. updatedb has a PRUNE line in
>>> /etc/updatedb.conf that we should presumably be adding ourselves to. One
>>> user pointed out a package that uses sed to rewrite this line in the init
>>> script on start.
>>>
>>> I have two questions:
>>>
>>> - is there no better way than sed to add ourselves to this list?
>>> - should we do it in the init script, or postinst, or both?
>>>
>>> Presumably this is a problem others have solved with other packages.
>>
>> At least for Debian neither solution is appropriate. Changing other
>> packages conffiles in postinst scripts is forbidden by policy. There is
>> also no way to preserve this reliably over upgrades without user
>> interaction. I'm not sure if there is an explicit policy for init
>> scripts, but this seems equally wrong. Also it's unclear how one would
>> handle the case were an administrator does NOT want to exclude this
>> directory.
>>
>> The only solution I see if you really want to completely exclude the
>> directory is to convince the mlocate maintainers to either add the
>> directory to the default configuration or to add something like an
>> /etc/updatedb.d directory where packages can drop configuration file
>> snippets. But the latter seems like overkill to me.
>>
>> The real question to me is why an updatedb run can drastically impact
>> ceph performance. At least in Debian updatedb is run with ionice
>> -c3 in the "Idle" scheduling class. According to the man page this
>> means: "A program running with idle I/O priority will only get disk time
>> when no other program has asked for disk I/O for a defined grace period.
>> The impact of an idle I/O process on normal system activity should be
>> zero. This scheduling class does not take a priority argument.
>> Presently, this scheduling class is permitted for an ordinary user
>> (since kernel 2.6.25)." So it should not have any negative effect.
>>
>> Maybe CERN (or the distribution they use) should also run updatedb under
>> ionice.
>
> updatedb _is_ run under ionice on our systems (RHEL), but IO
> scheduling classes are only implemented by the cfq scheduler.
> We use deadline, which is recommended for an enterprise disk server,
> and indeed measured more stable IO latencies with deadline than with
> cfq. And when you run updatedb on a deadline scheduled drive, there
> are so many reads queued up that writes can be starved for many 10s of
> seconds.
>
> In our case, we've already added /var/lib/ceph to the PRUNEPATHS via
> their puppet configuration. Though an upstream solution is probably a
> good idea since I would assume that most ceph deployments use deadline
> and this would hit most of them eventually once they have enough
> files. In addition, as someone else mentioned, you'd better add ceph
> to the pruned fs types as well, just like /afs is pruned at the
> moment, lest every client spend all day stat'ing their big cephfs
> namespace.
>
> Cheers, Dan
>
> -- Dan van der Ster || Data & Storage Services || CERN IT Department --
>
>>
>> Gaudenz
>>
>> --
>> Ever tried. Ever failed. No matter.
>> Try again. Fail again. Fail better.
>> ~ Samuel Beckett ~
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
signature.asc
Description: Message signed with OpenPGP using GPGMail
