本文实例讲述了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程序设计有所帮助。