You are likely hitting the IOPS limit. 550r/s is quite enough to
saturate
4xSATA 7200 in RAID10. There are reads of 64 of something per request
in average. I’d first look at what does something designated as “rsec/s”
exactly mean in linux terms here.
can you tell use the HDD modell you are currently using? And are you
using real dedicated servers or some kind of virtualization?
Current SATA disks (Seagate ST1000DM-003 for example) are able to
provide an avg speed of 190MB/s (keep in mind: It’s their avg speed.
So when the disk is full, the speed will drop).
When you reach the disk limit, you would add more spindles (e.g. add
more disks). Do your own math. Calculate how many IOPS one user needs
(if you cannot calculate IOPS, just calculate in MB/s for the
beginning). For example:
Your videos have an avg bit rate of ~8000kbit/s (HD videos).
To serve one stream, you would need at least 1 MB/s disk speed.
So using a disk with avg speed of ~120 MB/s will allow you to serve
~100 concurrent requests (we keep a 20% buffer, to be sure). Keep in
mind that in this example, the disk is dedicated to serve your videos
only. If you run your web, mail and streaming server on the same
disk… :>
BTW: Serving ~100 concurrent HD streams would utilize one 1 Gbit uplink.
Now, doubling the spindles (=add one more disk, RAID 0) would allow
you to serve 200 concurrent requests (you want to go with RAID 10, to
add redundancy).
Doing the calculation in MB/s is not as accurate as doing the
calculation in IOPS, but it’s better than nothing.
Yes, you should buy real SAS server disks. Don’t ever use green SATA
disks in servers
But when your current disks only provide 30MB/s make sure if it is
their limit or if there is another problem (for example the alignment
problem Sergey mentioned). That’s why I ask you for the modell in the
beginning.