lcabaceira / crystal

Alfresco predictions, analisys, benchmarks
3 stars 1 forks source link

Parse the IO Results in Pentaho #14

Closed lcabaceira closed 8 years ago

lcabaceira commented 8 years ago

Now that the IO tests are finalised we need to include their results as part of the Pentaho dashboards and parsing mechanisms.

You can test them using jmeter directly. You will need to specify the JSON output directory that will need to be the same as we are using JMeterLogs.

Please see the readme for details.

https://github.com/lcabaceira/crystal/tree/master/TestCases/disk-io-jmeter-tests

fcorti commented 8 years ago

Hi Luis,

I have some problems running the new test. Please tell me if (and where) I do a mistake.

Below the tasks I have done, starting from a vanilla installation of Alfresco EE 5.0.1.5 and Crystal. My crystal installation is in '/home/fcorti/Desktop/crystal' folder and Alfresco is installed in '/home/fcorti/alfresco-5.0.1.5' folder.

1) Alfresco started. 2) JMeter runned and io-test-plan.jmx opened. 3) In the main test plan page, library has been update with '/home/fcorti/Desktop/crystal/TestCases/cmis-jmeter-test/src' 4) In the Parameters page, the variables have been updated to: indexfilesystem.path: '/home/fcorti/alfresco-5.0.1.5/alf_data' contentfilesystem.path: '/home/fcorti/alfresco-5.0.1.5/alf_data/contentstore' resultsDirectory: '/home/fcorti/Desktop/crystal/TestCases/JMeterLogs'

Running the test, it stops immediately with the log below. No logs are generated.

2016/02/27 19:12:32 WARN  - jmeter.gui.util.MenuFactory: Missing jar? Could not create kg.apc.jmeter.config.redis.RedisDataSet. java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool$Config 
2016/02/27 19:12:33 INFO  - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 
2016/02/27 19:12:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default 
2016/02/27 19:12:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is  
2016/02/27 19:12:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is  
2016/02/27 19:12:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is  
2016/02/27 19:12:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is  
2016/02/27 19:12:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser 
2016/02/27 19:12:33 INFO  - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui 
2016/02/27 19:12:33 INFO  - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui 
2016/02/27 19:12:34 INFO  - jorphan.exec.KeyToolUtils: keytool found at 'keytool' 
2016/02/27 19:12:34 INFO  - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /home/fcorti/Desktop/crystal/jmeter/bin/proxyserver.jks 
2016/02/27 19:12:35 INFO  - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times 
2016/02/27 19:12:35 INFO  - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 
2016/02/27 19:12:35 INFO  - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true 
2016/02/27 19:12:35 INFO  - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 
2016/02/27 19:12:53 INFO  - jmeter.services.FileServer: Default base='/home/fcorti/Desktop/crystal/jmeter/bin' 
2016/02/27 19:12:53 INFO  - jmeter.gui.action.Load: Loading file: /home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests/io-test-plan.jmx 
2016/02/27 19:12:53 INFO  - jmeter.services.FileServer: Set new base='/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' 
2016/02/27 19:12:54 INFO  - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 
2016/02/27 19:12:54 INFO  - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 
2016/02/27 19:12:54 INFO  - jmeter.save.SaveService: Using SaveService properties version 2.5 
2016/02/27 19:12:54 INFO  - jmeter.save.SaveService: Using SaveService properties file version 1519088 
2016/02/27 19:12:54 WARN  - jmeter.save.SaveService: Bad _version - expected 2.8, found 2.5. 
2016/02/27 19:12:54 INFO  - jmeter.save.SaveService: All converter versions present and correct 
2016/02/27 19:12:54 INFO  - jmeter.save.SaveService: Loading file: /home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests/io-test-plan.jmx 
2016/02/27 19:12:54 INFO  - jmeter.services.FileServer: Set new base='/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: Listeners will be started after enabling running version 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: To revert to the earlier behaviour, define jmeterengine.startlistenerslater=false 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: Running the test! 
2016/02/27 19:13:21 INFO  - jmeter.samplers.SampleEvent: List of sample_variables: [] 
2016/02/27 19:13:21 INFO  - jmeter.samplers.SampleEvent: List of sample_variables: [] 
2016/02/27 19:13:21 INFO  - jmeter.testelement.TestPlan: add /home/fcorti/Desktop/crystal/TestCases/cmis-jmeter-test/src to classpath 
2016/02/27 19:13:21 INFO  - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 
2016/02/27 19:13:21 INFO  - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 
2016/02/27 19:13:21 INFO  - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 
2016/02/27 19:13:21 INFO  - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 
2016/02/27 19:13:21 INFO  - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*) 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Main 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Main. 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: Thread will continue on error 
2016/02/27 19:13:21 INFO  - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 4 perThread 4000.0 delayedStart=false 
2016/02/27 19:13:21 INFO  - jmeter.threads.JMeterThread: jmeterthread.startearlier=true (see jmeter.properties) 
2016/02/27 19:13:21 INFO  - jmeter.threads.JMeterThread: Running PostProcessors in forward order 
2016/02/27 19:13:21 INFO  - jmeter.threads.ThreadGroup: Started thread group number 1 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: All thread groups have been started 
2016/02/27 19:13:21 INFO  - jmeter.threads.JMeterThread: Thread started: Main 1-1 
2016/02/27 19:13:21 INFO  - jmeter.threads.JMeterThread: Thread is done: Main 1-1 
2016/02/27 19:13:21 INFO  - jmeter.threads.JMeterThread: Thread finished: Main 1-1 
2016/02/27 19:13:21 INFO  - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test 
2016/02/27 19:13:21 INFO  - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*) 

