xfs
[Top] [All Lists]

Re: Incredibly slow rebuild of small access_db on xfs partition

To: Keith Owens <kaos@xxxxxxxxxxxxxxxxx>
Subject: Re: Incredibly slow rebuild of small access_db on xfs partition
From: Jarek Luberek <jarek@xxxxxxxxxx>
Date: Sat, 5 May 2001 22:14:40 +0200
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <17466.989071943@xxxxxxxxxxxx>
References: <17466.989071943@xxxxxxxxxxxx>
Sender: owner-linux-xfs@xxxxxxxxxxx
On Saturday 05 May 2001 16:12, you wrote:
> On Sat, 5 May 2001 15:57:01 +0200,
>
> Jarek Luberek <jarek@xxxxxxxxxx> wrote:
> >makemap hash -f /etc/mail/access.db < /etc/mail/access
> >takes almost two minutes to complete. The access_db has only
>
> strace -c makemap hash -f /etc/mail/access.db < /etc/mail/access
>
> will give a summary of system calls and speed, as a first step in
> working out where the delay is.
After wiping the eggs from my face I had a look at the strace
both from the good run and the bad.

Where the good does a few things like
----------
open("/etc/mail/access.db", O_RDWR|O_CREAT|O_TRUNC, 0644) = 5
shmat(5, 0x242, 0x2)                    = ?
stat64("/etc/mail/access.db", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
brk(0x805b000)                          = 0x805b000
fstat64(5, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
lseek(5, 0, SEEK_SET)                   = 0
write(5, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20\0\0\0\0\f\0\0\1\0\0\0"..., 260) = 
260
lseek(5, 12288, SEEK_SET)               = 12288
-----------

execution on the xfs partition is full of,

-------
lseek(5, 786432, SEEK_SET)              = 786432
write(5, "\0\0\372\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536)
= 65536
lseek(5, 131072, SEEK_SET)              = 131072
write(5, "\2\0\1\20\0\0\366\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536) 
= 65536
lseek(5, 524288, SEEK_SET)              = 524288
write(5, "\4\0\367\377\3\0\3\20\362\377\344\377\362\377\0\0\0\0\0"..., 65536) 
= 65536
lseek(5, 655360, SEEK_SET)              = 655360
write(5, "\0\0\372\377\0\0\366\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536)
= 65536
--------


close to 20000 lines of it. I have to go back and figure out why my access.db
got corrupt. 
The difference between the dumps seems to be:

lseek(5, 0, SEEK_SET)                   = 0
write(5, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20\0\0\0\0\f\0\0\1\0\0\0"..., 260) = 
260
lseek(5, 12288, SEEK_SET)               = 12288

in the good dump and

lseek(5, 0, SEEK_SET)                   = 0
write(5, "\0\6\25a\0\0\0\2\0\0\4\322\0\1\0\0\0\0\0\20\0\0\1\0\0\0"..., 260) = 
260
lseek(5, 196608, SEEK_SET)              = 196608


Which b.t.w. reminds me that /etc/hosts was full of NULL yesterday too. May 
be the same problem. I'll keep looking for clues.

Greetings,
Jarek


<Prev in Thread] Current Thread [Next in Thread>