linux 2.6.43,ext3,10K RPM SAS磁盘,2个顺序写入(直接io)在不同的文件上,就像随机写

时间:2015-07-16 04:26:34

标签: linux disk ext3

我最近在这个问题上停滞不前:

  

“2顺序写入(直接io 4KB alignemnt块)在不同的文件上,就像随机写入一样,在10K RPM SAS磁盘中产生差的写入性能”。

最让我困惑的是:我有一批服务器,都配备了相同类型的磁盘(raid 1配有2个300GB 10K RPM磁盘),但响应不同。

  
      
  • 有几种服务器可以接受这种写模式,磁盘快乐接受高达50 + MB / s;   (相同的内核版本,相同的文件系统,具有不同的lib(libc 2.4))
  •   
  • 其他不是那么多,100 op / s接缝达到底层磁盘的限制,这确认了磁盘的随机写入性能;   ((相同的内核版本,相同的文件系统,具有不同的lib(libc 2.12)))
  •   

[注意:我检查了不同libc的“pwrite”代码,除了简单的“系统调用”之外什么都没有说明]

我设法排除了可能: 1.我自己的程序中的软件错误;    通过一个简单的deamon(没有动态链接编译),sequcetial direct io write; 2.磁盘问题;   在一台测试机上切换2个不同版本的linux系统,这对我的直接io写模式表现不错,并且在切换到旧的lib版本后的几天,坏随机写;

我尝试比较:

  
      
  1. / sys / block / sda / queue / *,这两种方式可能不同;
  2.   
  3. filefrag只显示两个不同的文件交错顺序增长物理块ID;
  4.   

必须有某种写策略导致这个问题,但我不知道从哪里开始:

  
      
  1. 不同的内核设置?,可能与ext3如何分配磁盘块有关?
  2.   
  3. raid缓存(写回)或磁盘缓存写策略?
  4.   
  5. 或将逻辑块映射到真实物理块的底层磁盘策略?
  6.   

真的很感激

1 个答案:

答案 0 :(得分:0)

ANS是: 它是因为/ sys / block / sda / queue / schedule设置:

  
      
  1. 机器A:显示时间表:cfq,但是未完成,它的截止日期;
  2.   
  3. 机器B:时间表与cfq一致;   // =>   由于我的服务器是db svr,截止日期是我最好的选择;
  4.