Setup

  1. Version of Fedora
    1. 4.5.1-SNAPSHOT | Build #fd6f9da9 (2016-02-19) (https://github.com/fcrepo4/fcrepo4/pull/986 before squashing)
  2. Fedora Configuration
    1. JAVA_OPTS="-Dfcrepo.home=/var/lib/tomcat7/fcrepo4-data -Djava.awt.headless=true -Xmx8g"

    2. See below

  3. System details
    1. Fedora: VMWare VM configured with 4x 2.8GHz CPU, 16GB RAM
    2. JMeter: separate identical VM
    3. Network: 1000Mb/s ethernet

    4. OS: Ubuntu 14.04.3 LTS

    5. JVM: Oracle JDK 1.8.0_66-b17

    6. Servlet container: Tomcat 7.0.52

  4. Initial State of the Repository
    1. empty
  5. Number of Client Threads
    1. 1

Test

$HOME/jmeter/bin/jmeter -Dfedora_4_server=lib-fedora1 -Dfedora_4_context=fcrepo/rest -n -t $HOME/jmeter/fedora.jmx

Results

LevelDB

  1. Summary: 737,824 in 19,341s = 38.1/s, Avg: 21, Min: 8, Max: 5,413, Err: 1 (0.00%)
  2. Logs:
    1. jmeter: leveldb-jmeter.log
    2. containers: leveldb-containers.csv.gz
    3. perf: leveldb-perf.log

PostgreSQL

  1. Additional config: 
    1. JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.modeshape.configuration=classpath:/config/jdbc-postgresql/repository.json"
    2. PostgreSQL 9.3 running on same VM as Fedora
  2. Summary: 3,751,531 in 190,599s = 19.7/s, Avg: 46, Min: 7, Max: 19,416, Err: 0 (0.00%)
  3. Logs:
    1. jmeter: postgres-jmeter.log
    2. containers: postgres-containers.csv.gz
    3. perf: postgres-perf.log
  4. Note: the test was interrupted by a network interruption after 3.7 million containers were created

PostgreSQL (Modeshape 5)

  1. Version of Fedora
    1. 4.5.2-SNAPSHOT | Build #c94f9a93 (2016-06-06) (modeshape5 branch)
  2. Additional config: 
    1. JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.modeshape.configuration=classpath:/config/jdbc-postgresql/repository.json -XX:+UseG1GC -XX:+DisableExplicitGC"
    2. PostgreSQL 9.3 running on same VM as Fedora
  3. Summary: 17,017,228 in 564,606s = 30.1/s, Avg: 28, Min: 1, Max: 5,050, Err: 1 (0.00%)
  4. Test status: Test errored after receiving the error: "ERROR 23:31:38.442 (RepositoryExceptionMapper) Caught a repository exception: org.modeshape.persistence.relational.RelationalProviderException: java.sql.BatchUpdateException: Batch entry 1 INSERT INTO MODESHAPE_REPOSITORY (ID, CONTENT) VALUES ('936198c7505d64b3fa6b43-e4ad-432c-ae0a-7de3ae9046a6', ?) was aborted.  Call getNextException to see the cause."
  5. Logs:
    1. jmeter log: test4-postgres-mode5.log
    2. jmeter data: test4-postgres-mode5.csv.1.gztest4-postgres-mode5.csv.2.gz
    3. jmeter perf: test4-postgres-mode5-perf.log

PostgreSQL (Modeshape 5.1)

  1. Version of Fedora
    1. 4.5.2-SNAPSHOT | Build #4f31e2f9 (2016-06-28) (modeshape5 branch with update to 5.1 from awoods:fcrepo-2062)
  2. Additional config:
    1. JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.modeshape.configuration=classpath:/config/jdbc-postgresql/repository.json -XX:+UseG1GC -XX:+DisableExplicitGC"
    2. PostgreSQL 9.5 running on the same VM as Fedora
  3. Summary: 4,139,423 in 113,995s = 36.3/s, Avg: 23, Min: 1, Max: 2,351, Err: 0 (0.00%)
  4. Test status: Test manually stopped
  5. Logs:
    1. jmeter log: test4-postgres-mode51.log
    2. jmeter data: test4-postgres-mode51.csv.gz
    3. jmeter perf: test4-postgres-mode51-pref.log

 

3 Comments

  1. Andrew Woods, I'm running Test 4 with PostgreSQL, and it's currently at 2,933,752 in 127386s (23.0/s).  I was expecting it to finish after 2,000,000 based on our discussion at the previous performance meeting.  Is it supposed to stop at 2M? or some other number of resources created? I tried to read the JMeter config file but wasn't able to figure out what the upper limit was for number of resources created.

    1. I do not believe the JMeter configuration currently has an upper limit.

      1. OK, then I'll let it run until it fails the CRUD operations timeout test (or until something else interrupts it).