Re: 21 million inodes is causing severe pauses.

From: Robin Holt
Date: Mon Nov 15 2004 - 16:38:09 EST


On Mon, Nov 15, 2004 at 03:57:44PM -0500, linux-os wrote:
>
> Another temporary fix is to do:
>
> while true ; do sleep 5 ; sync ; done

I don't think we are looking at a flushing buffers to disk problem.
Even after doing a sync, I see 1.3M entries. Before the sync, I
was at 1.2M, so the count went up during the sync.

I am specifically noticing problems with the inode_list and not
buffers.

>
> ... or some 'C' code equivalent to force most of the stuff to
> disk before it takes so much time that it's obvious to the
> users.
>
> If you have soooo much data buffered, it is going to take a
> verrrry long time to write it to disk so. Just write it before
> you have so much buffered!

This is already being done. Nearly all of the inodes have
buffers that are expired and have been pushed to disk.

>
> NULL pointer problems shouldn't happen. However, you don't say
> if its a kernel crash problem or a user-mode problem. If it's
> a user-mode problem, the possibility exists that somebody isn't
> properly checking the return value of read/write, etc. If EIO
> (from attempting to modify an inode) was return in errno, you
> get -1 in the return value, it that's used as an index into the
> next bunch of data, you are dorked.

Kernel null pointer dereference in remove_inode_buffers().

Thanks,
Robin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/