您好,欢迎访问一九零五行业门户网

Python实现测试磁盘性能的方法

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

推荐信息