Re: [zfs-discuss] Extremely long creat64 latencies on higly utilized zpools

2007-08-17 Thread Matthew Ahrens
Yaniv Aknin wrote:
> When volumes approach 90% usage, and under medium/light load (zpool iostat
> reports 50mb/s and 750iops reads), some creat64 system calls take over 50
> seconds to complete (observed with 'truss -D touch'). When doing manual
> tests, I've seen similar times on unlink() calls (truss -D rm).

If it's only file creation that's slow, it's possible that you're hitting 
6544140 (fixed in snv_68).  If this is the case then you will see high system 
time from your touch process, and a high ratio of calls to dnode_hold_impl() 
to dmu_object_alloc(), which you can examine with dtrace.

If that isn't it, then try getting some stack traces (of the kernel stacks) 
when it's taking a long time.  Again, dtrace is your friend here.

--matt
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


Re: [zfs-discuss] Extremely long creat64 latencies on higly utilized zpools

2007-08-15 Thread johansen-osdev
You might also consider taking a look at this thread:

http://mail.opensolaris.org/pipermail/zfs-discuss/2007-July/041760.html

Although I'm not certain, this sounds a lot like the other pool
fragmentation issues.

-j

On Wed, Aug 15, 2007 at 01:11:40AM -0700, Yaniv Aknin wrote:
> Hello friends,
> 
> I've recently seen a strange phenomenon with ZFS on Solaris 10u3, and was 
> wondering if someone may have more information.
> 
> The system uses several zpools, each a bit under 10T, each containing one zfs 
> with lots and lots of small files (way too many, about 100m files and 75m 
> directories).
> 
> I have absolutely no control over the directory structure and believe me I 
> tried to change it.
> 
> Filesystem usage patterns are create and read, never delete and never rewrite.
> 
> When volumes approach 90% usage, and under medium/light load (zpool iostat 
> reports 50mb/s and 750iops reads), some creat64 system calls take over 50 
> seconds to complete (observed with 'truss -D touch'). When doing manual 
> tests, I've seen similar times on unlink() calls (truss -D rm). 
> 
> I'd like to stress this happens on /some/ of the calls, maybe every 100th 
> manual call (I scripted the test), which (along with normal system 
> operations) would probably be every 10,000th or 100,000th call.
> 
> Other system parameters (memory usage, loadavg, process number, etc) appear 
> nominal. The machine is an NFS server, though the crazy latencies were 
> observed both local and remote.
> 
> What would you suggest to further diagnose this? Has anyone seen trouble with 
> high utilization and medium load? (with or without insanely high filecount?)
> 
> Many thanks in advance,
>  - Yaniv
>  
>  
> This message posted from opensolaris.org
> ___
> zfs-discuss mailing list
> zfs-discuss@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


Re: [zfs-discuss] Extremely long creat64 latencies on higly utilized zpools

2007-08-15 Thread michael schuster
Yaniv,

I'm adding dtrace-discuss to this email for reasons that will be obvious 
immediately :-) - see below

Yaniv Aknin wrote:

> When volumes approach 90% usage, and under medium/light load (zpool
> iostat reports 50mb/s and 750iops reads), some creat64 system calls take
> over 50 seconds to complete (observed with 'truss -D touch'). When doing
> manual tests, I've seen similar times on unlink() calls (truss -D rm).
> 
> I'd like to stress this happens on /some/ of the calls, maybe every
> 100th manual call (I scripted the test), which (along with normal system
> operations) would probably be every 10,000th or 100,000th call.

I'd suggest you do something like this (not tested, so syntax errors etc 
may be lurking; I'd also suggest you get the DTrace guide off of 
opensolaris.org and read the chapter about speculations):

#!/usr/sbin/drace -Fs

int limit  ONE_SECOND   /* you need to replace this with 10^9, I think)

syscall::creat64:entry
{
self->spec = speculation();
speculate(self->spec);
self->ts=timestamp();
self->duration = 0;
}

fbt:::entry,
fbt:::return
/self->spec/
{
speculate(self->spec);
}

syscall::creat64:return
/self->spec/
{
speculate(self->spec);
self->duration = timestamp() - self->ts;
}

syscall::creat64:return
/self->duration > limit/
{
commit(self->spec);
self->spec = 0;
}

syscall::creat64:return
/self->spec/
{
discard(self->spec);
self->spec = 0;
}


you may need to use a different timestamp (walltimestamp?); and perhaps 
you'll want to somehow reduce the number of fbt probes, but that's up to 
you. I hope you can take it from here.

cheers
Michael
-- 
Michael SchusterSun Microsystems, Inc.
recursion, n: see 'recursion'
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


[zfs-discuss] Extremely long creat64 latencies on higly utilized zpools

2007-08-15 Thread Yaniv Aknin
Hello friends,

I've recently seen a strange phenomenon with ZFS on Solaris 10u3, and was 
wondering if someone may have more information.

The system uses several zpools, each a bit under 10T, each containing one zfs 
with lots and lots of small files (way too many, about 100m files and 75m 
directories).

I have absolutely no control over the directory structure and believe me I 
tried to change it.

Filesystem usage patterns are create and read, never delete and never rewrite.

When volumes approach 90% usage, and under medium/light load (zpool iostat 
reports 50mb/s and 750iops reads), some creat64 system calls take over 50 
seconds to complete (observed with 'truss -D touch'). When doing manual tests, 
I've seen similar times on unlink() calls (truss -D rm). 

I'd like to stress this happens on /some/ of the calls, maybe every 100th 
manual call (I scripted the test), which (along with normal system operations) 
would probably be every 10,000th or 100,000th call.

Other system parameters (memory usage, loadavg, process number, etc) appear 
nominal. The machine is an NFS server, though the crazy latencies were observed 
both local and remote.

What would you suggest to further diagnose this? Has anyone seen trouble with 
high utilization and medium load? (with or without insanely high filecount?)

Many thanks in advance,
 - Yaniv
 
 
This message posted from opensolaris.org
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss