Throughput between my local device and Digital Ocean droplet is low


I have spun up a shared-regular CPU type droplet that is hosted in the same city as me. I have a 1Gbps internet connection at home, a very capable firewall appliance and PC with 2.5GbE intel i226-V NICs. I get around 950 Mbps download and upload speed by doing a regular speedtest on my local device.

I have tested the network speed of the droplet itself using Speedtest-CLI and got pretty decent results (Download - 3800Mbps | Upload - 1800Mbps). However, when I host iperf3 server instance on my local machine and setup a client instance on my droplet (Basically testing download throughput), I only get about ~700Mbps. And reversing the setup for an upload throughput test, I get only about 350Mbps. . What could be the issue here? Is there something I can do about this? Is it a limitation with the droplet?

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

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.

Bobby Iliev
Site Moderator
Site Moderator badge
December 17, 2023

Hey there,

The difference in throughput between your local device and your DigitalOcean Droplet, despite both having high-speed internet capabilities, could be due to a variety of factors.

The path your data takes through the internet can significantly impact throughput, even if the server and client are in the same city.

  • Run MTR: mtr is a powerful tool that combines the functionality of traceroute and ping. It can help identify where packet loss or latency issues are occurring along the route.

    To use mtr, run:

    mtr -rw [Droplet IP]

    This command provides a report on the network route from your local machine to your DigitalOcean droplet.

  • Analyze Route Changes: Pay attention to any nodes in the route that have high latency or packet loss, as these can be indicative of network congestion or suboptimal routing.

You can also try adjusting your testing methodology to get a better picture of the issue.

  • iPerf3 Adjustments: Experiment with different iPerf3 settings to optimize the test. For instance, increasing the number of parallel client threads can provide a better picture of maximum throughput.

    To run iPerf3 in parallel mode, use:

    iperf3 -c [Droplet IP] -P 10

    This command initiates a test with 10 parallel threads.

  • Vary Test Conditions: Change the duration of the test, and if possible, test at different times of the day to account for potential peak times.

If the above steps don’t reveal any clear issues or solutions, reaching out to DigitalOcean’s support might be necessary. They can provide insights into any potential Droplet-specific limitations or network issues in their data centers.

Hope that helps!

- Bobby.

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel