1

I am trying to understand some basics in the I/O area. What I want to know is when people talk about disk I/O speeds on a standard HDD, are the speeds mentioned taken at a physical disk level or based on logical partitions? The reason I am asking this is also because many places where I researched, the question is asked about disk, especially with linux, and in the results or answers people usually refer the mount points that exist in the system and both parties are in consensus. I feel, the terms disk and partitions are used interchangeably which is what confuses me.

I am using some distributed applications for which the disk I/O speeds are vital. Right now, I have one single physical disk with multiple mount points on the same. So here, if the disk I/O max capacity is say 70 MB/s, does it mean that all mounts put together, I can only get upto 70 MB/s (meaning the speed is physical disk not partition based) even if the application can push more data in parallel to multiple mount points faster than that or can I get each partition to max out at 70 MB/s? I am inclined towards thinking that it is physical disk based. I just need some additional validation and maybe some material where I can gain some more knowledge regarding this topic. If it is disk based, I am considering adding more disks so that the application can get some extra speed.

3

The disk I/O speed is determined by the physical characteristics of the hardware: The speed of the bus (SCSI, USB, whatever) where the disk is attached, and the speed of the disk itself (which is always an average, and you have to take disk-internal buffers into account).

From an I/O speed aspect, it doesn't make any difference if you do I/O inside logical partitions, inside files, or do raw I/O on the whole disk.

So yes, if you have a single physical disk with many partitions ("mount points"), the total speed will be capped by the physical I/O speed of the single disk. It will actually be worse, because the partitions are on different areas of the platter, and the head will have to move ("seek") if you write to several partitions at once.

If instead you have multiple physical disks, each for one of your mountpoints, in theory they can work in parallel, and the I/O speed of the physical disks adds up. This only works to a certain point, of course, your computer internal busses also have a bandwidth limit, and you can't feed arbitrarily many disk controllers with data at full speed.

So yes, adding more disks can get you extra speed (unless the limitation is not in the physical disk I/O, but somewhere else).

  • you could gain in speed of access placing your most used partition in the first block because the disk is accessed marginally quicker on the inside than on the outside where it needs more movement to read the same amount of data than near the center. this being of course of no use with SSD and less important with 2.5" harddrive – Kiwy Apr 27 '18 at 12:37
  • @dirkt Thanks for the answer. So, from what I understand, if I have to take full advantage of the speed, I can only add so many disks whose I/O speeds in their sum total is approximately close to the bandwidth of the internal bus. Right? Adding any more would give me more storage but not speed. – KNP Apr 27 '18 at 15:21
  • @Kiwy, Interesting point. Although, I did not understand the part about the 2.5" Hard drive. If you could share some details on why it is so because the hard drive I am using is a 2.5" Hot-plug Hard Drive. – KNP Apr 27 '18 at 15:24
  • @dirkt To be precise, I am using a SATA 6Gbps 2.5in Hot-plug Hard Drive, so basically, I can maybe use upto 7 or 8 disks to get close to best speeds possible? – KNP Apr 27 '18 at 15:30
  • 7-8 disks sounds like a realistic number. In doubt, start with fewer, add them, and measure. The kind of disks you use also make a big difference. And remember, the bottleneck may not be physical I/O bandwidth, but something in your application. – dirkt Apr 28 '18 at 5:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.