Skip to content

Instantly share code, notes, and snippets.

@aphyr
Created February 17, 2022 00:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aphyr/9f8e549ce86113efd652c63e5266f604 to your computer and use it in GitHub Desktop.
Save aphyr/9f8e549ce86113efd652c63e5266f604 to your computer and use it in GitHub Desktop.
Radix vs etcd strace
Collected on an m5.large w/EBS over 360 seconds, with Yourkit attached.
Processing ~12 txns/sec. Roughly 135 fdatasync/sec.
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ------------------
82.87 4517.437388 1806 2501189 265686 futex
10.14 552.731643 827 668347 epoll_wait
2.79 152.224778 6695 22737 clock_nanosleep
1.59 86.877871 1357466 64 poll
1.54 84.028244 3112157 27 16 restart_syscall
0.28 15.203712 311 48776 fdatasync
0.21 11.449301 10 1123963 10 read
0.14 7.564838 8 940720 clock_gettime
0.12 6.526628 15 411377 writev
0.11 5.978851 9 615864 epoll_ctl
0.10 5.220236 12 415630 write
0.07 3.813035 8 456599 lseek
0.02 0.839963 15 55748 fstat
0.01 0.528579 11 46590 gettid
0.00 0.148788 2289 65 unlink
0.00 0.143524 19 7409 pread64
0.00 0.068923 16 4207 105 openat
0.00 0.065539 10 5965 getrusage
0.00 0.046033 11 4098 close
0.00 0.037863 11 3319 rt_sigprocmask
0.00 0.030405 33 916 mmap
0.00 0.019732 13 1481 123 stat
0.00 0.017375 18 935 sched_getaffinity
0.00 0.015469 33 463 madvise
0.00 0.014869 13 1108 sendmsg
0.00 0.014522 32 450 clone
0.00 0.014493 16 864 432 recvmsg
0.00 0.010567 23 450 mprotect
0.00 0.006740 14 450 prctl
0.00 0.006556 14 460 sysinfo
0.00 0.006350 14 450 set_robust_list
0.00 0.005987 5 1087 4 rt_sigreturn
0.00 0.004713 12 365 statfs
0.00 0.002862 40 70 fcntl
0.00 0.000668 19 35 access
0.00 0.000232 3 62 sched_yield
------ ----------- ----------- --------- --------- ------------------
100.00 5451.107277 742 7342340 266376 total
Same cluster, this time with etcd pushing 2700 writes/sec. This sample
taken over ~120 seconds. ~750 calls to fdatasync per second, but
only .27 fsyncs per txn.
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
60.64 160.668617 243 659266 17575 futex
14.78 39.162109 44 877282 select
11.65 30.875094 344 89697 fdatasync
6.98 18.482369 40 459453 epoll_wait
1.69 4.488873 11 397278 140569 read
1.58 4.195949 17 246290 write
0.78 2.056633 9 220320 setsockopt
0.43 1.147139 13 85634 30553 accept4
0.42 1.121186 10 110162 epoll_ctl
0.41 1.078441 10 98658 lseek
0.36 0.942449 17 55185 close
0.20 0.518954 9 55081 getsockname
0.06 0.147927 11 13271 sched_yield
0.01 0.032694 908 36 fsync
0.00 0.012611 9 1312 8 lstat
0.00 0.006640 3320 2 1 restart_syscall
0.00 0.001814 54 33 unlinkat
0.00 0.001592 15 104 openat
0.00 0.001392 21 66 getdents64
0.00 0.001345 13 102 pwrite64
0.00 0.000440 11 37 fcntl
0.00 0.000297 11 25 getrlimit
0.00 0.000112 56 2 ftruncate
0.00 0.000066 33 2 fallocate
0.00 0.000064 21 3 rt_sigprocmask
0.00 0.000045 45 1 clone
0.00 0.000026 13 2 renameat
0.00 0.000008 4 2 sigaltstack
0.00 0.000008 4 2 gettid
0.00 0.000006 6 1 arch_prctl
0.00 0.000000 0 1 mmap
------ ----------- ----------- --------- --------- ----------------
100.00 264.944900 78 3369310 188706 total
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment