Hi Vladimir,


"Vladimir V. Saveliev" wrote:
 
> At the end quotacheck seems to read quota.user by 32 bytes
> records.
> Are lseeks calls interleaved with read calls?

Yes that's right.

> what are the offsets those lseeks are called with?

32 bytes.

lseek(4, 10202016, SEEK_SET)            = 10202016
read(4, "", 32)                         = 0

I'am currently right now re-testing the quota building procedure with
the new 2.4.5 kernel on a 18Go partition (i had to drop down from 28Go
to 17Go for my tests)

In fact after stat'ing each file , quotacheck seems to build the
quota.user file 32 bytes by 32 bytes:

lseek(4, 30348256, SEEK_SET)            = 30348256
read(4, "", 32)                         = 0
lseek(4, 30348256, SEEK_SET)            = 30348256
write(4, "\0\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0"...,
32) = 32

I just don't get why it takes so long.

Right now the quota.user file is growing at about 18 Ko/s :-(

Wait a sec.. 

Ok the quotacheck process has just ended cleanly :o) It took about 35
minutes to build the quota for a 17Go partition with roughly 9500 user
accounts.

But IMHO, it's still quite slow.

Any hint to make this quota building process faster is gladly welcome
:o)

Thanks,

Philippe

Reply via email to