The Fedora community has conducted a number of performance tests. The details of each test, including testing parameters and results, are included in the following sections.
A number of factors influence Fedora 4 performance, such as:
- Server hardware (CPU, disk, memory, network bandwidth)
- Repository configuration (storage, indexing and sequencers configured)
- Data (number of child resources)
For best performance, we recommend:
- Configure Java to have a large heap size, e.g.,
- Limit the number of children under a single resource – ideally to 1,000 or less. Consider using a hierarchy to organize resources, e.g., storing the resource with ID
12345678at the path
/12/34/56/78. Automatically-generated identifiers will use this pattern.
- Particularly when working with files larger than available memory, use Infinispan file storage (e.g.
-Dfcrepo.modeshape.configuration=config/single-file/repository.json) or . Federation avoids having to transfer files using HTTP – and with larger file sizes (or with larger numbers of files being processed), this can improve performance significantly.
Single Node Performance Testing
- See Ingest Test Matrix.
Updating content in Fedora 4 is generally faster than in Fedora 3.
Large File Ingest and Retrieval
Arbitrarily-large files can be ingested (or projected into the repository using filesystem federation) and downloaded via the REST API (tested up to 1TB). The only apparent limitations are disk space available to store the files, and a sufficiently large Java heap size (tested with -Xmx2048m).
Clustered Performance Testing
Ingest and read/update/delete testing on multiple servers configured as a cluster.
CRUD testing on multiple servers configured as a cluster with a load balancer.
Reports of real-world ingest and performance testing.