Setup
- Version of Fedora
- 4.5.1-SNAPSHOT | Build #fd6f9da9 (2016-02-19) (https://github.com/fcrepo4/fcrepo4/pull/986 before squashing)
- Fedora Configuration
JAVA_OPTS="-Dfcrepo.home=/var/lib/tomcat7/fcrepo4-data -Djava.awt.headless=true -Xmx8g"
See below
- System details
- Fedora: VMWare VM configured with 4x 2.8GHz CPU, 16GB RAM
- JMeter: separate identical VM
Network: 1000Mb/s ethernet
OS: Ubuntu 14.04.3 LTS
JVM: Oracle JDK 1.8.0_66-b17
Servlet container: Tomcat 7.0.52
- Fedora: VMWare VM configured with 4x 2.8GHz CPU, 16GB RAM
- Initial State of the Repository
- empty
- Number of Client Threads
- 1
Test
$HOME/jmeter/bin/jmeter -Dfedora_4_server=lib-fedora1 -Dfedora_4_context=fcrepo/rest -n -t $HOME/jmeter/fedora.jmx
Results
LevelDB
- Summary:
737,824 in 19,341s = 38.1/s, Avg: 21, Min: 8, Max: 5,413, Err: 1 (0.00%)
- Logs:
- jmeter: leveldb-jmeter.log
- containers: leveldb-containers.csv.gz
- perf: leveldb-perf.log
PostgreSQL
- Additional config:
JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.modeshape.configuration=classpath:/config/jdbc-postgresql/repository.json"
- PostgreSQL 9.3 running on same VM as Fedora
- Summary:
3,751,531 in 190,599s = 19.7/s, Avg: 46, Min: 7, Max: 19,416, Err: 0 (0.00%)
- Logs:
- jmeter: postgres-jmeter.log
- containers: postgres-containers.csv.gz
- perf: postgres-perf.log
- Note: the test was interrupted by a network interruption after 3.7 million containers were created
PostgreSQL (Modeshape 5)
- Version of Fedora
- 4.5.2-SNAPSHOT | Build #c94f9a93 (2016-06-06) (modeshape5 branch)
- Additional config:
JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.modeshape.configuration=classpath:/config/jdbc-postgresql/repository.json
-XX:+UseG1GC -XX:+DisableExplicitGC"- PostgreSQL 9.3 running on same VM as Fedora
- Summary:
17,017,228 in 564,606s = 30.1/s, Avg: 28, Min: 1, Max: 5,050, Err: 1 (0.00%)
- 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."
- Logs:
- jmeter log: test4-postgres-mode5.log
- jmeter data: test4-postgres-mode5.csv.1.gz, test4-postgres-mode5.csv.2.gz
- jmeter perf: test4-postgres-mode5-perf.log
PostgreSQL (Modeshape 5.1)
- Version of Fedora
- 4.5.2-SNAPSHOT | Build #4f31e2f9 (2016-06-28) (modeshape5 branch with update to 5.1 from awoods:fcrepo-2062)
- Additional config:
JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.modeshape.configuration=classpath:/config/jdbc-postgresql/repository.json
-XX:+UseG1GC -XX:+DisableExplicitGC"- PostgreSQL 9.5 running on the same VM as Fedora
- Summary:
4,139,423 in 113,995s = 36.3/s, Avg: 23, Min: 1, Max: 2,351, Err: 0 (0.00%)
- Test status: Test manually stopped
- Logs:
- jmeter log: test4-postgres-mode51.log
- jmeter data: test4-postgres-mode51.csv.gz
- jmeter perf: test4-postgres-mode51-pref.log
3 Comments
Esmé Cowles
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.
Andrew Woods
I do not believe the JMeter configuration currently has an upper limit.
Esmé Cowles
OK, then I'll let it run until it fails the CRUD operations timeout test (or until something else interrupts it).