4

For this month I have rented two vServer, each from a different provider. Both indicated that the disks of the system use SSD technology (making me expect a bandwidth of at least 300MB/s and maybe more, as I know from experience in my laptop).

ssh'ing into the machines I found one to be rather sluggish with a task that requires rather more disk IO. I hence want to ask here how I could go about to benchmark if the advertised thing (having a SSD disk space) is indeed true.

I attempted

dd if=/dev/rootFssBlockDev bs=5M count=2000 of=/dev/null

and receveive those outputs.

hoster 1 (85.2MB/s)

dd if=/dev/rootFssBlockDev bs=5M count=2000 of=/dev/null
2000+0 records in
2000+0 records out
10485760000 bytes (10 GB, 9.8 GiB) copied, 123.05 s, 85.2 MB/s

hoster 2 (544 MB/s)

dd if=/dev/rootFssBlockDev bs=5M count=2000 of=/dev/null
2000+0 records in
2000+0 records out
10485760000 bytes (10 GB, 9.8 GiB) copied, 19.2678 s, 544 MB/s

To me the values benchmarked on host1 "smell" like they attempt to sell a HDD for an SSD (I actually feel kinda tricked). However this question seeks insight how else, I could confirm my assumption and hence test/benchmark that the offered machine (vServer) indeed inlcudes SSD disks.

Update

list of tools I also used for benchmarking (yielding similar results)

  • hdparm -t /rootFssBlockDev
  • fio (as suggested in this answer)

Maybe there is an answer that would provide an insight into the aspect that a key difference between HDD(platters) and SSD(flash) is the access speed in random access reads.
Since the answer of Michael Hampton suggests that there might be a slight possibility the poor performance would be from congestion, contested access from more virtual hosts sharing the same SSD. It appears to me that even in such a case there should be little further decline of access speed originating from the not sequential read, but random access read. Bottom line, is it not possible to infere SSD vs HDD from the characteristic decline in speed between sequential and random reads?

Update (fio results)

Here the results of the fio tool, showing stark contrast in random and sequential reading speed (while both seem low considering the SSD claim)

randread: (groupid=0, jobs=1): err= 0: pid=3593: Sat Sep 28 11:27:22 2019
   read: IOPS=229, BW=917KiB/s (939kB/s)(256MiB/286009msec)

seqread: (groupid=0, jobs=1): err= 0: pid=3635: Sat Sep 28 11:27:22 2019
   read: IOPS=3855, BW=15.1MiB/s (15.8MB/s)(1024MiB/67998msec)
  • Even if it did have SSD, how would you know it isn't oversubscribed? This is essentially the value proposition of the "cloud". Oversubscribed, underperforming crap. If you aren't getting the performance you want, move to another provider. – Greg Askew Sep 28 '19 at 13:41
  • @GregAskew if you advertise to offer SSD, a certain baseline speed seems very much implied. Frankly I think the provider is not 100% honest, given that certain characteristical differences between SSD/HDD simply do not go away only because there is more concurrent access. I am at present convinced that the harsh difference between random and sequential read can only be explained by it not being a SSD. Since SSD is used to imply a certain performance I will have to move on. sure. – humanityANDpeace Sep 28 '19 at 15:00
  • `a certain baseline speed seems very much implied.`. Implied is not an effective way to assure performance of a service. There are/should be SLA's with minimum performance measurements. – Greg Askew Sep 29 '19 at 16:24

1 Answers1

3

There is no reliable way to determine whether a virtual machine's backing store is based on SSD or not.

The hypervisor presents a completely virtual disk device to the virtual machine, and no attributes of the physical storage hardware are exposed. It might be local hard drives, local SSD, or remote storage, but this information is not given to the virtual machine. (Except in uncommon scenarios where a VM is passed through a complete physical disk; here it is usually possible to tell what the disk is, even getting its serial number, etc.)

The best you can do is to make inferences.


I would infer that a machine which could read 10 GB from storage at 544 MB/sec is likely on SSD storage. Those speeds are well within the range of speeds commonly seen from SSD drives.

I would not infer that a machine reading 10 GB at 85 MB/sec is on SSD storage. I would also be suspicious, as you are.

That said, it certainly is possible that the machine is SSD backed. It might also be overcommitted. On both of these hosts, you are not the only customer for the physical disk being used. Some other customers will also have virtual machines using the same storage.

It's possible that in the first case other customers were using disk so heavily at the time of the test that, despite being on SSD, 85 MB/sec is all you could reliably get. To test this hypothesis I would run the test again several hours later and look for a significant difference in speed. This would indicate a variable level of contention for the backing store. Similar speeds would indicate a similar level of contention, but that wouldn't tell you much of anything.


If the provider did promise you SSD storage, I would have a chat with them about this slow benchmark. It's certainly unexpected. If they couldn't come up with an adequate answer, I would stop worrying about whether the storage was SSD or not, and go somewhere else.

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940
  • thinking out of the box, but would you think it reasonable to use a random access scheme in the benchmark, as randomly distributed access should favour SSD, respectively disadvantage platter disks, so as to make the test more meaningfull? – humanityANDpeace Sep 28 '19 at 08:19
  • You are right with your last remark, and indeed I will go somewhere else and mainly used the vServer as a test of their "quality of service". However besides this practical/pragmatic advice, I was curious as regards to the technical background. – humanityANDpeace Sep 28 '19 at 08:51
  • You can certainly try a random access test (hint: `fio`). It might actually be useful. I just would never get that far; I would have rejected the VPS by this point. – Michael Hampton Sep 28 '19 at 09:17
  • @humanityANDpeace Your fio results are even worse now! Even if it somehow did turn out to be an SSD I wouldn't want to run anything there! – Michael Hampton Sep 28 '19 at 09:35