Linux交换,线性写/读

我感到困惑,如果Linux写入和顺序读交换

现在我对交换分区的分析压力很大,奇怪的是利用率接近90%(iostat中的util列),但2xSAS RAID1硬盘的吞吐量仅为10MB / s。

谷歌无法帮助

除了随机性之外,交换读取也可能被序列化。 请记住,虚拟机系统正在创造真正的内存的错觉,所以用户空间进程没有任何优化访问的机会。 从它的angular度来看,这只是内存,所以在任何其他事情发生之前必须先读取它。

序列化,随机读取的坏处在于它必须在发出下一个IO请求之前进行全程往返(请求,头寻道,盘转,读,响应)。

这意味着,在最坏的情况下,每个IOP(每个线程)有一个4KB的页面。 假设每个主轴250 IOPS,则只能获得500 IOPS,500 / sx 4KB = 2MB / s。 看来你还是比硬件最差的情况更好。 可能有些预读页面集群正在帮助你。

一般来说,写交换可以去任何地方交换是免费的,所以他们往往是顺序的。 从交换中读取必须是系统所需的特定数据,所以它们通常不是顺序的。