Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1340862
  • 博文数量: 166
  • 博客积分: 46
  • 博客等级: 民兵
  • 技术积分: 4061
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-11 13:45
个人简介

现任职北京某互联网公司运维经理,高级架构师,涉足互联网运维行业已经超过10年。曾服务于京东商城,互动百科等互联网公司,早期运维界新星。 长期专研,C语言开发,操作系统内核,大型互联网架构。http://www.bdkyr.com

文章分类

分类: 系统运维

2013-12-18 09:30:21

      服务器硬盘测试方法很多,在我们的环境,常用的参考方法如下所示,当你看完以后,不妨采用以下。


一、服务器硬件的设置:

      Raid
设置:
      Raid type: Raid0, StripSize: 64KB, I/O Policy: Direct, Default Write: Write Back with BBU

    硬盘设置:
WCE=0
二、具体的测试方法,以脚本实现

#!/bin/bash

# create by xk
# date 2013-12-17

LOG_PATH=/home/xuekun

#init
>stat_W.log
>stat_R.log
#write
for Wm in {dsync,direct}
do
   echo ${Wm} >>stat_W.log
  #test
  #echo ${Wm}
  for((i=64;i<=1024;i+=i))
  do
    #init log file
    echo  >${LOG_PATH}/tempfile_W_${i}.log
    COUNT=$((2097152/${i}))
    dd if=/dev/zero of=/dev/sdb bs=${i}k count=${COUNT} oflag=${Wm} 2>${LOG_PATH}/tempfile_W_${i}.log
    echo -n ${i}----- >>stat_W.log
    grep GB tempfile_W_${i}.log |awk -F "," '{print $3}'|awk '{print $1,$2}' >>stat_W.log
    #echo "bs=${i}k------------coutn=${COUNT}"
  done
done

#read
for((i=64;i<=1024;i+=i))
do
    echo "direct" >>stat_R.log
    #init log file
    echo  >${LOG_PATH}/tempfile_R_${i}.log
    COUNT=$((2097152/${i}))
    dd if=/dev/sdb of=/dev/null bs=${i}k count=${COUNT} iflag=direct 2>${LOG_PATH}/tempfile_R_${i}.log
    echo -n ${i}--- >>stat_R.log
    grep GB tempfile_R_${i}.log |awk -F "," '{print $3}'|awk '{print $1,$2}' >>stat_R.log
    #echo "bs=${i}k------------coutn=${COUNT}"
done

      结束语:测试结束以后,无论结果如何,我们一定要知道原因在哪儿?即硬盘IO高,为什么;IO低,为什么。在你的脑海里,要形成一个应用场景,然后尝试着模拟,加以优化改造,验证想法的真实可行度。
阅读(6711) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~