Python实现测试磁盘性能的方法
本文实例讲述了Python实现测试磁盘性能的方法。分享给大家供大家参考。具体如下:
该代码做了如下工作:
create300000files(512Bto1536B)withdatafrom/dev/urandom
rewrite30000randomfilesandchangethesize
read30000sequentialfiles
read30000randomfiles
deleteallfiles
syncanddropcacheaftereverystep
bench.py代码如下:
#!/usr/bin/python #-*-coding:utf-8-*- filecount=300000 filesize=1024 importrandom,time fromosimportsystem flush="sudosu-c'sync;echo3>/proc/sys/vm/drop_caches'" randfile=open("/dev/urandom","r") print"\ncreatetestfolder:" starttime=time.time() system("rm-rftest&&mkdirtest") printtime.time()-starttime system(flush) print"\ncreatefiles:" starttime=time.time() foriinxrange(filecount): rand=randfile.read(int(filesize*0.5+filesize*random.random())) outfile=open("test/"+unicode(i),"w") outfile.write(rand) printtime.time()-starttime system(flush) print"\nrewritefiles:" starttime=time.time() foriinxrange(int(filecount/10)): rand=randfile.read(int(filesize*0.5+filesize*random.random())) outfile=open("test/"+unicode(int(random.random()*filecount)),"w") outfile.write(rand) printtime.time()-starttime system(flush) print"\nreadlinear:" starttime=time.time() foriinxrange(int(filecount/10)): infile=open("test/"+unicode(i),"r") outfile.write(infile.read()); printtime.time()-starttime system(flush) print"\nreadrandom:" starttime=time.time() outfile=open("/dev/null","w") foriinxrange(int(filecount/10)): infile=open("test/"+unicode(int(random.random()*filecount)),"r") outfile.write(infile.read()); printtime.time()-starttime system(flush) print"\ndeleteallfiles:" starttime=time.time() system("rm-rftest") printtime.time()-starttime system(flush)
希望本文所述对大家的Python程序设计有所帮助。