I wrote

> Has anyone else noticed a significant zfs performance
> deterioration when running recent opensolaris bits?
> 
> My 32-bit / 768 MB Toshiba Tecra S1 notebook was able
> to do a full opensolaris release build in ~ 4 hours 45
> minutes (gcc shadow compilation disabled; using an lzjb
> compressed zpool / zfs on a single notebook hdd p-ata drive).
> 
> After upgrading to 2007-05-25 opensolaris release
> bits (compiled from source), the same release build now
> needs ~ 6 hours; that's ~ 25% slower.

It might be Bug ID 6469558
"ZFS prefetch needs to be more aware of memory pressure":
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6469558


Instead of compiling opensolaris for 4-6 hours, I've now used
the following find / grep test using on-2007-05-30 sources:


1st test using Nevada build 60:

% cd /files/onnv-2007-05-30
% repeat 10 /bin/time find usr/src/ -name "*.[hc]" -exec grep FooBar {} +
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:22.5
user        3.3
sys         5.8
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:28.4
user        3.3
sys         4.8
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:18.0
user        3.3
sys         4.7
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:17.3
user        3.3
sys         4.8
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:15.0
user        3.3
sys         4.7
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:12.0
user        3.3
sys         4.7
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:21.9
user        3.3
sys         4.7
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:18.7
user        3.3
sys         4.7
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:19.5
user        3.3
sys         4.7
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:17.2
user        3.3
sys         4.7


Same test, but running onnv-2007-05-30 release bits
(compiled from source).  This is at least 25% slower
than snv_60:


(Note: zfs_prefetch_disable = 0 , the default value)

% repeat 10 /bin/time find usr/src/ -name "*.[hc]" -exec grep FooBar {} +
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     8:04.3
user        7.3
sys        13.2
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     6:34.4
user        7.3
sys        11.2
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     6:33.8
user        7.3
sys        11.1
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     5:35.6
user        7.3
sys        10.6
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     5:39.8
user        7.3
sys        10.6
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     5:37.8
user        7.3
sys        11.1
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     5:53.5
user        7.3
sys        11.0
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     5:45.2
user        7.3
sys        11.1
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     5:44.8
user        7.3
sys        11.0
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     5:49.1
user        7.3
sys        11.0



Then I patched zfs_prefetch_disable/W1, and now 
the find & grep test runs much faster on
onnv-2007-05-30 bits:

(Note: zfs_prefetch_disable = 1)

% repeat 10 /bin/time find usr/src/ -name "*.[hc]" -exec grep FooBar {} +
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:01.3
user        7.2
sys         9.9
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:24.5
user        7.2
sys         9.0
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:31.1
user        7.3
sys         9.7
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:47.0
user        7.2
sys         9.6
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:34.4
user        7.2
sys         9.5
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:38.3
user        7.3
sys         9.3
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:35.9
user        7.2
sys         9.5
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:30.2
user        7.2
sys         9.5
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:30.8
user        7.2
sys         9.3
usr/src/lib/pam_modules/authtok_check/authtok_check.c:   * user entering 
FooBar1234 with PASSLENGTH=6, MINDIGIT=4, while

real     4:33.0
user        7.2
sys         9.3



Patching zfs_prefetch_disable = 1 has helped 
opensolaris nightly compile times, too.  With 
zfs_prefetch_disable/W1 nightly build time is
back at 4h 45m (instead of 6h +) ....
 
 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to