performance.rst 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. Performance Benchmark Report
  2. ============================
  3. Environment
  4. -----------
  5. Hardware
  6. ~~~~~~~~
  7. ‘Rather Snappy’ Laptop
  8. ^^^^^^^^^^^^^^^^^^^^^^
  9. - Dell Precison M3800 Laptop
  10. - 4x Intel(R) Core(TM) i7-4712HQ CPU @ 2.30GHz
  11. - 12Gb RAM
  12. - SSD
  13. ‘Ole Workhorse’ server
  14. ^^^^^^^^^^^^^^^^^^^^^^
  15. - 8x Intel(R) Xeon(R) CPU X5550 @ 2.67GHz
  16. - 16Gb RAM
  17. - Magnetic drive, XXX RPM
  18. Software
  19. ~~~~~~~~
  20. - Arch Linux OS
  21. - glibc 2.26-11
  22. - python 3.5.4
  23. - lmdb 0.9.21-1
  24. Benchmark script
  25. ~~~~~~~~~~~~~~~~
  26. `Generator script <../../util/benchmark.py>`__
  27. The script was run with default values: 10,000 children under the same
  28. parent, PUT requests.
  29. Data Set
  30. ~~~~~~~~
  31. Synthetic graph created by the benchmark script. The graph is unique for
  32. each request and consists of 200 triples which are partly random data,
  33. with a consistent size and variation:
  34. - 50 triples have an object that is a URI of an external resource (50
  35. unique predicates; 5 unique objects).
  36. - 50 triples have an object that is a URI of a repository-managed
  37. resource (50 unique predicates; 5 unique objects).
  38. - 100 triples have an object that is a 64-character random Unicode
  39. string (50 unique predicates; 100 unique objects).
  40. Results
  41. -------
  42. .. _rather-snappy-laptop-1:
  43. ‘Rather Snappy’ Laptop
  44. ~~~~~~~~~~~~~~~~~~~~~~
  45. FCREPO/Modeshape 4.7.5
  46. ^^^^^^^^^^^^^^^^^^^^^^
  47. 15’45" running time
  48. 0.094" per resource (100%—reference point)
  49. 3.4M triples total in repo at the end of the process
  50. Retrieval of parent resource (~10000 triples), pipe to /dev/null: 3.64"
  51. (100%)
  52. Peak memory usage: 2.47Gb
  53. Database size: 3.3 Gb
  54. LAKEsuperior Alpha 6, LMDB Back End
  55. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  56. 25’ running time
  57. 0.152" per resource (161%)
  58. *Some gaps every ~40-50 requests, probably disk flush*
  59. Retrieval of parent resource (10K triples), pipe to /dev/null: 2.13"
  60. (58%)
  61. Peak memory usage: ~650 Mb (3 idle workers, 1 active)
  62. Database size: 523 Mb (16%)
  63. .. _ole-workhorse-server-1:
  64. ‘Ole Workhorse’ server
  65. ~~~~~~~~~~~~~~~~~~~~~~
  66. FCREPO
  67. ^^^^^^
  68. 0:47:38 running time
  69. 0.285" per resource (100%)
  70. Retrieval of parent resource: 9.6" (100%)
  71. LAKEsuperior
  72. ^^^^^^^^^^^^
  73. 1:14:19 running time
  74. 0.446" per resource (156%)
  75. Retrieval of parent resource: 5.58" (58%)
  76. Conclusions
  77. -----------
  78. LAKEsuperior appears to be markedly slower on writes and markedly faster
  79. on reads. Both these factors are very likely related to the underlying
  80. LMDB store which is optimized for read performance.
  81. Comparison of results between the laptop and the server demonstrates
  82. that both read and write performance gaps are identical in the two
  83. environments. Disk speed severely affects the numbers.
  84. **Note:** As you can guess, these are only very partial and specific
  85. results. They should not be taken as a thorough performance assessment.
  86. Such an assessment may be impossible and pointless to make given the
  87. very different nature of the storage models, which may behave radically
  88. differently depending on many variables.