Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
Overview

...

  1. Single server

    1. Hardware

      1. Ubuntu 14.04.3 LTS (trusty)
      2. 1 x Intel(R) Xeon(R) CPU E5-1630 v3 @ 3.70GHz
      3. 64Gb memory
      4. disk SATA 200Gb, cache read: 11641.27 MB/sec, buffered: 56.08 MB/sec
    2. Software

      1. Nuxeo CAP 6.0

        1. Jvm options: JAVA_OPTS=-Xms1024m -Xmx2048m  -Dfile.encoding=UTF-8 -Dmail.mime.decodeparameters=true -Djava.util.Arrays.useLegacyMergeSort=true  -Xloggc:${nuxeo.log.dir}/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

        2. JMX activated for Monitoring (only for benchmark with debugging for health constants)

        3. ACLOptimization = false (only for benchmark)

        4. Full-indexing = false (only for benchmark)
        5. NX-Quota = true
      2. PostgreSQL

        1. (PostgreSQL) 9.3.9

        2. postgresql-9.2-1002.jdbc4.jar 

        3. pg_clt options Empty(changed into postgresql.conf)
          1. default
          1. configuration from Nuxeo benchmark: --effective_cache_size=16GB --shared_buffers=10GB --max_prepared_transactions=128 --work_mem=64MB --maintenance_work_mem=1GB --wal_buffers=24MB --checkpoint_completion_target=0.8 --checkpoint_segments=32 --checkpoint_timeout=15min --default_text_search_config=pg_catalog.french --fsync=off --full_page_writes=off --log_min_duration_statement=80ms --log_rotation_size=100MB --synchronous_commit=off --track_activities=on --track_counts=on --log_line_prefix='%t [%p]: [%l-1] ' --port=5436 --max_connections=64 --random_page_cost=2
        4. Analysis: https://wiki.postgresql.org/wiki/Performance_Analysis_Tools
    3. Tools

      1. JMeter 2.13 to make stress test: GUI & REST (source: nuxeo-bench-jmeter.jmx)

        1. Memory: -Xms=1g -Xmx=2g

      2. jvisualvm to monitoring JVM

      3.  powa (http://dalibo.github.io/powa/) to monitoring PostgreSQL

...

Transactions per second

Hits per second

Response time vs Threads

Image Removed Image Removed Image Removed 
40/90/30

Transactions per second

Hits per second

Response time vs Threads

Image Removed Image Removed Image Removed 
50/120/50

 

Transactions per second

Hits per second

Response time vs Threads

Image Removed Image Removed Image Removed 


Postgres Read/Write
Query per secondBlocks per second
Image Removed Image Removed 


Configuration b)

    • PostgresSQL with pg_ctl options = '--effective_cache_size=16GB --shared_buffers=10GB --max_prepared_transactions=128 --work_mem=64MB --maintenance_work_mem=1GB --wal_buffers=24MB --checkpoint_completion_target=0.8 --checkpoint_segments=32 --checkpoint_timeout=15min --default_text_search_config=pg_catalog.spanish --fsync=off --full_page_writes=off --log_min_duration_statement=80ms --log_rotation_size=100MB --synchronous_commit=off --track_activities=on --track_counts=on --log_line_prefix='%t [%p]: [%l-1] ' --port=5433 --max_connections=64 --random_page_cost=2'
    • ACL optimization = false
    • full-text indexation = false
    • Quota-active = false

...

Transactions per second

Hits per second

Response time vs Threads

Image Removed Image Removed Image Removed 
40/90/30

Transactions per second

Hits per second

Response time vs Threads

Image Removed Image Removed Image Removed 
50/120/50

 

Transactions per second

Hits per second

Response time vs Threads

Image Removed Image Removed Image Removed 

 

Postgres Read/Write
Query per secondBlocks per second
Image Removed Image Removed 

 

 

Scenario 2: Document creation (REST API with automation)

...

NOTE: In 50/120/50 test, benchmark detect a detects vcs pool is fully used. Solved with change pool to 100 into db and vcs values, with 450 threads in server.xml in HTTP connector.

...

Transactions per second

Transaction throughput vs Threads

Hits per second

Response time vs Threads

50/120/50

 

Transactions per second

Transaction throughput vs Threads

Hits per second

Response time vs Threads

...