Discover factors affecting Vultr Block Storage performance, including block size, caching, IO scheduling, and VPS plans.
This is a complex question that depends on many variables, including the client operating system, the applications accessing the storage, and the specific workload generated by those applications. In general, all of the following factors can have a significant impact on the overall performance observed:
Operating system and application block sizes often default to small values (4 KiB is typical) . This is often too small to dispatch efficiently for achieving maximum throughput. Try larger block sizes such as 16 KiB or 64 KiB to seek out the optimal setting.
Caching can make a great difference, both in terms of automatic operating system page caches and internal application maintained caches. Consult documentation and guides for the OS and application to see what they offer in terms of cache tuning. The amount of memory that can be allocated for caching will also depend on the RAM available to the client, so larger VM plans will tend to be able to make the most use of large caches.
IO scheduling, queue depths, and dispatch priorities in the operating system (or application when userspace managed) will impact the order and structure of IO requests to all devices including block storage. If any layer of the stack can do dynamic merging of small requests in order to batch them, this will often trade slightly higher latency for better throughput.Setting more important applications to have higher CPU and IO priorities can allow them to perform better at the expense of less time critical tasks as well.
VPS plan types may have an unusually large impact sometimes, especially when comparing dedicated plans to shared plans. A VPS is a virtual machine that ultimately relies on its host node to provide resources to do work, and as such if the guest VM is not receiving enough CPU time, local disk IO, or network bandwidth to fully execute its workload, it will experience a slowdown to all types of its operations including access to block storage. As a result, upgrading or changing a plan type can provide the boost which finishes operations on time.
There are many additional considerations within this complex topic. It is strongly recommended to review performance tuning guides for your applications and operating system, particularly those designed with network storage in mind.