CN104809042A - 一种基于iozone的硬盘性能测试的方法 - Google Patents

一种基于iozone的硬盘性能测试的方法 Download PDF

Info

Publication number
CN104809042A
CN104809042A CN201510204134.XA CN201510204134A CN104809042A CN 104809042 A CN104809042 A CN 104809042A CN 201510204134 A CN201510204134 A CN 201510204134A CN 104809042 A CN104809042 A CN 104809042A
Authority
CN
China
Prior art keywords
disk
hard disk
iozone
test
echo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510204134.XA
Other languages
English (en)
Inventor
闫硕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510204134.XA priority Critical patent/CN104809042A/zh
Publication of CN104809042A publication Critical patent/CN104809042A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于iozone的硬盘性能测试的方法,其具体实现过程为:识别本服务器所有的硬盘或者raid阵列;对硬盘或者raid阵列进行分区,格式化和挂载;根据实际配置修改将测试参数传递给性能测试脚本;开始性能测试,并输出结果。本发明方法在各种配置上都可以应用,可以灵活、便捷的根据不同配置修改测试参数来调用iozone测试硬盘性能,解决了单一使用iozone的测试局限性,丰富了测试手段,更好的检测部件的性能。

Description

一种基于iozone的硬盘性能测试的方法
技术领域
本发明涉及计算机服务器技术领域,具体涉及一种基于iozone的硬盘性能测试的方法,是一种实用性强,可以针对不同配置使用iozone对硬盘进行性能测试的方法。
背景技术
随着IT领域技术的不断发展,传统信息化服务以及日趋强大的云计算服务对服务器的性能要求越来越高。硬盘做为数据载体,其性能直接影响服务器的整体呈现。做为服务器硬件供应商,在产品开发时对于硬盘的性能测试需要更多的投入。
Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。
Iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。 可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。
但是iozone只提供了简单的参数,单条iozone命令有非常大的测试局限,如只能对一块硬盘进行测试,测试线程数控制难等。
基于上述技术,如果能够通过shell脚本, 根据实际服务器配置来修改测试文件,并能够手动调整部分参数,这将对于多种多样的配置的硬盘性能测试带来便利和更高的效率。
发明内容
本发明要解决的技术问题是:针对以上不足之处,提供是一种实用性强,可以对iozone的测试参数进行扩展,使之适应多种多样的性能测试需求的方法。
本发明所采用的技术方案为:
一种基于iozone的硬盘性能测试的方法,其具体实现过程为:
1)识别本服务器所有的硬盘或者raid阵列;
2)对硬盘或者raid阵列进行分区,格式化和挂载;
3)根据实际配置修改将测试参数传递给性能测试脚本;
4)开始性能测试,并输出结果。
其中:
识别本服务器所有的硬盘或者raid阵列过程如下:
#!/bin/bash
#判断输入参数个数,不符合时输出usage后退出
if [ $# -ne 2]; then
echo “Usage:./$0 RECSIZE THREADS_PERFHDD
exit 0;
fi
#识别所有的盘符
function get_disk()
{
fdisk -l |grep "Disk /dev/sd" |awk '{print $2|"cut -b8"}' >> /root/1.txt
for i in `cat /root/1.txt`
do
  echo "/dev/sd$i" >> /root/disk.lst
done
}
对硬盘或者raid阵列进行分区,格式化和挂载过程如下:
#分区
function fdisk_disk()
{
for disk in `cat /root/disk.lst`
do
#对系统盘sda分区
if [ $disk = /dev/sda ]
then
echo -e "fdisk $disk now..."
parted –s $disk mkpart $disk"3" 60gb 100gb
else
#对非系统盘分区
echo -e "fdisk $disk now..."
parted -s $disk mklabel gpt mkpart $disk"1" 1 100gb
echo -e "Done"
fi
done
}
#格式化
function mkfs_disk()
{
for i in `cat /root/1.txt`
do
if [ $i = a ]
then
  mkfs.ext4 /dev/sd$i"3"
else
  mkfs.ext4 /dev/sd$i"1"
  fi
done
}
#挂载
function mount_disk()
{
for i in `cat /root/1.txt`
if [ $i = a ]
then
  mkdir /mnt/sd$i"3"
  mount /dev/sd$i"3" /mnt/sd$i"3"
else
  mkdir /mnt/sd$i"1"
  mount /dev/ sd$i"1" /mnt/sd$i"1"
  fi
}
根据实际配置修改,将测试参数传递给性能测试脚本过程为:
function iozone_disk()
{
count=`cat /root/disk.txt|wc –l`#确定测试的硬盘个数
FILESIZE=10g #测试文件大小
RECSIZE=$1   #测试块大小
THREADS=`echo “$2 * $count”|bc` #测试总的线程数,根据硬盘数量和输入的每个硬盘的线程数决定
OUTPUTFILE=
#根据每个硬盘测试的线程数,确定测试文件
for((I=0;I<= $2;I++))
do
for J in `cat /root/1.txt`
do
  FILE=$FILE" ""/mnt/sd$J”1”/k${I}"
  done
done
echo $FILE
for TIMES in {1..2}
do
  OUTPUTFILE="hddext4_${THREADS}thrd_${FILESIZE}_recsize_${RECSIZE}_sep"
     echo "Reading and Writing test Starting ..." >> $OUTPUTFILE
     ./iozone -r ${RECSIZE} -s $FILESIZE -t $THREADS -F $FILE -i 0 -i 1 -b report.xls -c -+n -e >> $OUTPUTFILE
     echo "Reading and Writing test Finished ..." >> $OUTPUTFILE
     echo " " >> $OUTPUTFILE
                exit 1
done
}
所述方法的主程序如下:
#按顺序执行分程序
get_disk
fdisk_disk
mkfs_disk
mount_disk
iozone_disk
脚本执行完成后,在本文件夹中以hddext4开头的文件为最终结果。
本发明的有益效果为:
本发明方法能够对多块硬盘同时进行多个线程的多种模式的读写性能测试。测试过程中的线程数、测试块大小、测试文件大小、测试模式等都是可以根据实际需求进行手动调节的。
本发明方法在各种配置上都可以应用,可以灵活、便捷的根据不同配置修改测试参数来调用iozone测试硬盘性能,解决了单一使用iozone的测试局限性,丰富了测试手段,更好的检测部件的性能。
说明书附图
图1为本发明方法实现流程图。
具体实施方式
下面根据说明书附图,结合具体实施方式对本发明进一步说明:
一、使用raid卡制作阵列,或者使用HBA卡直连硬盘,然后安装系统;
1)识别本服务器所有的硬盘或者raid阵列
#!/bin/bash
#判断输入参数个数,不符合时输出usage后退出
if [ $# -ne 2]; then
echo “Usage:./$0 RECSIZE THREADS_PERFHDD
exit 0;
fi
#识别所有的盘符
function get_disk()
{
fdisk -l |grep "Disk /dev/sd" |awk '{print $2|"cut -b8"}' >> /root/1.txt
for i in `cat /root/1.txt`
do
  echo "/dev/sd$i" >> /root/disk.lst
done
}
2)对硬盘或者raid阵列进行分区,格式化和挂载
#分区
function fdisk_disk()
{
for disk in `cat /root/disk.lst`
do
#对系统盘sda分区
if [ $disk = /dev/sda ]
then
echo -e "fdisk $disk now..."
parted –s $disk mkpart $disk"3" 60gb 100gb
else
#对非系统盘分区
echo -e "fdisk $disk now..."
parted -s $disk mklabel gpt mkpart $disk"1" 1 100gb
echo -e "Done"
fi
done
}
#格式化
function mkfs_disk()
{
for i in `cat /root/1.txt`
do
if [ $i = a ]
then
  mkfs.ext4 /dev/sd$i"3"
else
  mkfs.ext4 /dev/sd$i"1"
  fi
done
}
#挂载
function mount_disk()
{
for i in `cat /root/1.txt`
if [ $i = a ]
then
  mkdir /mnt/sd$i"3"
  mount /dev/sd$i"3" /mnt/sd$i"3"
else
  mkdir /mnt/sd$i"1"
  mount /dev/ sd$i"1" /mnt/sd$i"1"
  fi
}
3)根据实际配置修改将测试参数传递给性能测试脚本
function iozone_disk()
{
count=`cat /root/disk.txt|wc –l`#确定测试的硬盘个数
FILESIZE=10g #测试文件大小
RECSIZE=$1   #测试块大小
THREADS=`echo “$2 * $count”|bc` #测试总的线程数,根据硬盘数量和输入的每个硬盘的线程数决定
OUTPUTFILE=
#根据每个硬盘测试的线程数,确定测试文件
for((I=0;I<= $2;I++))
do
for J in `cat /root/1.txt`
do
  FILE=$FILE" ""/mnt/sd$J”1”/k${I}"
  done
done
echo $FILE
for TIMES in {1..2}
do
  OUTPUTFILE="hddext4_${THREADS}thrd_${FILESIZE}_recsize_${RECSIZE}_sep"
     echo "Reading and Writing test Starting ..." >> $OUTPUTFILE
     ./iozone -r ${RECSIZE} -s $FILESIZE -t $THREADS -F $FILE -i 0 -i 1 -b report.xls -c -+n -e >> $OUTPUTFILE
     echo "Reading and Writing test Finished ..." >> $OUTPUTFILE
        echo " " >> $OUTPUTFILE
                exit 1
done
}
5)主程序
#按顺序执行分程序
get_disk
fdisk_disk
mkfs_disk
mount_disk
iozone_disk
二、脚本执行完成后,在本文件夹中以hddext4开头的文件为最终结果。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (5)

