Suddenly slow lstat syscalls on CURRENT from Juli
Alexander Best
arundel at freebsd.org
Sat Jan 1 16:16:57 UTC 2011
On Sat Jan 1 11, Beat Gätzi wrote:
> On 01.01.2011 16:10, Alexander Best wrote:
> > On Sat Jan 1 11, Beat Gätzi wrote:
> >> Hi,
> >>
> >> Since a couple of days commands like ls(1) are very slow on one of my
> >> tinderboxes. Checking with ktrace/kdump I see that the lstat syscall
> >> takes about one second:
> >>
> >> 70559 ls 0.004644 CALL lstat(0x284472f8,0x28447298)
> >> 70559 ls 0.004651 NAMI "Mk"
> >> 70559 ls 0.004664 STRU struct stat {... }
> >> 70559 ls 0.004672 RET lstat 0
> >> 70559 ls 0.004688 CALL lstat(0x2844a1b8,0x2844a158)
> >> 70559 ls 0.004696 NAMI "README,v"
> >> 70559 ls 1.004245 STRU struct stat {...}
> >> 70559 ls 1.004263 RET lstat 0
> >> 70559 ls 1.004277 CALL lstat(0x2844a2b8,0x2844a258)
> >> 70559 ls 1.004286 NAMI ".cvsignore,v"
> >> 70559 ls 2.004282 STRU struct stat {...}
> >> 70559 ls 2.004302 RET lstat 0
> >> 70559 ls 2.004316 CALL lstat(0x2844a3b8,0x2844a358)
> >> 70559 ls 2.004325 NAMI "CHANGES,v"
> >> 70559 ls 3.004275 STRU struct stat {...}
> >> 70559 ls 3.004296 RET lstat 0
> >> 70559 ls 3.004310 CALL lstat(0x2844a4b8,0x2844a458)
> >> 70559 ls 3.004318 NAMI "COPYRIGHT,v"
> >> 70559 ls 4.004300 STRU struct stat {...}
> >> 70559 ls 4.004318 RET lstat 0
> >>
> >> When i immediately re-execute the command in the same directory it looks
> >> normal:
> >>
> >> 78007 ls 0.004665 CALL lstat(0x284472f8,0x28447298)
> >> 78007 ls 0.004673 NAMI "Mk"
> >> 78007 ls 0.004686 STRU struct stat {...}
> >> 78007 ls 0.004693 RET lstat 0
> >> 78007 ls 0.004708 CALL lstat(0x2844a1b8,0x2844a158)
> >> 78007 ls 0.004715 NAMI "README,v"
> >> 78007 ls 0.004728 STRU struct stat {...}
> >> 78007 ls 0.004735 RET lstat 0
> >> 78007 ls 0.004742 CALL lstat(0x2844a2b8,0x2844a258)
> >> 78007 ls 0.004749 NAMI ".cvsignore,v"
> >> 78007 ls 0.004761 STRU struct stat {...}
> >> 78007 ls 0.004768 RET lstat 0
> >> 78007 ls 0.004775 CALL lstat(0x2844a3b8,0x2844a358)
> >> 78007 ls 0.004782 NAMI "CHANGES,v"
> >> 78007 ls 0.004795 STRU struct stat {...}
> >> 78007 ls 0.004802 RET lstat 0
> >> 78007 ls 0.004809 CALL lstat(0x2844a4b8,0x2844a458)
> >> 78007 ls 0.004817 NAMI "COPYRIGHT,v"
> >> 78007 ls 0.004828 STRU struct stat {...}
> >> 78007 ls 0.004835 RET lstat 0
> >>
> >> System is a HP DL360 G3 with a Compaq Smart Array 5i controller. There
> >> is no evidence of a RAID controller or hard disk problem in the system
> >> logs. Also writing to a file and reading from a file looks normal.
> >> The running kernel is a GENERIC kernel from Juli without debugging options:
> >>
> >> # uname -a
> >> FreeBSD tinderbox.chruetertee.ch 9.0-CURRENT FreeBSD 9.0-CURRENT #5
> >> r209980: Tue Jul 13 11:25:50 CEST 2010
> >> root at tinderbox.chruetertee.ch:/usr/obj/usr/home/beat/dev/src/head/sys/BEASTIE
> >> i386
> >
> > no problems here.
>
> I haven't had this problem the first ~166 days since I rebooted the box
> the last time. Then the problem suddenly occur in all directories on all
> partitions. The box was pretty much under load all the time as it builds
> packages almost 7x24. I forgot to say the used filesystem is UFS.
>
> # diskinfo -ct da0
> da0
> 512 # sectorsize
> 299992412160 # mediasize in bytes (279G)
> 585922680 # mediasize in sectors
> 0 # stripesize
> 0 # stripeoffset
> 36472 # Cylinders according to firmware.
> 255 # Heads according to firmware.
> 63 # Sectors according to firmware.
> # Disk ident.
>
> I/O command overhead:
> time to read 10MB block 0.333161 sec = 0.016 msec/sector
> time to read 20480 sectors 3.392359 sec = 0.166 msec/sector
> calculated command overhead = 0.149 msec/sector
>
> Seek times:
> Full stroke: 250 iter in 1.202862 sec = 4.811 msec
> Half stroke: 250 iter in 1.120656 sec = 4.483 msec
> Quarter stroke: 500 iter in 2.109077 sec = 4.218 msec
> Short forward: 400 iter in 1.892342 sec = 4.731 msec
> Short backward: 400 iter in 1.399378 sec = 3.498 msec
> Seq outer: 2048 iter in 0.399352 sec = 0.195 msec
> Seq inner: 2048 iter in 0.385460 sec = 0.188 msec
> Transfer rates:
> outside: 102400 kbytes in 2.325967 sec = 44025 kbytes/sec
> middle: 102400 kbytes in 2.157681 sec = 47458 kbytes/sec
> inside: 102400 kbytes in 2.717089 sec = 37687 kbytes/sec
>
> I also observed that the cpu output of vmstat is a little bit confusing
> on this system:
>
> # vmstat
> procs memory page disk faults cpu
> r b w avm fre flt re pi po fr sr da0 in sy cs us sy id
> 0 0 0 1663M 1120M 117 0 1 0 120 21 0 172 27 245 -29 -10 139
yeah that bug really needs to be fixed. it occurs on almost all systems with
high load and high uptime (> 100 days).
see http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/30360
cheers.
alex
>
> Thanks,
> Beat
--
a13x
More information about the freebsd-current
mailing list