On this page
Algolia Servers Specs
We have one standard server setup:
- 6 cores CPU
- 12 threads
- 128 GB memory
- 2x800 GB SSD RAID-0
Our earliest configuration was already quite big: 4 processors, 8 threads, 32 GB RAM, and 2x120 GB SSD 320-series disks. However, we quickly found that each element needed improvement. For example:
We discovered that 4 cores and 8 threads were not always enough to handle large numbers of operations running in parallel. We ultimately went with 6 cores and 12 threads, which handles an ongoing flow of index operations without impacting the speed of the search. This upgrade also gives us a lot of extra processing speed to manage our servers’ system resources.
For the disks, we experimented with many kinds of SSD RAID-0 before choosing the right one. The current SSD S3500 series gives us a faster hard-drive, thereby removing a serious bottleneck to performance.
To strike the right balance of RAM and disk space, for both caching and data capacity, we ran through a number of use cases and engine tweaks and countless performance tests before arriving at the right amount of memory and disk size - no more no less. For example, we needed to increase the memory to process large indices while leaving enough space to perform in-memory searches.
To get an idea of the importance of balancing RAM size with the right number of cores and threads, consider large indices. Algolia puts every customer’s full index in RAM (for performance). Additionally, it breaks up large indices into smaller pieces, where each piece (shard) is given a dedicated thread on the same server. This permits faster updates and searches. Meanwhile, other threads are dedicated to processing searches, while still more threads are monitoring the system and managing consensus. As you can see, our machines require a large minimum of RAM + cores, with a reasonable buffer for flexibility.
To go into far more detail about our engine, take a look at our CTO’s 8-part series Inside the Engine.