Then I repeated the test changing the parameters to the value below, copying the ones committed with the path into your system.

5) In the Parameters page, the variables have been updated to: indexfilesystem.path: '/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' contentfilesystem.path: '/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' resultsDirectory: '/home/fcorti/Desktop/crystal/TestCases/JMeterLogs'

Running the test, it stops immediately and no logs are generated.

lcabaceira commented 8 years ago

Have you pulled all new stuff ? You need to have the jar with the test

https://github.com/lcabaceira/crystal/blob/master/Dependencies/jmeter/lib/ext/disk-io-jmeter-test-1.0-SNAPSHOT-jar-with-dependencies.jar

From: Francesco Corti notifications@github.com<mailto:notifications@github.com> Reply-To: lcabaceira/crystal reply@reply.github.com<mailto:reply@reply.github.com> Date: Saturday 27 February 2016 18:37 To: lcabaceira/crystal crystal@noreply.github.com<mailto:crystal@noreply.github.com> Cc: Luis Cabaceira luis.cabaceira@alfresco.com<mailto:luis.cabaceira@alfresco.com> Subject: Re: [crystal] Parse the IO Results in Pentaho (#14)

Hi Luis,

I have some problems running the new test. Please tell me if (and where) I do a mistake.

Below the tasks I have done, starting from a vanilla installation of Alfresco EE 5.0.1.5 and Crystal. My crystal installation is in '/home/fcorti/Desktop/crystal' folder and Alfresco is installed in '/home/fcorti/alfresco-5.0.1.5' folder.

1) Alfresco started. 2) JMeter runned and io-test-plan.jmx opened. 3) In the main test plan page, library has been update with '/home/fcorti/Desktop/crystal/TestCases/cmis-jmeter-test/src' 4) In the Parameters page, the variables have been updated to: indexfilesystem.path: '/home/fcorti/alfresco-5.0.1.5/alf_data' contentfilesystem.path: '/home/fcorti/alfresco-5.0.1.5/alf_data/contentstore' resultsDirectory: '/home/fcorti/Desktop/crystal/TestCases/JMeterLogs'

Running the test, it stops immediately with the log below. No logs are generated.

