On 14.12.2011 22:53, Alan Cox wrote:
On Wed, Dec 14, 2011 at 12:22 PM, Jeremy Chadwick
<[email protected] <mailto:[email protected]>> wrote:

    On Wed, Dec 14, 2011 at 10:11:47PM +0400, Andrey Zonov wrote:
     > Hi Jeremy,
     >
     > This is not hardware problem, I've already checked that. I also ran
     > fsck today and got no errors.
     >
     > After some more exploration of how mongodb works, I found that then
     > listing hangs, one of mongodb thread is in "biowr" state for a long
     > time. It periodically calls msync(MS_SYNC) accordingly to ktrace
     > out.
     >
     > If I'll remove msync() calls from mongodb, how often data will be
     > sync by OS?
     >
     > --
     > Andrey Zonov
     >
     > On 14.12.2011 2:15, Jeremy Chadwick wrote:
     > >On Wed, Dec 14, 2011 at 01:11:19AM +0400, Andrey Zonov wrote:
     > >>
     > >>Have you any ideas what is going on? or how to catch the problem?
     > >
     > >Assuming this isn't a file on the root filesystem, try booting the
     > >machine in single-user mode and using "fsck -f" on the filesystem in
     > >question.
     > >
     > >Can you verify there's no problems with the disk this file lives
    on as
     > >well (smartctl -a /dev/disk)?  I'm doubting this is the problem, but
     > >thought I'd mention it.

    I have no real answer, I'm sorry.  msync(2) indicates it's effectively
    deprecated (see BUGS).  It looks like this is effectively a mmap-version
    of fsync(2).


Yikes, I just looked at this man page.  I'm afraid that the text in the
BUGS section is highly misleading.  The MS_INVALIDATE option should be
obsolete for the reason given there.  Under a strict reading of the
applicable standard, FreeBSD could implement this option as a NOP.
However, we treat it something like madvise(MADV_DONTNEED|FREE).  In
contrast, MS_SYNC is definitely not obsolete.

Alan

P.S. If someone wants to take a crack at fixing this man page, contact
me off list.


Please don't remove support for MS_INVALIDATE, this is only one way to purge disk cache. MADV_DONTNEED does nothing here in my experience.

--
Andrey Zonov
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[email protected]"

Reply via email to