A couple more questions here.

[mpstat]

> CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
>   0    0   0 3109  3616  316  196    5   17   48   45   245    0  85   0  15
>   1    0   0 3127  3797  592  217    4   17   63   46   176    0  84   0  15
> CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
>   0    0   0 3051  3529  277  201    2   14   25   48   216    0  83   0  17
>   1    0   0 3065  3739  606  195    2   14   37   47   153    0  82   0  17
> CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
>   0    0   0 3011  3538  316  242    3   26   16   52   202    0  81   0  19
>   1    0   0 3019  3698  578  269    4   25   23   56   309    0  83   0  17
> 
> # lockstat -kIW -D 20 sleep 30
> 
> Profiling interrupt: 6080 events in 31.341 seconds (194 events/sec)
> 
> Count indv cuml rcnt     nsec Hottest CPU+PIL        Caller                  
> -------------------------------------------------------------------------------
>  2068  34%  34% 0.00     1767 cpu[0]                 deflate_slow            
>  1506  25%  59% 0.00     1721 cpu[1]                 longest_match           
>  1017  17%  76% 0.00     1833 cpu[1]                 mach_cpu_idle           
>   454   7%  83% 0.00     1539 cpu[0]                 fill_window             
>   215   4%  87% 0.00     1788 cpu[1]                 pqdownheap              
<snip>

What do you have zfs compresison set to?  The gzip level is tunable,
according to zfs set, anyway:

PROPERTY       EDIT  INHERIT   VALUES
compression     YES      YES   on | off | lzjb | gzip | gzip-[1-9]

You still have idle time in this lockstat (and mpstat).

What do you get for a lockstat -A -D 20 sleep 30?

Do you see anyone with long lock hold times, long sleeps, or excessive
spinning?

The largest numbers from mpstat are for interrupts and cross calls.
What does intrstat(1M) show?

Have you run dtrace to determine the most frequent cross-callers?

#!/usr/sbin/dtrace -s

sysinfo:::xcalls
{
        @a[stack(30)] = count();
}

END
{
        trunc(@a, 30);
}

is an easy way to do this.

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

Reply via email to