2016/02/27 19:12:32 WARN - jmeter.gui.util.MenuFactory: Missing jar? Could not create kg.apc.jmeter.config.redis.RedisDataSet. java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool$Config 2016/02/27 19:12:33 INFO - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 2016/02/27 19:12:33 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default 2016/02/27 19:12:33 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is

2016/02/27 19:12:33 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is

2016/02/27 19:12:33 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is

2016/02/27 19:12:33 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is

2016/02/27 19:12:33 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser 2016/02/27 19:12:33 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui 2016/02/27 19:12:33 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui 2016/02/27 19:12:34 INFO - jorphan.exec.KeyToolUtils: keytool found at 'keytool' 2016/02/27 19:12:34 INFO - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /home/fcorti/Desktop/crystal/jmeter/bin/proxyserver.jks 2016/02/27 19:12:35 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times 2016/02/27 19:12:35 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 2016/02/27 19:12:35 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true 2016/02/27 19:12:35 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 2016/02/27 19:12:53 INFO - jmeter.services.FileServer: Default base='/home/fcorti/Desktop/crystal/jmeter/bin' 2016/02/27 19:12:53 INFO - jmeter.gui.action.Load: Loading file: /home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests/io-test-plan.jmx 2016/02/27 19:12:53 INFO - jmeter.services.FileServer: Set new base='/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' 2016/02/27 19:12:54 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 2016/02/27 19:12:54 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 2016/02/27 19:12:54 INFO - jmeter.save.SaveService: Using SaveService properties version 2.5 2016/02/27 19:12:54 INFO - jmeter.save.SaveService: Using SaveService properties file version 1519088 2016/02/27 19:12:54 WARN - jmeter.save.SaveService: Bad _version - expected 2.8, found 2.5. 2016/02/27 19:12:54 INFO - jmeter.save.SaveService: All converter versions present and correct 2016/02/27 19:12:54 INFO - jmeter.save.SaveService: Loading file: /home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests/io-test-plan.jmx 2016/02/27 19:12:54 INFO - jmeter.services.FileServer: Set new base='/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: Listeners will be started after enabling running version 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: To revert to the earlier behaviour, define jmeterengine.startlistenerslater=false 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: Running the test! 2016/02/27 19:13:21 INFO - jmeter.samplers.SampleEvent: List of sample_variables: [] 2016/02/27 19:13:21 INFO - jmeter.samplers.SampleEvent: List of sample_variables: [] 2016/02/27 19:13:21 INFO - jmeter.testelement.TestPlan: add /home/fcorti/Desktop/crystal/TestCases/cmis-jmeter-test/src to classpath 2016/02/27 19:13:21 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 2016/02/27 19:13:21 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 2016/02/27 19:13:21 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 2016/02/27 19:13:21 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: com.atlantbh.jmeter.plugins.jmstools.JmsUtil. Uses tearDownTest: true 2016/02/27 19:13:21 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,local) 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Main 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Main. 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error 2016/02/27 19:13:21 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 4 perThread 4000.0 delayedStart=false 2016/02/27 19:13:21 INFO - jmeter.threads.JMeterThread: jmeterthread.startearlier=true (see jmeter.properties) 2016/02/27 19:13:21 INFO - jmeter.threads.JMeterThread: Running PostProcessors in forward order 2016/02/27 19:13:21 INFO - jmeter.threads.ThreadGroup: Started thread group number 1 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started 2016/02/27 19:13:21 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-1 2016/02/27 19:13:21 INFO - jmeter.threads.JMeterThread: Thread is done: Main 1-1 2016/02/27 19:13:21 INFO - jmeter.threads.JMeterThread: Thread finished: Main 1-1 2016/02/27 19:13:21 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test 2016/02/27 19:13:21 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,local)

Then I repeated the test changing the parameters to the value below, copying the ones committed with the path into your system.

5) In the Parameters page, the variables have been updated to: indexfilesystem.path: '/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' contentfilesystem.path: '/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests' resultsDirectory: '/home/fcorti/Desktop/crystal/TestCases/JMeterLogs'

