Community
Participate
Working Groups
I'm working on improving performance of git EFS implementation (bug 334094), because we already know it's slow comparing to local file system. But we don't have precise data on how much faster the later actually is. I hope that in the future there will be other EFS implementations working in Orion so it would be great if we could compare their performance as well. As the first step, I would like to prepare a perf. test for common workflow and run it for local file system and git. The test should allow to add and compare other EFS implementation as they show up.
Here are the first results: Scenario 'org.eclipse.orion.server.tests.filesystem.git.performance.GitPerformanceTest#commonOperations()' (average over 100 samples): Used Java Heap: 3,27M (95% in [-4,5M, 11,03M]) Measurable effect: 15,65M (0,4 SDs) (required sample size for an effect of 5% of stdev: 6401) Working Set: 481,4K (95% in [-354,11K, 1,29M]) Measurable effect: 1,64M (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Committed: 175,52K (95% in [-822,59K, 1,15M]) Measurable effect: 1,96M (0,4 SDs) (required sample size for an effect of 5% of stdev: 6401) Working Set Peak: 346,52K (95% in [45,68K, 647,36K]) Measurable effect: 606,47K (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Elapsed Process: 928ms (95% in [904ms, 951ms]) Measurable effect: 47ms (0,4 SDs) (required sample size for an effect of 5% of mean: 106) Kernel time: 699ms (95% in [688ms, 710ms]) Measurable effect: 21ms (0,4 SDs) Page Faults: 1,06K (95% in [785, 1,33K]) Measurable effect: 551 (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) CPU Time: 850ms (95% in [819ms, 882ms]) Measurable effect: 64ms (0,4 SDs) (required sample size for an effect of 5% of mean: 228) GDI Objects: 0 (95% in [0, 0]) Scenario 'org.eclipse.orion.server.tests.filesystem.performance.LocalPerformanceTest#commonOperations()' (average over 100 samples): Used Java Heap: 28,05K (95% in [25,56K, 30,53K]) Measurable effect: 5K (0,4 SDs) (required sample size for an effect of 5% of mean: 1274) Working Set: 8,76K (95% in [55, 17,46K]) Measurable effect: 17,55K (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Committed: 7,96K (95% in [-20,55K, 36,47K]) Measurable effect: 57,47K (0,4 SDs) (required sample size for an effect of 5% of stdev: 6401) Working Set Peak: 0 (95% in [0, 0]) Elapsed Process: 6ms (95% in [4ms, 7ms]) Measurable effect: 3ms (0,4 SDs) (required sample size for an effect of 5% of stdev: 6401) Kernel time: 5ms (95% in [3ms, 6ms]) Measurable effect: 2ms (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Page Faults: 6 (95% in [2, 10]) Measurable effect: 7 (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) CPU Time: 5ms (95% in [4ms, 7ms]) Measurable effect: 3ms (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) GDI Objects: 0 (95% in [0, 0]) The first scenario was for git filestore, the later - local file system. Both tests executed the same set of operations: create folder, create files, list files for folder, edit file etc. The results exceed my expectations, I didn't think git is sooo slow i.e. over 100x slower then local fs. There is a lot to improve here. Bug 334094 is about changing the current situation.
With the latest fix from bug 334094 the results for git went down to: Scenario 'org.eclipse.orion.server.tests.filesystem.git.performance.GitPerformanceTest#commonOperations()' (average over 100 samples): Used Java Heap: 7,77M (95% in [3,34M, 12,19M]) Measurable effect: 8,92M (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Working Set: 272,96K (95% in [-159,79K, 705,71K]) Measurable effect: 872,39K (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Committed: -12,88K (95% in [-423,82K, 398,06K]) Measurable effect: 828,42K (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Working Set Peak: 256,2K (95% in [-7,71K, 520,11K]) Measurable effect: 532,02K (0,4 SDs) (required sample size for an effect of 5% of stdev: 6400) Elapsed Process: 900ms (95% in [874ms, 926ms]) Measurable effect: 52ms (0,4 SDs) (required sample size for an effect of 5% of mean: 135) Kernel time: 670ms (95% in [660ms, 680ms]) Measurable effect: 20ms (0,4 SDs) Page Faults: 1,04K (95% in [843, 1,24K]) Measurable effect: 395 (0,4 SDs) (required sample size for an effect of 5% of mean: 5789) CPU Time: 824ms (95% in [795ms, 854ms]) Measurable effect: 59ms (0,4 SDs) (required sample size for an effect of 5% of mean: 210) GDI Objects: 0 (95% in [0, 0]) Not much, but it's the right direction ;)
.