Created
August 6, 2014 13:50
-
-
Save ferebee/0f8169cd0ea19b656c51 to your computer and use it in GitHub Desktop.
SmartOS getcwd() vs. netatalk (part 2)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Debugging performance issue of OS X 10.9 Mavericks Finder vs. netatalk 3.1.2 on SmartOS | |
Part 2 - kernel DNLC cache size increased from 450,000 (default) to 10,000,000 entries | |
This is a followup to <https://gist.github.com/ferebee/99016ccd293b3f616c77> which shows | |
behavior with the DNLC at its default size of 450,000. | |
Server is 24-core (dual Xeon E5-2620) SmartOS joyent_20140613T024634Z | |
with 128 GB RAM, Intel X520 10GbE network card. | |
Client is a MacBookPro10,1 via 1GbE. | |
The OS X 10.9 Finder is extremely slow to display the contents of folders on the AFP | |
volume. Server load is still very low, perhaps somewhat higher than on the first test. | |
=== afp.d Dtrace script provided by Ralph Böhme === | |
./afp.d -n afpd | |
Collecting data... (ctrl-c to stop) | |
^C | |
Ran for 32828026 us (32 s) | |
Sum of time spend | |
================= | |
... disk IO: 5372358 us (5 s) | |
... network IO: 215871190 us (215 s) | |
Sum of time spend in syscalls | |
============================= | |
gtime 0 | |
getpid 1 | |
lwp_sigmask 30 | |
setcontext 51 | |
setitimer 57 | |
readlink 60 | |
fdsync 208 | |
write 445 | |
getuid 549 | |
statvfs 2134 | |
stat 3309 | |
rmdir 3435 | |
fstat 17679 | |
seteuid 20077 | |
pwrite 32601 | |
send 36176 | |
fcntl 57557 | |
unlink 60284 | |
read 70595 | |
getdents 74952 | |
close 85387 | |
recv 89711 | |
sendfilev 142045 | |
writev 191392 | |
acl 257123 | |
open 501228 | |
openat 761476 | |
chdir 909476 | |
lstat 3567252 | |
getcwd 63834762 | |
pollsys 215412330 | |
Total number of syscalls | |
======================== | |
readlink 8 | |
fdsync 10 | |
lwp_sigmask 16 | |
setcontext 16 | |
setitimer 16 | |
getpid 20 | |
gtime 20 | |
write 40 | |
statvfs 115 | |
stat 127 | |
sendfilev 491 | |
rmdir 711 | |
pwrite 1302 | |
getdents 2794 | |
send 4428 | |
read 10784 | |
unlink 11546 | |
fstat 15422 | |
pollsys 16003 | |
writev 20868 | |
seteuid 23092 | |
chdir 24176 | |
getcwd 24194 | |
fcntl 27173 | |
getuid 34638 | |
acl 38006 | |
openat 54704 | |
open 57420 | |
close 58050 | |
recv 70787 | |
lstat 116735 | |
syscalls elapsed time average | |
============================= | |
getpid 0 | |
getuid 0 | |
gtime 0 | |
seteuid 0 | |
close 1 | |
fstat 1 | |
lwp_sigmask 1 | |
recv 1 | |
fcntl 2 | |
setcontext 3 | |
setitimer 3 | |
rmdir 4 | |
unlink 5 | |
acl 6 | |
read 6 | |
readlink 7 | |
open 8 | |
send 8 | |
writev 9 | |
write 11 | |
openat 13 | |
statvfs 18 | |
fdsync 20 | |
pwrite 25 | |
getdents 26 | |
stat 26 | |
lstat 30 | |
chdir 37 | |
sendfilev 289 | |
getcwd 2638 | |
pollsys 13460 | |
Elapsed time distribution | |
========================= | |
gtime | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20 | |
1 | 0 | |
getpid | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 19 | |
1 |@@ 1 | |
2 | 0 | |
lwp_sigmask | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 |@@@ 1 | |
1 |@@@@@@@@@@@@@@@@@@@@ 8 | |
2 |@@@@@@@@ 3 | |
4 |@@@@@@@@@@ 4 | |
8 | 0 | |
setcontext | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12 | |
4 |@@@@@@@@@@ 4 | |
8 | 0 | |
setitimer | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 |@@@@@@@@@@@@@@@@@@@@@@@ 9 | |
4 |@@@@@@@@@@@@@@@@@@ 7 | |
8 | 0 | |
readlink | |
value ------------- Distribution ------------- count | |
2 | 0 | |
4 |@@@@@@@@@@@@@@@@@@@@ 4 | |
8 |@@@@@@@@@@@@@@@@@@@@ 4 | |
16 | 0 | |
fdsync | |
value ------------- Distribution ------------- count | |
0 | 0 | |
1 |@@@@ 1 | |
2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7 | |
4 |@@@@ 1 | |
8 | 0 | |
16 | 0 | |
32 | 0 | |
64 | 0 | |
128 |@@@@ 1 | |
256 | 0 | |
write | |
value ------------- Distribution ------------- count | |
2 | 0 | |
4 |@@@@@@@@@@@@@@@@@ 17 | |
8 |@@@@@@@@@@@@@@@@@@@@ 20 | |
16 |@@ 2 | |
32 |@ 1 | |
64 | 0 | |
getuid | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 34343 | |
1 | 181 | |
2 | 95 | |
4 | 7 | |
8 | 12 | |
16 | 0 | |
statvfs | |
value ------------- Distribution ------------- count | |
4 | 0 | |
8 |@@@@@ 13 | |
16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 99 | |
32 |@ 3 | |
64 | 0 | |
stat | |
value ------------- Distribution ------------- count | |
8 | 0 | |
16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 107 | |
32 |@@@@@ 16 | |
64 |@ 4 | |
128 | 0 | |
rmdir | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 | 4 | |
4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 693 | |
8 |@ 9 | |
16 | 3 | |
32 | 2 | |
64 | 0 | |
fstat | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 | 14 | |
1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 13567 | |
2 |@@@@@ 1759 | |
4 | 65 | |
8 | 17 | |
16 | 0 | |
seteuid | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 |@@@@@@ 3478 | |
1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 19323 | |
2 | 269 | |
4 | 13 | |
8 | 9 | |
16 | 0 | |
pwrite | |
value ------------- Distribution ------------- count | |
8 | 0 | |
16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1073 | |
32 |@@@@@@@ 229 | |
64 | 0 | |
send | |
value ------------- Distribution ------------- count | |
0 | 0 | |
1 | 1 | |
2 | 11 | |
4 |@@@@@@@@ 912 | |
8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3480 | |
16 | 24 | |
32 | 0 | |
getdents | |
value ------------- Distribution ------------- count | |
0 | 0 | |
1 | 1 | |
2 |@@@@@@@@@@@ 748 | |
4 |@@@@@@@ 492 | |
8 |@@@@ 286 | |
16 |@@ 110 | |
32 |@@@@@@@@@@@@@@@ 1079 | |
64 |@ 77 | |
128 | 1 | |
256 | 0 | |
read | |
value ------------- Distribution ------------- count | |
2 | 0 | |
4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9495 | |
8 |@@@@ 1206 | |
16 | 82 | |
32 | 1 | |
64 | 0 | |
fcntl | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 |@@@@@@@@ 5519 | |
1 |@@@@@@@@@@@@@@@@@@@@ 13624 | |
2 |@@@@@@@@@ 6389 | |
4 | 332 | |
8 | 164 | |
16 |@ 851 | |
32 | 294 | |
64 | 0 | |
unlink | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 |@ 307 | |
4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9312 | |
8 |@@@@@@ 1810 | |
16 | 110 | |
32 | 5 | |
64 | 2 | |
128 | 0 | |
close | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 | 124 | |
1 |@@@@@@@@@@@@@@@@@@@@@@@ 32690 | |
2 |@@@@@@@@@@@@@@@@@ 24928 | |
4 | 267 | |
8 | 39 | |
16 | 1 | |
32 | 1 | |
64 | 0 | |
recv | |
value ------------- Distribution ------------- count | |
-1 | 0 | |
0 |@@@@@@@@@ 16256 | |
1 |@@@@@@@@@@@@@@@@@ 29460 | |
2 |@@@@@@@@@@@@@ 23357 | |
4 |@ 1492 | |
8 | 161 | |
16 | 61 | |
32 | 0 | |
sendfilev | |
value ------------- Distribution ------------- count | |
4 | 0 | |
8 | 4 | |
16 |@@@@@@@@@ 111 | |
32 |@@@@@ 57 | |
64 |@@@@ 55 | |
128 |@@@@@@@@@@ 125 | |
256 |@@@@@ 58 | |
512 |@@@@@@ 78 | |
1024 | 1 | |
2048 | 0 | |
4096 | 0 | |
8192 | 1 | |
16384 | 1 | |
32768 | 0 | |
writev | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 | 43 | |
4 |@@@ 1574 | |
8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 18695 | |
16 |@ 472 | |
32 | 81 | |
64 | 3 | |
128 | 0 | |
acl | |
value ------------- Distribution ------------- count | |
0 | 0 | |
1 |@@@@@ 4388 | |
2 |@@@@@@@ 6246 | |
4 |@@@@@@@@ 7431 | |
8 |@@@@@@@@@@@@@@@@@@@@@ 19604 | |
16 | 117 | |
32 | 10 | |
64 | 200 | |
128 | 10 | |
256 | 0 | |
open | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 |@@@@ 6059 | |
4 |@@@@@@@ 10648 | |
8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 39585 | |
16 | 532 | |
32 | 292 | |
64 | 242 | |
128 | 62 | |
256 | 0 | |
openat | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 |@ 801 | |
4 | 26 | |
8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 42862 | |
16 |@@@@@@@ 10080 | |
32 |@ 911 | |
64 | 21 | |
128 | 3 | |
256 | 0 | |
chdir | |
value ------------- Distribution ------------- count | |
4 | 0 | |
8 |@ 370 | |
16 |@@@@@@@@@@@@@@@@@@@@@ 12807 | |
32 |@@@@@@@@@@@@@@@@ 9715 | |
64 |@@ 1246 | |
128 | 38 | |
256 | 0 | |
lstat | |
value ------------- Distribution ------------- count | |
0 | 0 | |
1 |@@ 5406 | |
2 |@@ 5220 | |
4 |@@ 5349 | |
8 |@@@@@@@@@@@ 33160 | |
16 |@@@@@@ 17299 | |
32 |@@@@@@@@@@@@ 35070 | |
64 |@@@@@ 14903 | |
128 | 328 | |
256 | 0 | |
getcwd | |
value ------------- Distribution ------------- count | |
4 | 0 | |
8 | 67 | |
16 |@@@@@@@@@@@@ 7352 | |
32 |@@@@@@@@@@@@@@@@@@ 10768 | |
64 |@@@@@@@@ 5104 | |
128 |@ 794 | |
256 | 27 | |
512 | 0 | |
1024 | 0 | |
2048 | 0 | |
4096 | 0 | |
8192 | 0 | |
16384 | 0 | |
32768 | 0 | |
65536 | 0 | |
131072 | 0 | |
262144 | 1 | |
524288 | 78 | |
1048576 | 3 | |
2097152 | 0 | |
pollsys | |
value ------------- Distribution ------------- count | |
0 | 0 | |
1 | 177 | |
2 | 51 | |
4 | 57 | |
8 |@@ 931 | |
16 |@ 465 | |
32 |@ 221 | |
64 |@ 213 | |
128 |@@@@@@@@@@@@@ 5335 | |
256 |@@@@@@@@@@@@@@@@ 6238 | |
512 |@ 588 | |
1024 |@ 202 | |
2048 | 74 | |
4096 | 64 | |
8192 |@@@ 1230 | |
16384 | 24 | |
32768 | 13 | |
65536 | 25 | |
131072 | 30 | |
262144 | 18 | |
524288 | 8 | |
1048576 | 11 | |
2097152 | 12 | |
4194304 | 13 | |
8388608 | 2 | |
16777216 | 1 | |
33554432 | 0 | |
AFP functions called | |
==================== | |
AFP_FLUSHFORK 10 | |
AFP_GETVOLPARAM 115 | |
AFP_RESOLVEID 156 | |
AFP_READ_EXT 504 | |
AFP_SETFORKPARAM 1301 | |
AFP_WRITE_EXT 1302 | |
AFP_ENUMERATE_EXT2 1403 | |
AFP_CLOSEFORK 2053 | |
AFP_OPENFORK 2076 | |
AFP_GETFLDRPARAM 5665 | |
AFP_GETEXTATTR 10848 | |
Sum of time spend in each AFP function | |
====================================== | |
AFP_GETVOLATTR 217 | |
AFP_GETEXTATARAM 220 | |
AFP_FLUSHFORK 298 | |
AFP_RESOLVEID 9295 | |
AFP_GETVOLPARAM 26411 | |
AFP_WRITE_EXT 107377 | |
AFP_READ_EXT 159016 | |
AFP_CLOSEFORK 263338 | |
AFP_SETFORKPARAM 423136 | |
AFP_OPENFORK 1223950 | |
AFP_ENUMERATE_EXT2 9068065 | |
AFP_GETFLDRPARAM 15749447 | |
AFP_GETEXTATTR 46613661 | |
Average service time per AFP function | |
===================================== | |
AFP_FLUSHFORK 29 | |
AFP_RESOLVEID 59 | |
AFP_WRITE_EXT 82 | |
AFP_CLOSEFORK 128 | |
AFP_GETVOLPARAM 231 | |
AFP_READ_EXT 315 | |
AFP_SETFORKPARAM 324 | |
AFP_OPENFORK 589 | |
AFP_GETFLDRPARAM 2781 | |
AFP_GETEXTATTR 4294 | |
AFP_ENUMERATE_EXT2 6463 | |
Service time distribution | |
========================= | |
AFP_FLUSHFORK | |
value ------------- Distribution ------------- count | |
4 | 0 | |
8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8 | |
16 |@@@@ 1 | |
32 | 0 | |
64 | 0 | |
128 |@@@@ 1 | |
256 | 0 | |
AFP_GEAEXTAT | |
value ------------- Distribution ------------- count | |
128 | 0 | |
256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 | |
512 | 0 | |
AFP_RESOLVEID | |
value ------------- Distribution ------------- count | |
16 | 0 | |
32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 147 | |
64 |@@ 9 | |
128 | 0 | |
AFP_GETVOLPARAM | |
value ------------- Distribution ------------- count | |
64 | 0 | |
128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 96 | |
256 |@@@@@@ 18 | |
512 | 0 | |
AFP_WRITE_EXT | |
value ------------- Distribution ------------- count | |
16 | 0 | |
32 |@@ 67 | |
64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1221 | |
128 | 13 | |
256 | 0 | |
AFP_READ_EXT | |
value ------------- Distribution ------------- count | |
4 | 0 | |
8 |@ 14 | |
16 | 4 | |
32 |@@@@@@@@@ 117 | |
64 |@@@@@@@ 91 | |
128 |@@@@@@@@@@ 120 | |
256 |@@@@@ 61 | |
512 |@@@@@@@ 93 | |
1024 | 1 | |
2048 | 0 | |
4096 | 0 | |
8192 | 1 | |
16384 | 1 | |
32768 | 0 | |
AFP_CLOSEFORK | |
value ------------- Distribution ------------- count | |
1 | 0 | |
2 | 4 | |
4 | 0 | |
8 | 0 | |
16 |@@@@@@@@@@@ 546 | |
32 |@ 32 | |
64 |@@@ 167 | |
128 |@@@@@@@@@@@@@@@@@@@@@@@@@ 1292 | |
256 | 10 | |
512 | 0 | |
AFP_SETFORKPARAM | |
value ------------- Distribution ------------- count | |
64 | 0 | |
128 | 2 | |
256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1293 | |
512 | 7 | |
1024 | 0 | |
AFP_OPENFORK | |
value ------------- Distribution ------------- count | |
128 | 0 | |
256 |@@@@ 203 | |
512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1865 | |
1024 | 6 | |
2048 | 0 | |
4096 | 0 | |
8192 | 1 | |
16384 | 0 | |
AFP_ENUMERATE_EXT2 | |
value ------------- Distribution ------------- count | |
16 | 0 | |
32 | 4 | |
64 |@ 26 | |
128 |@@@@@ 183 | |
256 |@@@@@@@@@@@@@@ 502 | |
512 |@@@@ 135 | |
1024 |@@@@@ 192 | |
2048 |@@ 83 | |
4096 |@@ 74 | |
8192 |@@@@@ 189 | |
16384 | 6 | |
32768 | 2 | |
65536 | 0 | |
131072 | 0 | |
262144 | 0 | |
524288 | 7 | |
1048576 | 0 | |
AFP_GETFLDRPARAM | |
value ------------- Distribution ------------- count | |
16 | 0 | |
32 |@ 130 | |
64 | 23 | |
128 | 44 | |
256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4212 | |
512 |@@@@@@@@@ 1204 | |
1024 | 32 | |
2048 | 0 | |
4096 | 0 | |
8192 | 0 | |
16384 | 0 | |
32768 | 0 | |
65536 | 0 | |
131072 | 0 | |
262144 | 1 | |
524288 | 17 | |
1048576 | 1 | |
2097152 | 0 | |
AFP_GETEXTATTR | |
value ------------- Distribution ------------- count | |
16 | 0 | |
32 | 2 | |
64 | 30 | |
128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7668 | |
256 |@@@@@@@@@@ 2719 | |
512 |@ 368 | |
1024 | 12 | |
2048 | 0 | |
4096 | 0 | |
8192 | 0 | |
16384 | 0 | |
32768 | 0 | |
65536 | 0 | |
131072 | 0 | |
262144 | 0 | |
524288 | 50 | |
1048576 | 4 | |
2097152 | 0 | |
Total number of CNID queries | |
=========================== | |
CNID 341 | |
Sum of time spend in CNID queries | |
================================= | |
CNID 21922 | |
Elapsed time average for CNID queries | |
==================== | |
CNID 64 | |
Elapsed time distribution for CNID queries | |
========================================== | |
CNID | |
value ------------- Distribution ------------- count | |
16 | 0 | |
32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 296 | |
64 |@@ 21 | |
128 |@@@ 23 | |
256 | 1 | |
512 | 0 | |
Sum of data read and written via AFP | |
==================================== | |
write_fork.isra.2 1626088 | |
read_fork.isra.5 32832422 | |
AFP read/write IO size distribution | |
=================================== | |
write_fork.isra.2 | |
value ------------- Distribution ------------- count | |
32 | 0 | |
64 | 1 | |
128 | 4 | |
256 | 1 | |
512 | 0 | |
1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1296 | |
2048 | 0 | |
read_fork.isra.5 | |
value ------------- Distribution ------------- count | |
256 | 0 | |
512 |@@@@@ 61 | |
1024 | 4 | |
2048 | 0 | |
4096 |@@@@@ 66 | |
8192 |@ 12 | |
16384 |@@@ 37 | |
32768 |@@@@@@@@@@@@@ 157 | |
65536 |@@@ 31 | |
131072 |@@@@@@@@ 95 | |
262144 |@@ 27 | |
524288 | 0 | |
AFP read/write average IO size | |
============================== | |
write_fork.isra.2 1248 | |
read_fork.isra.5 67004 | |
Times are microseconds (1/1.000.000 s) | |
A kernel Flame Graph taken in the same environment is available at | |
<http://fere.be/p/netatalk-flamegraph-2.svg> | |
The kernel is still spending a lot of time in dnlc_reverse_lookup, with most of the rest | |
dedicated to mutex_enter() and mutex_exit(). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment