Hardware requirements and configuration¶
Setting up the hardware.
GMN is installed on a physical or virtual machine. Network connectivity is arranged so that GMN can be reached from the DataONE CNs and from clients. Typically, this means that GMN is set up to be globally accessible from the web.
GMN can be used in a mode where it provides a DataONE interface to data that is already available on the web. When used in this way, GMN must also have access to the web site which holds the data.
The requirements for RAM, CPU, disk and network resources are workload dependent. Below is benchmarks for two different setups.
Benchmarks¶
To give an indication of the hardware that may be required for hosting GMN, some benchmarks are provided.
Configuration of benchmarking scripts:
Concurrent calls per API: 5
Science object size: 1024 bytes.
Allow rules per object: 10
listObjects / getLogRecords page size: 1000 objects
Hardware configuration 1¶
Machine type |
Physical |
CPU |
Intel Core2 Quad Q6600 @ 2.40GHz |
RAM |
4GiB |
Disk |
5400 RPM SATA (I/O @ 60 MiB/s) |
API |
Transactions per second |
---|---|
MNStorage.create() |
9.8 |
MNRead.get() |
35.3 |
MNRead.listObjects() |
0.5 |
MNCore.getLogRecords(), paged, called by CN |
0.36 |
MNCore.getLogRecords(), specific object, called by regular subject |
40.6 |
Combination of MNStorage.create(), MNRead.get(), MNRead.listObjects() |
4.4 |
Combination of MNCore.getLogRecords(), MNRead.get() |
36.2 |
Hardware configuration 2¶
Machine type |
Virtual |
CPU |
Intel Xeon E7540 @ 2.00GHz |
RAM |
32GiB |
Disk |
NFS (I/O @ 45MiB/s) |
API |
Transactions per second |
---|---|
MNStorage.create() |
9.3 |
MNRead.get() |
5.6 |
MNRead.listObjects() |
0.35 |
MNCore.getLogRecords(), paged, called by CN |
0.2 |
MNCore.getLogRecords(), specific object, called by regular subject |
6.0 |
Combination of MNStorage.create(), MNRead.get(), MNRead.listObjects() |
2.8 |
Combination of MNCore.getLogRecords(), MNRead.get() |
5.24 |