How can I go about debugging my VPS’ upload (POST) speeds?

I have just purchased a $ 20 VPS from DigitalOcean and I ran some tests on it after installing the LAMP (7.2 PHP, 5.7 MySQL, CentOS 7) and running the speedtest test:

Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by Interserver, inc (Secaucus, NJ) [2.67 km]: 3.076 ms Testing download speed................................................................................ Download: 355.58 Mbit/s Testing upload speed................................................................................................ Upload: 834.49 Mbit/s 

All dandy…except, whenever I try to upload anything to the server itself through WordPress’ interface, it starts at ~4mb upload, then immediately drops to max 20kb / sec and because of the max execution time being set to 30, I can’t upload anything of importance.

So let’s test the write / read speeds:

dd if=/tmp/input.dat  of=/tmp/output.dat  bs=1000M  count=1000  oflag=dsync 0+1 records in 0+1 records out 536870912 bytes (537 MB) copied, 1.31683 s, 408 MB/s 

Looking good. I even set the usual culprits such as max_upload_size and post_max_size as well as others to absurd amounts just to see if that’s really the bottleneck but no luck.

Something smells here as I’m sure DO, a respectable company, even on their somewhat cheap VPS would still manage to not make them completely useless.

What could I use to debug this further? It makes me think that there’s some PHP misconfigutation.