CN104809042A - 一种基于iozone的硬盘性能测试的方法 - Google Patents
一种基于iozone的硬盘性能测试的方法 Download PDFInfo
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于iozone的硬盘性能测试的方法,其具体实现过程为:识别本服务器所有的硬盘或者raid阵列;对硬盘或者raid阵列进行分区,格式化和挂载;根据实际配置修改将测试参数传递给性能测试脚本;开始性能测试,并输出结果。本发明方法在各种配置上都可以应用,可以灵活、便捷的根据不同配置修改测试参数来调用iozone测试硬盘性能,解决了单一使用iozone的测试局限性,丰富了测试手段,更好的检测部件的性能。
Description
技术领域
本发明涉及计算机服务器技术领域,具体涉及一种基于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开头的文件为最终结果。
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)
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)
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 | 浪潮电子信息产业股份有限公司 | 一种自动检测硬盘性能波动的方法 |
-
2015
- 2015-04-27 CN CN201510204134.XA patent/CN104809042A/zh active Pending
Patent Citations (5)
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)
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 |