Hi guys,
I'm estimating performance of a flash storage array in VM environment, using vdbench as test tool.
Can anybody share me a Parmfile of vdbench for typical VM workload?
Maybe included as follows:
IO size and distribution, R/W ratio, random ratio, dedup/compress ratio...
Thanks a lot.
Here is my VM’s workload form our data center, it may help you.
##Preconditioning and aging:
#define compratio and dedupratio
dedupratio=1
compratio=1
dedupunit=8k
#define sds
hd=default,vdbench=/root/vdbench50406,shell=ssh,user=root
hd=hd1,system=host1
hd=hd2,system=host2
sd=default,openflags=O_DIRECT,threads=32
sd=sd1,hd=hd1,lun=/dev/sdb
sd=sd2,hd=hd1,lun=/dev/sdc
sd=sd3,hd=hd2,lun=/dev/sdb
sd=sd4,hd=hd2,lun=/dev/sdc
#define fill and age workload
wd=wd_fill,sd=sd*,seekpct=-1,rdpct=0,xfersize=256k
wd=wd_age,sd=sd*,xfersize=(8k,56,16k,21,32k,17,64k,6),rdpct=0,seekpct=100
#define rd
rd=fill1,wd=wd_fill,iorate=max,el=600000,in=1,warmup=0
rd=fill2,wd=wd_fill,iorate=max,el=600000,in=1,warmup=0
rd=age,wd=wd_age,iorate=max,interval=1,elapsed=600000,maxdata=10000g
##Workload VSI
#define compratio and dedupratio
dedupratio=2.3
compratio=1.4
dedupunit=8k
#define sds
hd=default,vdbench=/root/vdbench50406,shell=ssh,user=root
hd=hd1,system=host1
hd=hd2,system=host2
sd=default,openflags=O_DIRECT,threads=32
sd=sd1,hd=hd1,lun=/dev/sdb
sd=sd2,hd=hd1,lun=/dev/sdc
sd=sd3,hd=hd2,lun=/dev/sdb
sd=sd4,hd=hd2,lun=/dev/sdc
#define VSI workload
wd=wd_vsi,sd=sd*,seekpct=80,rdpct=59.7,xfersize=(8k,55.48,16k,23.12,20k,4.12,32k,7.83,64k,4.67,256k,3.24,1048k,1.54)
#define rd
rd=rd_vsi,wd=wd_vsi,iorate=max,interval=1,elapsed=1800,warmup=600
Thank you very much. I'll have a try.
It seems 2 different workloads listed, and my additional question is what's the meaning of "Preconditioning and aging"?
Thanks again:)
Wow, good sharing, it looks like a script of vdbench tested on flash array, what does "preconditioning and aging" mean? Is it a pro terminology for vdbench?
Welcome, go ahead with a trial.
Yes, two workloads. One is for the preconditioning and aging, another is for the workload simulating the VMware scenario.
Here "Preconditioning and aging" means it's a preparation for the following workloads run to close the real scenario because most of storage systems have been written for many times. The first workload preconditioning and aging just wrote the storage system completely at least one time.
And the workloads is for all flash array storage system, because every flash cell need to be written one time, the performance will differ significantly from FOB(Fresh out of box). This is a key point for all flash array testing. On the contrary, HDDs don't exhibit the FOB affect.
I am not sure if it just is what you want, but i could share a link with you
http://info.purestorage.com/rs/purestorage/images/IDC_Report_AFA_Performance_Testing_Framework.pdf
Good luck!
Hi Jerry,
Really very useful and professional sharing!
Honestly, I have taken into no consideration at all about the “preconditioning and aging” for my FLASH storage.
Under your workload,performance dramatically reduced to 40% with sharp IOPS fluctuation after I performed the "preconditioning and aging".
Thank you for your help and I find that is my point.
And can you share more available workloads such as DB/VDI? Thanks again.
You have to take care of the performance consistency, the testing is running for a long time like some hours even more, the latency and IOPS always are stable on a value, or have a very minimum loss without any sharp drawing.
For more details, please refer to the link i posted in my last comment.
I have worked in storage performance testing over 20 years, the major scenarios of storage system are related to database and virtualization over SAN, but NAS has more different use cases.
* Database workload always presents 4k~64k IO size, sometimes other IO is more than 64k, and read percentage is about 70%.
* Virtual Desktop Infrastructure have more small IOs less than 32k, basically it's over 95%, and write operations is over 70%.
Please take a reference with below scripts:
Oracle:
dedupratio=1.1
compratio=1.6
dedupunit=8k
wd=wd_oltp,sd=sd*,seekpct=85,rdpct=69.4,xfersize=(8k,78.45,16k,7.58,32k,6.65,64k,4.28,81k,0.92,128k,1.68,490k,0.44)
rd=rd_OLTP,wd=wd*,iorate=max,elapsed=1800,warmup=600,interval=1
SQL:
dedupratio=1.1
compratio=1.5
dedupunit=8k
wd=wd_SQL,sd=sd*,seekpct=75.8,rdpct=86.4,xfersize=(8k,57.16,16k,4.58,32k,8.24,64k,28.12,122k,0.82,506k,0.68,1024k,0.4)
rd=rd_SQL,wd=wd*,iorate=max,elapsed=1800,warmup=600,interval=1
VDI:
dedupratio=3
compratio=1.6
dedupunit=8k
wd=wd_vdi,sd=sd*,seekpct=97,rdpct=23.8,xfersize=(1k,5.21,2k,6.14,4k,42.73,8k,22.83,10k,4.47,16k,10.1,32k,5.42,64k,1.14,133k,0.53,235k,0.95,1023k,0.48)
rd=run_vdi,wd=wd*,iorate=max,el=1800,in=1,warmup=600