由于工作需要,需要对文件系统和网络性能等进行测试:
  一、文件系统测试
  fio: 直接读取盘符下的data目录,测试结果和自己写程序,open(,DIRECT_IO)的结果几乎相近,很有说服力。
  iozone:能测多种读写方式,还能自动生成测试报告,可惜,即使指定屏蔽缓存,测试结果也不如fio真实。
  dd:这是简单的测试工具了
  测试读:dd if=filepath of=/dev/null bs=2M count=512
  测试写:dd if=/dev/zero of=filepath bs=2M count=512
  经过测试基本可以得到如下结论:
  1. iozone指定-I选项后(屏蔽系统缓存),读的效率是原来的1/10,写的性能比原来略高;
  2. fread和fwrite有自己的缓冲区大小,在指定的缓冲区逐渐变大的过程中,fread的效率呈现为锯齿波状;
  3. dd在测试的时候,好选择比内存大的文件来进行测试;而且以第一次的为准。(猜测应该是读文件的时候,系统把磁盘中的内容通过换页缓存到了内存中,如果文件可以是内存的两倍,那么可以很好地把内存清洗一遍,测试结果也会更真实;当然写的时候也会在不断刷新内存的时候强制把数据刷到磁盘中,文件越大,测试结果也越真实)
  4. 测试结果:
  SAS的读250MB/s左右,
  SSD的读870MB/s左右;
  RAID之后的SAS,RAID几是几倍,当然会有损耗,10个的读1.6GB/s;
  MFS不管chunkserver在SAS或SSD上,同一台服务器,读都约为100MB/s;
  二、网络带宽测试
  1、iperf:通过调整窗口来测试带宽的,测试的结果应该接近真实,但是相对于实际应用偏高;
  2、ethtool -eth0:可以直观的看见指定网卡的带宽;
  3、wget、curl等:在服务端部署文件和nginx服务器,客户服务器下载把目标文件指向/dev/null,测试结果肯定比前两个的低。
  4、测试结果:(实际上网卡是肯定跑不满的)
  千兆网卡,大带宽:117MB/s
  百兆网卡,大带宽:12MB/s