Posted in Python onMarch 12, 2015
本文实例讲述了Python实现测试磁盘性能的方法。分享给大家供大家参考。具体如下:
该代码做了如下工作:
create 300000 files (512B to 1536B) with data from /dev/urandom
rewrite 30000 random files and change the size
read 30000 sequential files
read 30000 random files
delete all files
sync and drop cache after every step
bench.py代码如下:
#!/usr/bin/python # -*- coding: utf-8 -*- filecount = 300000 filesize = 1024 import random, time from os import system flush = "sudo su -c 'sync ; echo 3 > /proc/sys/vm/drop_caches'" randfile = open("/dev/urandom", "r") print "\ncreate test folder:" starttime = time.time() system("rm -rf test && mkdir test") print time.time() - starttime system(flush) print "\ncreate files:" starttime = time.time() for i in xrange(filecount): rand = randfile.read(int(filesize * 0.5 + filesize * random.random())) outfile = open("test/" + unicode(i), "w") outfile.write(rand) print time.time() - starttime system(flush) print "\nrewrite files:" starttime = time.time() for i in xrange(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) print time.time() - starttime system(flush) print "\nread linear:" starttime = time.time() for i in xrange(int(filecount / 10)): infile = open("test/" + unicode(i), "r") outfile.write(infile.read()); print time.time() - starttime system(flush) print "\nread random:" starttime = time.time() outfile = open("/dev/null", "w") for i in xrange(int(filecount / 10)): infile = open("test/" + unicode(int(random.random() * filecount)), "r") outfile.write(infile.read()); print time.time() - starttime system(flush) print "\ndelete all files:" starttime = time.time() system("rm -rf test") print time.time() - starttime system(flush)
希望本文所述对大家的Python程序设计有所帮助。
Python实现测试磁盘性能的方法
- Author -
鉴客声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@