Performance difference between NYC1 and NYC3 or "volumes" performance?

Posted April 25, 2017 7.6k views
DigitalOceanBlock Storage


I recently migrated all my infrastructure (cluster of app and database servers) from NYC3 to NYC1 in order to use the volumes that DO introduced a short time ago. (And yes I migrated because of that..).

Following the migration, I noticed a decrease in performance for servers that require lot of write/read operations, such as my master database and application servers.

As the only difference before and after the migration are the usage of “volumes” and the change of Datacenter, I’m therefore wondering if:

  • Using “volumes” instead of the droplet storage may decrease performance?
  • There are any differences between techs used in NYC3 and NYC1 that may explains changes in performances?


These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers

Hi @mmb

I don’t have an answer, since most of us in here don’t work for DO, but let’s see if Darian (the platform advocate of DO) can give us an answer.

I would speculate that block storage is a little slower, since it’s network based and I would guess droplet storage is physical on each hypervisor.
And depending on who your neighbors are, then there could be a speed difference, but I don’t know if there is any hardware difference.

@dwilkin Hi Darian, can you help answering this? 1) Is block storage slower the droplet storage. 2) Is there droplet HW difference between NYC3 and NYC1.

  • @mmb Happy to provide more information on this!

    The difference here is 100% down to the usage of volumes over Droplet storage. This is, as @hansen mentioned, because I/O for volumes runs over the network rather than to a SATA attached SSD like Droplet storage does.

    I/O for volumes will be slower than I/O for Droplets, but it should still be pretty fast! There is a possibility, however, that the network in the datacenter could become congested and that could cause some latency with I/O operations, though that’s pretty rare as we’re constantly upgrading our datacenter networking infrastructure.

    I’d also like to assure you that there’s no overall hardware difference between the datacenters. There is, however, often a slight hardware difference between different Hypervisors in a datacenter. This is because we’re constantly upgrading and replacing old parts, which effectively means rolling upgrades happen regularly.

    I hope that clears things up! Please don’t hesitate to open a ticket if you have more questions :)

    Platform Support Advocate
    Don’t forget to check out our fantastic community articles!

    • Hi @dwilkin ,

      Thanks for your answer. And thanks @hansen as well for redirecting me to @dwilkin

      It’s a big surprise for me to see that “I/O for volumes will be slower than I/O for Droplets”.

      The main issue is that now I’m using “volumes” for all my databases’ servers. And I can really feel the difference in term of performances. It’s a big big big downside.

      When you need to storage backups, files, etc, it’s fine, but for active database it’s catastrophic.

      I guess it should be something that moderators have to mentions in the DO tutorials on how to use block storage such as here and here.

      It’s even more frustrating as I migrated to NYC1 only for that…

      by Melissa Anderson
      Databases grow over time, sometimes outgrowing the space on the file system. You can also run into I/O contention when they’re located on the same partition as the rest of the operating system. RAID, network block storage, and other devices can offer redundancy and other...

@mmb I noticed the exact same thing when trying to use DO block storage as a filesystem for databases.

I haven’t made a scientific test but compared the performance in a real world application and noticed that using block storage is 10 times slower than using the droplets internal storage.

Creating Database, User, Password, Flushing privileges and Importing a 44KB mysql dump with attached block storage:

Execution time : 4.2606270313263 seconds
Execution time : 4.2530460357666 seconds
Execution time : 4.1727960109711 seconds
Execution time : 4.3930230140686 seconds

Doing the exact same thing directly on the Droplet:

Execution time : 0.58489298820496 seconds
Execution time : 0.44117593765259 seconds
Execution time : 0.5139148235321 seconds
Execution time : 0.4229941368103 seconds

So this basically rules out using DO block storage for anything other than backups or static files. Let me know if you found another solution,