现在的存储设备分成了两大阵营,一般是物理机械盘,直接在本地存储,一种是网络磁盘,通过主机适配器,连接到磁盘机柜上,实现的是远程的传输。
一般情况下,我们是不应该干涉磁盘高速缓冲区的回写例程。Linux目前采用的是异步IO读写的方式,所以用户态调用的write函数只是将内容,刷新到页高速缓冲区,并没有真正同步到磁盘,相信读者能够自己调整O_SYNC穿透读写。
严重情况下,物理内存不足或者负载过重,出现两种问题,交换分区数据交换异常频繁,IO读写的负载出现写入的尖峰。对于磁盘机柜,由于是远程的传输,可以实现平滑的过渡,不至于大量的数据倾斜而下,实现稳定的读写对于整个传输的通道是相当有利的,避免磁盘机柜在某一小段时间正在进行其他的操作,导致数据丢失。
本地磁盘就不一样了,如果实现平滑的写入,必然导致IO负载过重,本地磁盘的特点是:寻址缓慢,每一个设备分区保存完整的写入请求队列。适当的调整,既不能频繁的刷新,本地磁盘寿命有限,也不能长久的写入,物理内存耗尽的情况,导致的问题相当严重:直接宕机。
时间: 2024-11-03 22:30:04