NVME storage in web hosting
All storage on Slicie is backed by NVMEs, and here we discuss the benefits of NVMEs on our infrastructure.
An "NVME" is a way of referring to a storage device that uses the NVME technology. It describes a "non-volatile" storage (the "N" and "V"), which means that whatever you store on the device will persist when it is unpowered. Unlike NVME storage, most RAM is "volatile", meaning that when RAM is unpowered, it loses the data stored on it. The "M" refers to "memory", indicating it can store data. The "E" refers to "Express", meaning it is connected via a "PCI Express" interface.
So while technically "NVME" does not refer to an actual device, in common terms, when someone says they "bought an NVME", they're referring to a storage device that uses the NVME specification.
For a very long time, persistent ("non-volatile", e.g. "NVME") storage was attached using one of two different hardware interface types. The cheaper and most common is the SATA interface, and there is also the more expensive SAS interface. The SAS interface, which we do use for non-NVME storage, is capable of very high throughput similar to NVME storage.
The performance benefit of NVME is not realized when storing large amounts of data, though it is significantly more powerful in that regard than SATA. Because NVMEs are attached using a PCI-Express interface, they are capable of doing IO tasks with lower latency. This means that when your server wants to store data, especially a small amount of data (like a database update), it can do so quicker.
The benefits and drawbacks of an NVME vary dramatically by the model of NVME. While generally NVMEs perform better than storage using SATA, there are tremendous variations in NVMEs on the market today.
At the time of writing, Intel Optane provides the best performance for virtual machines. It also guarantees the most consistent quality of service, ensuring that every IO is fast, even under heavy use. Intel Optane NVMEs are designed to be heavily used, unlike many other NVMEs. It is the most expensive NVME, but it also suits our storage infrastructure very well. Every time you write data on our infrastructure, it is writing to NVME storage. For this reason, we do a very high amount of writes to our NVME infrastructure, and Intel Optane NVMEs offer the best endurance on the market. There are other features of these NVMEs that benefit our infrastructure, such as their ability to safely store data in the unlikely event of a power failure.
On Slicie, servers are backed with a RAID 1 (mirror) of Intel Optane NVMEs. For more demanding servers, we may have multiple mirrors to accommodate extreme performance demands.
Basically all write operations perform better against high quality NVMEs, especially Intel Optane NVMEs we use on our servers.
Depending on your current server infrastructure, you may see a tremendous improvement in write performance on Slicie. This has the benefit of ensuring that for almost any reasonable use case, your application will never be waiting on your storage to write data. This can have significant implications for doing things like making application-layer backups.
When considering a webhosting provider, NVMEs are generally a benefit. This is because higher quality NVMEs are capable of handling a much deeper "queue depth" (like a waiting list for storage requests). When a physical server hosts many virtual machines, it's important that the underlying storage is capable of "multitasking", and quickly serving lots of different IO requests at once.
Your host might buy cheap NVMEs
Unfortunately because there are so many different types of NVMEs, you really aren't guaranteed that you'll see any benefit. Now that NVMEs are, in some cases, cheaper than normal SSD storage, many web hosting providers will advertise that they use NVMEs. The reality is though, you don't know the quality of what you're getting. We buy the best NVMEs on the market, so we know we outperform our competitors.
Anything that is frequently read from your storage device will be stored in the "page cache" of your operating system, assuming you have enough free memory. So in reality, the speed your page loads in may not actually improve going from a slower storage to NVMEs. A typical web application will have 100% of its data read from the page cache, and not from the underlying storage device.