{"id":1975,"date":"2024-03-04T02:41:04","date_gmt":"2024-03-04T02:41:04","guid":{"rendered":"https:\/\/mvermeulen.org\/perf\/?page_id=1975"},"modified":"2024-03-04T11:46:14","modified_gmt":"2024-03-04T11:46:14","slug":"dragonflydb","status":"publish","type":"page","link":"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/dragonflydb\/","title":{"rendered":"dragonflydb"},"content":{"rendered":"\n<p>An Open Source database server that is a redis replacement as a memory store. The test has many configurations and I picked one with 20 clients and five different ratios of read\/writes. This appears to hang on my Intel system with no obvious causes (other than a lot of wifi interface issues in syslog.) Profile shows a lot of I\/O wait as well as interrupts.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"960\" src=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/systemtime-16.png\" alt=\"\" class=\"wp-image-1984\" srcset=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/systemtime-16.png 1280w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/systemtime-16-1024x768.png 1024w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/systemtime-16-768x576.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p>Topdown profile shows backend stalls and frontend stalls at roughly similar ratios with a 20% retirement rate.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"960\" src=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/amdtopdown-17.png\" alt=\"\" class=\"wp-image-1985\" srcset=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/amdtopdown-17.png 1280w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/amdtopdown-17-1024x768.png 1024w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/03\/amdtopdown-17-768x576.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p>AMD metrics show only ~3 cores used, not much floating point<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elapsed              1098.123\non_cpu               0.182          # 2.91 \/ 16 cores\nutime                2136.912\nstime                1056.417\nnvcsw                23918122       # 99.61%\nnivcsw               94534          # 0.39%\ninblock              0              # 0.00\/sec\nonblock              15088          # 13.74\/sec\ncpu-clock            12971200485365 # 12971.200 seconds\ntask-clock           13008167174499 # 13008.167 seconds\npage faults          4074913        # 313.258\/sec\ncontext switches     149665213      # 11505.480\/sec\ncpu migrations       8975598        # 689.997\/sec\nmajor page faults    16             # 0.001\/sec\nminor page faults    4074897        # 313.257\/sec\nalignment faults     0              # 0.000\/sec\nemulation faults     0              # 0.000\/sec\nbranches             8265555923655  # 187.034 branches per 1000 inst\nbranch misses        236662896331   # 2.86% branch miss\nconditional          5119621260643  # 115.847 conditional branches per 1000 inst\nindirect             371703877169   # 8.411 indirect branches per 1000 inst\ncpu-cycles           80814807480846 # 2.90 GHz\ninstructions         71114853287286 # 0.88 IPC\nslots                160582787387796 #\nretiring             24859185583438 # 15.5% (18.4%)\n-- ucode             138605826243   #     0.1%\n-- fastpath          24720579757195 #    15.4%\nfrontend             52746936524890 # 32.8% (39.1%)\n-- latency           40968756310632 #    25.5%\n-- bandwidth         11778180214258 #     7.3%\nbackend              55894112008895 # 34.8% (41.4%)\n-- cpu               5920834715390  #     3.7%\n-- memory            49973277293505 #    31.1%\nspeculation          1436696800352  #  0.9% ( 1.1%)\n-- branch mispredict 1406021540212  #     0.9%\n-- pipeline restart  30675260140    #     0.0%\nsmt-contention       25617933291494 # 16.0% ( 0.0%)\ncpu-cycles           50316928921807 # 2.86 GHz\ninstructions         45061442490839 # 0.90 IPC\ninstructions         14890437861435 # 57.239 l2 access per 1000 inst\nl2 hit from l1       727184075817   # 22.78% l2 miss\nl2 miss from l1      139402165452   #\nl2 hit from l2 pf    70337131879    #\nl3 hit from l2 pf    43389273473    #\nl3 miss from l2 pf   11397328796    #\ninstructions         14898190265910 # 21.401 float per 1000 inst\nfloat 512            96             # 0.000 AVX-512 per 1000 inst\nfloat 256            658            # 0.000 AVX-256 per 1000 inst\nfloat 128            318843327322   # 21.401 AVX-128 per 1000 inst\nfloat MMX            0              # 0.000 MMX per 1000 inst\nfloat scalar         1              # 0.000 scalar per 1000 inst\ninstructions         45078808461884 #\nopcache              9034904210347  # 200.425 opcache per 1000 inst\nopcache miss         2900738764571  # 32.1% opcache miss rate\nl1 dTLB miss         306619447606   # 6.802 L1 dTLB per 1000 inst\nl2 dTLB miss         46943276980    # 1.041 L2 dTLB per 1000 inst\ninstructions         44954439840462 #\nicache               3852925593490  # 85.707 icache per 1000 inst\nicache miss          1237410413656  # 32.1% icache miss rate\nl1 iTLB miss         233059462625   # 5.184 L1 iTLB per 1000 inst\nl2 iTLB miss         0              # 0.000 L2 iTLB per 1000 inst\ntlb flush            40017580       # 0.001 TLB flush per 1000 inst\n<\/code><\/pre>\n\n\n\n<p>Process profile<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>776 processes\n\t135 memtier_benchma      19406.53  9111.62\n\t 15 dragonfly             7708.29  2030.69\n\t 15 Proactor2             7708.29  2030.68\n\t 15 Proactor5             7708.29  2030.64\n\t 15 Proactor4             7708.28  2030.67\n\t 15 Proactor7             7708.28  2030.67\n\t 15 Proactor3             7708.28  2030.66\n\t 15 Proactor0             7708.28  2030.64\n\t 15 Proactor6             7708.27  2030.66\n\t 15 Proactor1             7708.27  2030.65\n\t 15 Proactor14            7708.26  2030.64\n\t 15 Proactor10            7708.25  2030.65\n\t 15 Proactor12            7708.24  2030.64\n\t 15 Proactor8             7708.23  2030.65\n\t 15 Proactor9             7708.23  2030.64\n\t 15 Proactor11            7708.23  2030.63\n\t 15 Proactor13            7708.23  2030.62\n\t 15 Proactor15            7708.23  2030.61\n\t 68 clinfo                  20.01     5.68\n\t 38 vulkaninfo               1.67     0.95\n\t  4 vulkani:disk$0           0.17     0.10\n\t  6 php                      0.11     0.21\n\t  6 glxinfo:gdrv0            0.10     0.10\n\t  6 glxinfo:gl0              0.10     0.10\n\t  2 llvmpipe-0               0.09     0.05\n\t  2 llvmpipe-1               0.09     0.05\n\t  2 llvmpipe-10              0.09     0.05\n\t  2 llvmpipe-11              0.09     0.05\n\t  2 llvmpipe-12              0.09     0.05\n\t  2 llvmpipe-13              0.09     0.05\n\t  2 llvmpipe-14              0.09     0.05\n\t  2 llvmpipe-15              0.09     0.05\n\t  2 llvmpipe-2               0.09     0.05\n\t  2 llvmpipe-3               0.09     0.05\n\t  2 llvmpipe-4               0.09     0.05\n\t  2 llvmpipe-5               0.09     0.05\n\t  2 llvmpipe-6               0.09     0.05\n\t  2 llvmpipe-7               0.09     0.05\n\t  2 llvmpipe-8               0.09     0.05\n\t  2 llvmpipe-9               0.09     0.05\n\t  6 clang                    0.06     0.06\n\t  2 glxinfo                  0.06     0.04\n\t  2 glxinfo:cs0              0.06     0.04\n\t  2 glxinfo:disk$0           0.06     0.04\n\t  2 glxinfo:sh0              0.06     0.04\n\t  2 glxinfo:shlo0            0.06     0.04\n\t  3 rocminfo                 0.03     0.00\n\t  1 lspci                    0.00     0.03\n\t  1 ps                       0.00     0.01\n\t 90 sh                       0.00     0.00\n\t 15 dragonflydb              0.00     0.00\n\t 15 sleep                    0.00     0.00\n\t 13 gcc                      0.00     0.00\n\t  9 gsettings                0.00     0.00\n\t  8 stat                     0.00     0.00\n\t  8 systemd-detect-          0.00     0.00\n\t  6 llvm-link                0.00     0.00\n\t  5 gmain                    0.00     0.00\n\t  5 phoronix-test-s          0.00     0.00\n\t  2 cc                       0.00     0.00\n\t  2 dconf worker             0.00     0.00\n\t  2 lscpu                    0.00     0.00\n\t  2 uname                    0.00     0.00\n\t  2 which                    0.00     0.00\n\t  2 xset                     0.00     0.00\n\t  1 date                     0.00     0.00\n\t  1 dirname                  0.00     0.00\n\t  1 dmesg                    0.00     0.00\n\t  1 dmidecode                0.00     0.00\n\t  1 grep                     0.00     0.00\n\t  1 ifconfig                 0.00     0.00\n\t  1 ip                       0.00     0.00\n\t  1 lsmod                    0.00     0.00\n\t  1 mktemp                   0.00     0.00\n\t  1 qdbus                    0.00     0.00\n\t  1 readlink                 0.00     0.00\n\t  1 realpath                 0.00     0.00\n\t  1 sed                      0.00     0.00\n\t  1 sort                     0.00     0.00\n\t  1 stty                     0.00     0.00\n\t  1 systemctl                0.00     0.00\n\t  1 template.sh              0.00     0.00\n\t  1 wc                       0.00     0.00\n\t  1 xrandr                   0.00     0.00\n0 processes running\n47 maximum processes\n<\/code><\/pre>\n\n\n\n<p>Computation block looks as follows<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      924844) dragonflydb      cpu=13 start=7.20  finish=74.24\n        924845) dragonfly        cpu=2 start=7.20  finish=74.47\n          924847) Proactor0        cpu=0 start=7.21  finish=74.47\n          924848) Proactor1        cpu=1 start=7.21  finish=74.47\n          924849) Proactor2        cpu=2 start=7.21  finish=74.47\n          924850) Proactor3        cpu=3 start=7.21  finish=74.47\n          924851) Proactor4        cpu=4 start=7.21  finish=74.47\n          924852) Proactor5        cpu=5 start=7.21  finish=74.47\n          924853) Proactor6        cpu=6 start=7.21  finish=74.47\n          924854) Proactor7        cpu=7 start=7.21  finish=74.47\n          924855) Proactor8        cpu=8 start=7.21  finish=74.47\n          924856) Proactor9        cpu=9 start=7.21  finish=74.47\n          924857) Proactor10       cpu=10 start=7.21  finish=74.47\n          924858) Proactor11       cpu=11 start=7.21  finish=74.47\n          924859) Proactor12       cpu=12 start=7.21  finish=74.47\n          924860) Proactor13       cpu=13 start=7.21  finish=74.47\n          924861) Proactor14       cpu=14 start=7.21  finish=74.47\n          924862) Proactor15       cpu=15 start=7.21  finish=74.47\n        924846) sleep            cpu=11 start=7.20  finish=12.20\n        924863) memtier_benchma  cpu=4 start=12.21 finish=74.24\n          924864) memtier_benchma  cpu=3 start=12.22 finish=72.28\n          924865) memtier_benchma  cpu=10 start=12.22 finish=72.28\n          924866) memtier_benchma  cpu=0 start=12.22 finish=72.28\n          924867) memtier_benchma  cpu=12 start=12.22 finish=72.28\n          924868) memtier_benchma  cpu=5 start=12.22 finish=72.28\n          924869) memtier_benchma  cpu=14 start=12.22 finish=72.28\n          924870) memtier_benchma  cpu=2 start=12.22 finish=72.27\n          924871) memtier_benchma  cpu=11 start=12.22 finish=73.29\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>An Open Source database server that is a redis replacement as a memory store. The test has many configurations and I picked one with 20 clients and five different ratios of read\/writes. This appears to hang on my Intel system <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/dragonflydb\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":58,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1975","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/comments?post=1975"}],"version-history":[{"count":2,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1975\/revisions"}],"predecessor-version":[{"id":1986,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1975\/revisions\/1986"}],"up":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/58"}],"wp:attachment":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/media?parent=1975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}