引用:
作者cmwang
如果是latency的狀況那為何sequential read不會卡在16xMBps,而sequential write會啊(暫且忽略read/write底層I/O的差異   )....
|
這你應該是誤會了.問題並不是sequential write效能是否卡在160MB/s,而是"受到遞延延遲的影響後,硬碟的peak sequential write從192MB/s降到162.7MB/s"這點.
從理論上來分析是這樣的:
讀取:CPU-->DMI Bus--> PCH-->PCIe Bus-->擴充卡-->硬碟-->擴充卡-->PCIe Bus-->PCH--->CPU
寫入:CPU-->DMI Bus--> PCH-->PCIe Bus-->擴充卡-->硬碟(是否經過PCIe-->擴充卡這段要看資料放在哪裡而定)-->擴充卡-->PCIe Bus-->PCH--->CPU-->DMI Bus--> PCH-->PCIe Bus-->擴充卡-->硬碟
由於比讀取多了一段寫回因此寫入動作受到的影響相較於讀取會有明顯的加乘效果.
以原PO貼出來的數據,我們可以看到以下情況:
讀取:
連續最低值:91.1MB/s VS 91.1MB/s
連續最高值:193.8MB/s VS 192.6MB/s
平均值:152.3MB/s VS 152.0MB/s
存取時間:15.5ms VS 15.5ms
暴衝值: 248.9MB/s VS 322.3MB/s
CPU負載: 1.8% VS 0.5%
寫入:
連續最低值:89.8MB/s VS 87.8MB/s
連續最高值:162.7MB/s VS 191.5MB/s
平均值:144.8MB/s VS 148.7MB/s
存取時間:14.2ms VS 14.5ms
暴衝值: 198.4MB/s VS 186.7MB/s
CPU負載: 1.8% VS 0.5%
在多了一層遞延延遲後,可以明顯看到讀取部分的暴衝值(此為使用者無法感受到的差異)掉了29.5%,寫入則是因為比讀取又多了一段遞延延遲,暴衝值打從一開始就跑不高了,進而影響到第二層的瞬間效能差異(一樣是使用者無法感受的差異),也就是代表瞬間最大值的連續最高值,差異為17.7%.考量到遞延延遲所造成的影響,只能說Intel真的暴猛,在這種不對等的情況下還能夠做到均速幾乎不受到影響.這也是為什麼我從一開始就說很肯定的說這不只不是問題,還已經是很優的數據的主要原因.
參考看看囉.