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