← Back to team overview

dhis2-devs team mailing list archive

Server specifications

 

Hi all,

in version 2.11 and later DHIS performs aggregation on-the-fly as opposed
to pre-aggregating data into data marts.

This raises the bar a little on your server's specifications, mostly in
terms of available RAM and disk read speeds.


Some rules-of-thumb server recommendations:


- RAM: At least 1 GB memory per 1 million captured data records per month
or per 1000 concurrent users. At least 4 GB for a small instance, 12 GB for
a medium instance.

- CPU cores: 4 CPU cores for a small instance, 8 CPU cores for a medium or
large instance.

- Disk: Ideally use an SSD. Otherwise use a 7200 rpm disk. Minimum read
speed is 150 Mb/s, 220 Mb/s is good, 350 Mb/s or better is ideal.


So we encourage you to invest in appropriate hardware to continue to
benefit from all the new features in DHIS. Hardware prices are coming down
and value for money is increasing at vps' like linode <http://linode.com>
 and digitalocean <http://digitalocean.com>.


regards,

Lars

-----

PS. For server admins, here are some tips to measure hard disk/drive read
speeds on Linux:

- Use the hdparm utility which will give you approximate read speed:

sudo hdparm -Tt /dev/sda


- If you are on a virtual server image without /dev/sda you can generate a
random file and test write and read speed like this:

dd if=/dev/zero of=testfile bs=4k count=2000000

dd if=testfile of=/dev/null bs=4k count=2000000


- To do a real-life test, you can install iotop (sudo apt-get install
iotop) and run it with

sudo iotop

then start DHIS in a new terminal and load a very large pivot table, then
monitor read speed from iotop. You should be seeing read speeds around 12 -
25 Mb/s. Be aware that database queries will be cached after some time.

Follow ups