Max computing unit benchmarks

Results for various deployments 

On-premise

Hardware

Results

On the server mentioned above, a node can compute (as a total of all attributes computings):

  • Within the 5 min limit (beyond this figure computings will be late and not sustainable)

    Max computing units 21201
  • Within the 1 min limit (for indicators with live rhythm of 1 min)

    Max computing units 4240

Amazon Web Services

Hardware

  • Cloud Provider: Amazon EC2
  • Instance Type: c4.8xlarge + EBS gp2 storage
  • OS: Red Hat Linux 7
  • Processor: 36 vCPU
  • RAM: 60 GB

Results

On the server mentioned above, a node can compute (as a total of all attribute computings):

  • Within the 5 min limit (beyond this figure computings will be late and not sustainable)

    Max computing units 24590
  • Within the 1 min limit (for indicators with live rhythm of 1 min)

    Max computing units 4918

Microsoft Azure

Linux Virtual Machine

Hardware

  • Linux Standard D5 v2 (16 cores, 56 GB memory)
  • Processor: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
  • RAM: 56 GB

Results

On the server mentioned above, a node can compute (as a total of all attributes computings):

  • Within the 5 min limit (beyond this figure computings will be late and not sustainable)


    Red Hat Enterprise Linux 7 Ubuntu 16.04
    Max computing units 28125 27272
  • Within the 1 min limit (for indicators with live rhythm of 1 min)


    Red Hat Enterprise Linux 7 Ubuntu 16.04
    Max computing units 5625 5454

Windows Virtual Machine

Hardware

  • Windows Standard D5 v2 (16 cores, 56 GB memory)
  • Processor: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
  • RAM: 56 GB

Results

On the server mentioned above, a node can compute (as a total of all attribute computings):

  • Within the 5 min limit (beyond this figure computings will be late and not sustainable)


    Windows 2012 R2
    Max computing units 50000
  • Within the 1 min limit (for indicators with live rhythm of 1 min)


    Windows 2012 R2
    Max computing units 10000

Benchmarking the max computing unit

  1. Generate 2 days of data in the past and 30 for the next 30 minutes as data text files with the following format:
    • 1 file per minute with 70 transactions in each (100,000 trx/day), 1ms lifetime (1 transaction is materialized by two rows in the file: 1 for the create event and 1 for the delete one)
    • files need to be named yyyyMMddHHmm.csv, each standing for a simulated minute.
    • (never generate an id with an already seen uuid across all files).

      Data files format (ex:201704261132.csv)
      vt,id,d1,d2,status
      2017-04-26T11:32:00.000,f7a8c145-9f1f-4540-90cd-5bfaa663702f,d1-0,d2-0,CREATE
      2017-04-26T11:32:00.001,f7a8c145-9f1f-4540-90cd-5bfaa663702f,d1-0,d2-0,DELETE
      2017-04-26T11:32:00.864,369d1444-76fb-4caf-8f6c-93d2dbff7ffa,d1-74,d2-0,CREATE
      2017-04-26T11:32:00.865,369d1444-76fb-4caf-8f6c-93d2dbff7ffa,d1-74,d2-0,DELETE
      2017-04-26T11:32:01.728,2b5045f1-39ed-49a4-8434-8a287ed11412,d1-97,d2-0,CREATE
      2017-04-26T11:32:01.729,2b5045f1-39ed-49a4-8434-8a287ed11412,d1-97,d2-0,DELETE
      2017-04-26T11:32:02.592,8bdb5c08-39c2-4066-97b5-95b658e6b89f,d1-68,d2-0,CREATE
      2017-04-26T11:32:02.593,8bdb5c08-39c2-4066-97b5-95b658e6b89f,d1-68,d2-0,DELETE
      ....
  2. Setup a brand new empty instance of Axway Decision Insight on your server, configure the java memory to -Xmx 32G.
  3. In platform.properties, add a property data.directory=/path/to/data/directory.
  4. Start the node and import the collect.appx application. 
  5. Start the absorption route.
  6. In the data directory, put all the files from the past.
  7. Monitor the data directory. Files in the past should be absorbed rapidly until catching up to the present. Wait for this to happen.
  8. Import simpleMonodim_atInstant.appx. This application introduces the computing to bench.
  9. Wait for the computing catchup, check in the node health status that there is no more pending remaining computings.
  10. Connect to the node JMX
    • Call "resetAll" on "com.systar.gluon.container.impl.monitoring.MonitoringServiceMXBean".
    • Absorb files for 10 min => put the 10 files in the data folder, the absorption route will absorb them automatically at a rate of one per minute.
    • Call "reportComputedIndicatorsStats" on "com.systar.carbon.semantic.impl.IndicatorExecutorMXBean".
  11. In the report ("your_node/var/work/carbon-semantic/indicators-report_xxxxx.csv"), take the "Average duration".
    • Do the maths: (5 * 60000) / Average duration = max computing units for all computings in a max rhythm of 5min  ((warning) this gives a quick rough estimation, and does not reflect the final performances of your application).

Related Links