ionice 如何与多个驱动器一起工作?

use*_*726 7 performance filesystems ionice priority

我知道ionice当您有多个进程请求访问相同的磁盘资源时如何帮助您,但是当您有多个磁盘时它如何工作?

例如,您有一个rsync操作从Drive A -> Drive Brsync移动数据,另一个操作从Drive C -> Drive D移动数据。

从理论上讲,由于它们不竞争资源,因此ionice这些rsync进程之一不应改变其吞吐量。这是它的工作方式,还是会影响性能?

此外,在独立于驱动器速度的linux系统上可能遇到的总I/O是否有一些“上限” ?就像连接 100 个SSD驱动器一样,在某些时候,操作系统会遇到驱动器速度之外的瓶颈吗?

str*_*ika 1

在 Linux 上,驱动器的调度是相互独立的。您甚至可以通过写入/sys/block/<device>/queue/iosched.

内存和磁盘之间的带宽确实会成为瓶颈。这就是硬件 RAID 有意义的原因:数据一次发送到 RAID 控制器,而不是分别发送到每个磁盘。您还可以通过将这 100 个 SSD 连接到多台计算机来增加带宽,并在它们之间分配负载。

我不确定 IO 调度程序如何考虑到这一点,但我认为不会。