Running the test, it stops immediately and no logs are generated.

— Reply to this email directly or view it on GitHubhttps://github.com/lcabaceira/crystal/issues/14#issuecomment-189700174.

fcorti commented 8 years ago

Yes, git pull rules. ;-) In my dev env the jars are in the paths below:

/home/fcorti/Desktop/crystal/Dependencies/jmeter/lib/ext/disk-io-jmeter-test-1.0-SNAPSHOT-jar-with-dependencies.jar
/home/fcorti/Desktop/crystal/TestCases/disk-io-jmeter-tests/target/disk-io-jmeter-test-1.0-SNAPSHOT-jar-with-dependencies.jar

I tried also to execute the other jmeter in the Dependencies folder (we have two jmeter installations in crystal).

If you have available a JSON extracted during your tests, please share it so I can start working on it, while we solve this issue.

fcorti commented 8 years ago

ETL done! Now moving to dashboard development.

lcabaceira commented 8 years ago

Note that you will have 4 files to parse just like those ones. 2 for 400MB file and 2 for 8GB files.

From: Francesco Corti notifications@github.com<mailto:notifications@github.com> Reply-To: lcabaceira/crystal reply@reply.github.com<mailto:reply@reply.github.com> Date: Sunday 28 February 2016 19:39 To: lcabaceira/crystal crystal@noreply.github.com<mailto:crystal@noreply.github.com> Cc: Luis Cabaceira luis.cabaceira@alfresco.com<mailto:luis.cabaceira@alfresco.com> Subject: Re: [crystal] Parse the IO Results in Pentaho (#14)

ETL done! Now moving to dashboard development.

— Reply to this email directly or view it on GitHubhttps://github.com/lcabaceira/crystal/issues/14#issuecomment-189931370.

fcorti commented 8 years ago

About file names to admit various tests and multiple file import. Please rename the files of those new tests as describe below: io-test-plan.json.ID.json (ID could be a timestamp or whatever you'd prefer)

Moving to the analytics I would need an explanation. Please provide a brief description of each number of the test (MemoryMappedFile,RandomAccessFile, BufferedStreamFile, BufferedChannelFile) What the numbers means? Which is the unit of measures?

lcabaceira commented 8 years ago

Hi, the units are all Bytes per Second on every test, what changes is the method of accessing and creating the files. Either read bytes per second or write bytes per second.

Using RandomAccessFile provides more control and predictable execution. Using BufferedStreamFile seams to be less performant.

Using NIO FileChannel and ByteBuffer is performing very well, It seems that reading RandomAccessFile and NIO is very effective with Memory Mapped files winning for writes in some cases.

These results vary greatly depending on platform. File system, OS, storage devices, and available memory all have a significant impact.

A special note for the use of memory-mapped large files when pushing for maximum throughput. OS can become unresponsive due the the pressure put on the virtual memory sub-system.

What the numbers means? During the execution of the test the average read and write Bytes per Second

Which is the unit of measures? Bytes per Second (read and Write)

From: Francesco Corti notifications@github.com<mailto:notifications@github.com> Reply-To: lcabaceira/crystal reply@reply.github.com<mailto:reply@reply.github.com> Date: Thursday 3 March 2016 08:35 To: lcabaceira/crystal crystal@noreply.github.com<mailto:crystal@noreply.github.com> Cc: Luis Cabaceira luis.cabaceira@alfresco.com<mailto:luis.cabaceira@alfresco.com> Subject: Re: [crystal] Parse the IO Results in Pentaho (#14)

About file names to admit various tests and multiple file import. Please rename the files of those new tests as describe below: io-test-plan.json.ID.json (ID could be a timestamp or whatever you'd prefer)

Moving to the analytics I would need an explanation. Please provide a brief description of each number of the test (MemoryMappedFile,RandomAccessFile, BufferedStreamFile, BufferedChannelFile) What the numbers means? Which is the unit of measures?

— Reply to this email directly or view it on GitHubhttps://github.com/lcabaceira/crystal/issues/14#issuecomment-191652091.

lcabaceira commented 8 years ago

I will rename the files and commit the code today. I will comment once done.

Luis

From: Francesco Corti notifications@github.com<mailto:notifications@github.com> Reply-To: lcabaceira/crystal reply@reply.github.com<mailto:reply@reply.github.com> Date: Thursday 3 March 2016 08:35 To: lcabaceira/crystal crystal@noreply.github.com<mailto:crystal@noreply.github.com> Cc: Luis Cabaceira luis.cabaceira@alfresco.com<mailto:luis.cabaceira@alfresco.com> Subject: Re: [crystal] Parse the IO Results in Pentaho (#14)

About file names to admit various tests and multiple file import. Please rename the files of those new tests as describe below: io-test-plan.json.ID.json (ID could be a timestamp or whatever you'd prefer)

Moving to the analytics I would need an explanation. Please provide a brief description of each number of the test (MemoryMappedFile,RandomAccessFile, BufferedStreamFile, BufferedChannelFile) What the numbers means? Which is the unit of measures?

— Reply to this email directly or view it on GitHubhttps://github.com/lcabaceira/crystal/issues/14#issuecomment-191652091.

lcabaceira commented 8 years ago

As a general conclusion,

There is a significant difference in performance for the different means of doing sequential file read and write IO from Java. We've found the use of ByteBuffers and Channels to be the best optimised parts of the IO libraries, all very dependent on the filesystem, OS and Host. This is why this tests are very important for Alfresco Content Store and Indexes file system as they can provide a good overview on how is each fiesystem performing in comparison with others.

Luis

From: Francesco Corti notifications@github.com<mailto:notifications@github.com> Reply-To: lcabaceira/crystal reply@reply.github.com<mailto:reply@reply.github.com> Date: Thursday 3 March 2016 08:35 To: lcabaceira/crystal crystal@noreply.github.com<mailto:crystal@noreply.github.com> Cc: Luis Cabaceira luis.cabaceira@alfresco.com<mailto:luis.cabaceira@alfresco.com> Subject: Re: [crystal] Parse the IO Results in Pentaho (#14)

About file names to admit various tests and multiple file import. Please rename the files of those new tests as describe below: io-test-plan.json.ID.json (ID could be a timestamp or whatever you'd prefer)

Moving to the analytics I would need an explanation. Please provide a brief description of each number of the test (MemoryMappedFile,RandomAccessFile, BufferedStreamFile, BufferedChannelFile) What the numbers means? Which is the unit of measures?

— Reply to this email directly or view it on GitHubhttps://github.com/lcabaceira/crystal/issues/14#issuecomment-191652091.

lcabaceira commented 8 years ago

All metrics are shown as bytes per second (read and write)

The json results files now are named as follows :+1:

lcabaceira commented 8 years ago

Test results Units are all Bytes per Second , what changes is the method of accessing and creating the files. Either read bytes per second or write bytes per second. We are testing with 400MB files and 8GB files, the 8GB files are to avoid the caching.

Using RandomAccessFile provides more control and predictable execution. Using BufferedStreamFile seams to be less performant.Using NIO FileChannel and ByteBuffer is performing very well, It seems that reading RandomAccessFile and NIO is very effective with Memory Mapped files winning for writes in some cases.

These results vary greatly depending on platform. File system, OS, storage devices, and available memory all have a significant impact.

A special note for the use of memory-mapped large files when pushing for maximum throughput. OS can become unresponsive due the the pressure put on the virtual memory sub-system.

fcorti commented 8 years ago

Ok, the dashboard on I/O tests has been done and the main dashboard refactored to admit this new class of tests. Below a sample of the new I/O dashboard.

schermata 2016-03-06 alle 12 49 43
fcorti commented 8 years ago

Looking at the resulting dashbaord, I prefer to reopen the task to improve the presentation of the metrics.

fcorti commented 8 years ago

Ok, now it works better.

schermata 2016-03-06 alle 16 37 20

Committed.