Bob Friesenhahn wrote:
On Sat, 4 Jul 2009, Phil Harman wrote:

However, it seems that memory mapping is not responsible for the problem I am seeing here. Memory mapping may make the problem seem worse, but it is clearly not the cause.

mmap(2) is what brings ZFS files into the page cache. I think you've shown us that once you've copied files with cp(1) - which does use mmap(2) - that anything that uses read(2) on the same files is impacted.

The problem is observed with cpio, which does not use mmap. This is immediately after a reboot or unmount/mount of the filesystem.

Sorry, I didn't get to your other post ...

Ok, here is the scoop on the dire Solaris 10 (Generic_141415-03) performance bug on my Sun Ultra 40-M2 attached to a StorageTek 2540 with latest firmware. I rebooted the system used cpio to send the input files to /dev/null, and then immediately used cpio a second time to send the input files to /dev/null. Note that the amount of file data (243 GB) is plenty sufficient to purge any file data from the ARC (which has a cap of 10 GB).

% time cat dpx-files.txt | cpio -o > /dev/null
495713288 blocks
cat dpx-files.txt  0.00s user 0.00s system 0% cpu 1.573 total
cpio -o > /dev/null  78.92s user 360.55s system 43% cpu 16:59.48 total

% time cat dpx-files.txt | cpio -o > /dev/null
495713288 blocks
cat dpx-files.txt  0.00s user 0.00s system 0% cpu 0.198 total
cpio -o > /dev/null  79.92s user 358.75s system 11% cpu 1:01:05.88 total

zpool iostat averaged over 60 seconds reported that the first run through the files read the data at 251 MB/s and the second run only achieved 68 MB/s. It seems clear that there is something really bad about Solaris 10 zfs's file caching code which is causing it to go into the weeds.

I don't think that the results mean much, but I have attached output from 'hotkernel' while a subsequent cpio copy is taking place. It shows that the kernel is mostly sleeping.

This is not a new problem. It seems that I have been banging my head against this from the time I started using zfs.

I'd like to see mpstat 1 for each case, on an otherwise idle system, but then there's probably a whole lot of dtrace I'd like to do ... but I'm just off on vacation for a week, and this will probably have to be my last post on this thread until I'm back.

Cheers,
Phil
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to