1.一种基于iozone的硬盘性能测试的方法,其特征在于,其具体实现过程为:
1)识别本服务器所有的硬盘或者raid阵列;
2)对硬盘或者raid阵列进行分区,格式化和挂载;
3)根据实际配置修改将测试参数传递给性能测试脚本;
4)开始性能测试,并输出结果。
2.根据权利要求1所述的一种基于iozone的硬盘性能测试的方法,其特征在于,识别本服务器所有的硬盘或者raid阵列过程如下:
#!/bin/bash
#判断输入参数个数,不符合时输出usage后退出
if [ $# -ne 2]; then
echo “Usage:./$0 RECSIZE THREADS_PERFHDD
exit 0;
fi
#识别所有的盘符
function get_disk()
{
fdisk -l |grep "Disk /dev/sd" |awk '{print $2|"cut -b8"}' >> /root/1.txt
for i in `cat /root/1.txt`
do
       echo "/dev/sd$i" >> /root/disk.lst
done
}。
3.根据权利要求1所述的一种基于iozone的硬盘性能测试的方法,其特征在于,对硬盘或者raid阵列进行分区,格式化和挂载过程如下:
#分区
function fdisk_disk()
{
for disk in `cat /root/disk.lst`
do
#对系统盘sda分区
if [ $disk = /dev/sda ]
then
echo -e "fdisk $disk now..."
parted –s $disk mkpart $disk"3" 60gb 100gb
else
#对非系统盘分区
echo -e "fdisk $disk now..."
parted -s $disk mklabel gpt mkpart $disk"1" 1 100gb
echo -e "Done"
fi
done
}
#格式化
function mkfs_disk()
{
for i in `cat /root/1.txt`
do
if [ $i = a ]
then
       mkfs.ext4 /dev/sd$i"3"
else
       mkfs.ext4 /dev/sd$i"1"
       fi
done
}
#挂载
function mount_disk()
{
for i in `cat /root/1.txt`
if [ $i = a ]
then
       mkdir /mnt/sd$i"3"
  mount /dev/sd$i"3" /mnt/sd$i"3"
else
       mkdir /mnt/sd$i"1"
  mount /dev/ sd$i"1" /mnt/sd$i"1"
       fi
}。
4.根据权利要求1所述的一种基于iozone的硬盘性能测试的方法,其特征在于,根据实际配置修改,将测试参数传递给性能测试脚本过程为:
function iozone_disk()
{
count=`cat /root/disk.txt|wc –l`#确定测试的硬盘个数
FILESIZE=10g #测试文件大小
RECSIZE=$1   #测试块大小
THREADS=`echo “$2 * $count”|bc` #测试总的线程数,根据硬盘数量和输入的每个硬盘的线程数决定
OUTPUTFILE=
#根据每个硬盘测试的线程数,确定测试文件
for((I=0;I<= $2;I++))
do
for J in `cat /root/1.txt`
do
       FILE=$FILE" ""/mnt/sd$J”1”/k${I}"
       done
done
echo $FILE
for TIMES in {1..2}
do
       OUTPUTFILE="hddext4_${THREADS}thrd_${FILESIZE}_recsize_${RECSIZE}_sep"
              echo "Reading and Writing test Starting ..." >> $OUTPUTFILE
             ./iozone -r ${RECSIZE} -s $FILESIZE -t $THREADS -F $FILE -i 0 -i 1 -b report.xls -c -+n -e >> $OUTPUTFILE
              echo "Reading and Writing test Finished ..." >> $OUTPUTFILE
              echo " " >> $OUTPUTFILE
                exit 1
done
}。
5.根据权利要求1-4任一所述的一种基于iozone的硬盘性能测试的方法,其特征在于,所述方法的主程序如下:
#按顺序执行分程序
get_disk
fdisk_disk
mkfs_disk
mount_disk
iozone_disk
脚本执行完成后,在本文件夹中以hddext4开头的文件为最终结果。
CN201510204134.XA 2015-04-27 2015-04-27 一种基于iozone的硬盘性能测试的方法 Pending CN104809042A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510204134.XA CN104809042A (zh) 2015-04-27 2015-04-27 一种基于iozone的硬盘性能测试的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510204134.XA CN104809042A (zh) 2015-04-27 2015-04-27 一种基于iozone的硬盘性能测试的方法

Publications (1)

Publication Number Publication Date
CN104809042A true CN104809042A (zh) 2015-07-29

Family

ID=53693887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510204134.XA Pending CN104809042A (zh) 2015-04-27 2015-04-27 一种基于iozone的硬盘性能测试的方法

Country Status (1)

Country Link
CN (1) CN104809042A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260281A (zh) * 2015-09-11 2016-01-20 浪潮电子信息产业股份有限公司 一种基于iozone的PCIE SSD卡性能测试的方法
CN105302725A (zh) * 2015-11-11 2016-02-03 浪潮电子信息产业股份有限公司 一种基于Iozone的文件系统性能自动测试方法
CN105511999A (zh) * 2015-12-10 2016-04-20 浪潮电子信息产业股份有限公司 一种基于iozone的USB接口性能测试的方法
CN106021046A (zh) * 2016-05-12 2016-10-12 浪潮电子信息产业股份有限公司 一种对比硬盘性能的方法、装置和服务器
CN106998468A (zh) * 2017-04-25 2017-08-01 郑州云海信息技术有限公司 一种视频服务器性能测试的方法及系统
CN108762997A (zh) * 2018-05-02 2018-11-06 郑州云海信息技术有限公司 基于Linux系统下自动执行硬盘性能测试的方法及系统
CN110223728A (zh) * 2018-03-02 2019-09-10 深圳市时创意电子有限公司 固态硬盘的批量自动测试方法与批量自动测试装置
CN110825569A (zh) * 2019-10-13 2020-02-21 苏州浪潮智能科技有限公司 一种硬盘稳定性测试方法及测试系统
CN111858309A (zh) * 2020-06-19 2020-10-30 浪潮电子信息产业股份有限公司 一种iozone测试方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401222B1 (en) * 1996-10-11 2002-06-04 Phillip M. Adams Defective floppy diskette controller detection apparatus and method
CN101388254A (zh) * 2007-09-13 2009-03-18 英业达股份有限公司 存储装置的测试方法
CN102419722A (zh) * 2010-09-27 2012-04-18 鸿富锦精密工业(深圳)有限公司 硬盘测试系统
CN104020960A (zh) * 2014-03-31 2014-09-03 深圳英飞拓科技股份有限公司 一种硬盘分区格式化与挂载的方法及装置
CN104317693A (zh) * 2014-10-30 2015-01-28 浪潮电子信息产业股份有限公司 一种自动检测硬盘性能波动的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401222B1 (en) * 1996-10-11 2002-06-04 Phillip M. Adams Defective floppy diskette controller detection apparatus and method
CN101388254A (zh) * 2007-09-13 2009-03-18 英业达股份有限公司 存储装置的测试方法
CN102419722A (zh) * 2010-09-27 2012-04-18 鸿富锦精密工业(深圳)有限公司 硬盘测试系统
CN104020960A (zh) * 2014-03-31 2014-09-03 深圳英飞拓科技股份有限公司 一种硬盘分区格式化与挂载的方法及装置
CN104317693A (zh) * 2014-10-30 2015-01-28 浪潮电子信息产业股份有限公司 一种自动检测硬盘性能波动的方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260281A (zh) * 2015-09-11 2016-01-20 浪潮电子信息产业股份有限公司 一种基于iozone的PCIE SSD卡性能测试的方法
CN105302725A (zh) * 2015-11-11 2016-02-03 浪潮电子信息产业股份有限公司 一种基于Iozone的文件系统性能自动测试方法
CN105511999A (zh) * 2015-12-10 2016-04-20 浪潮电子信息产业股份有限公司 一种基于iozone的USB接口性能测试的方法
CN106021046A (zh) * 2016-05-12 2016-10-12 浪潮电子信息产业股份有限公司 一种对比硬盘性能的方法、装置和服务器
CN106998468A (zh) * 2017-04-25 2017-08-01 郑州云海信息技术有限公司 一种视频服务器性能测试的方法及系统
CN106998468B (zh) * 2017-04-25 2018-11-16 郑州云海信息技术有限公司 一种视频服务器性能测试的方法及系统
CN110223728A (zh) * 2018-03-02 2019-09-10 深圳市时创意电子有限公司 固态硬盘的批量自动测试方法与批量自动测试装置
CN108762997A (zh) * 2018-05-02 2018-11-06 郑州云海信息技术有限公司 基于Linux系统下自动执行硬盘性能测试的方法及系统
CN110825569A (zh) * 2019-10-13 2020-02-21 苏州浪潮智能科技有限公司 一种硬盘稳定性测试方法及测试系统
CN110825569B (zh) * 2019-10-13 2022-07-19 苏州浪潮智能科技有限公司 一种硬盘稳定性测试方法及测试系统
CN111858309A (zh) * 2020-06-19 2020-10-30 浪潮电子信息产业股份有限公司 一种iozone测试方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN104809042A (zh) 一种基于iozone的硬盘性能测试的方法
CN104360919A (zh) 一种自动进行ssd性能、功能及稳定性测试的方法
Friedman et al. Software assessment: reliability, safety, testability
CN104850479A (zh) 一种基于fio的硬盘自动化测试方法
CN105260281A (zh) 一种基于iozone的PCIE SSD卡性能测试的方法
CN103744759A (zh) 一种Linux系统下无人值守磁盘性能及稳定性验证方法
US8850452B2 (en) Correlating parts of composite transactions involving asynchronous calling mechanisms
CN105224459A (zh) 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法
US9645911B2 (en) System and method for debugging firmware/software by generating trace data
CN106095528B (zh) 一种检测虚拟机盘符的方法
CN105487952A (zh) 一种基于fio的pcie-ssd自动化测试方法
CN106126421A (zh) 一种自动测试并对比pcie‑ssd性能的方法
CA2811617C (en) Commit sensitive tests
CN104615514A (zh) 一种对raid卡各raid级别性能检验方法
CN109828890A (zh) 一种硬盘的测试数据整理方法、装置、设备及存储介质
CN105389255B (zh) 一种bmc oem命令返回值与固定信息比对的自动化测试方法
US10915426B2 (en) Intercepting and recording calls to a module in real-time
CN105183641A (zh) 一种内核模块的数据一致性校验方法及系统
CN107273251A (zh) 一种在生产环境下Rack机柜JBOD存储的测试方法
US7823018B2 (en) Methods, systems and computer program products for CPU signaturing to aide in performance analysis
CN104123104B (zh) 日志控制系统及方法
CN105468488A (zh) 一种基于ib网络的无盘测试cpu的方法、装置及系统
CN104978250A (zh) 一种基于iozone的HBA卡性能测试的方法
CN103176903B (zh) MapReduce分布式系统程序的测试方法及设备
US20200387370A1 (en) Intercepting and replaying interactions with transactional and database environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150729

RJ01 Rejection of invention patent application after publication