原创-性能测试篇-USB读写性能测试脚本优化

shell脚本,命名为 usb500M_Test.sh

#!/bin/sh
echo "此脚本必须放在usb目录下"
echo "正在创建一个500M左右的测试文件"
sudo dd if=/dev/zero of=/home/usb500M bs=1M count=500

#清除页缓存
echo "正在清除页缓存"
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo "清除页缓存完毕"

echo "创建测试目录"

sudo mkdir /home/test_usb500M/

echo "正在读文件测试"
#time cp ./usb500M /home/test_usb500M/
python -c 'import handle_usb500M; handle_usb500M.Test_read()'
echo "读文件测试完毕"

#清除页缓存
echo "正在清除页缓存"
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo "清除页缓存完毕"

echo "删除本目录测试文件"
rm -rf ./usb500M
echo "删除完毕"

echo "正在写文件测试"
#time cp /home/test_usb500M/usb500M  ./
python -c 'import handle_usb500M; handle_usb500M.Test_write()'
echo "写性能测试完毕"

echo "正在清除所有测试创建的文件及其目录"
rm -rf /home/test_usb500M/usb500M
rm -rf /home/test_usb500M
rm -rf ./usb500M
#rm -rf usb500M_read.txt
#rm -rf usb500M_write.txt
echo "清除完毕"
echo "所有测试完毕"

python脚本用于测试,命名为handle_usb500M.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import commands
import re
import sys,os
def Test_read():
  output = commands.getoutput('(time cp ./usb500M /home/test_usb500M/) >& usb500M_read.txt')
  read_txt = open("usb500M_read.txt","r")
  read_line = read_txt.readlines()
  read_2_line = read_line[1]
  print '所用时间:' + read_2_line
  read_data = read_2_line.split()[1]
  read_data_min = read_data.split('m')[0]
  read_data_sec = read_data.split('m')[1].split('s')[0]
  if int(read_data_min) == 0 and float(read_data_sec) >= 0:
    read_result = 10240 / float(read_data_sec)
    print "read speed:" + str(read_result) + "Mb/s"
  elif int(read_data_min) > 0:
    read_result = (10240 / ((int(read_data_min) * 60) + float(read_data_sec)))

    print "read speed:" + str(read_result) + "Mb/s"
  else:
    print "no result"
  print "min:" + read_data_min + '\r\n' + 'sec:' + read_data_sec

  return 

def Test_write():
  output2 = commands.getoutput('(time cp /home/test_usb500M/usb500M  ./) >& usb500M_write.txt')
  write_txt = open("usb500M_write.txt","r")
  write_line = write_txt.readlines()
  write_2_line = write_line[1]
  print '所用时间:' + write_2_line
  write_data = write_2_line.split()[1]
  write_data_min = write_data.split('m')[0]
  write_data_sec = write_data.split('m')[1].split('s')[0]
  if int(write_data_min) == 0 and float(write_data_sec) >= 0:
    write_result = 10240 / float(write_data_sec)
    print "write speed:" + str(write_result) + "Mb/s"
  elif int(write_data_min) > 0:
    write_result = (10240 / ((int(write_data_min) * 60) + float(write_data_sec)))

    print "write speed:" + str(write_result) + "Mb/s"
  else:
    print "no result"
  

  
  return 


#def test():
#   print "ok";
#   return;

 

你可能感兴趣的:(Linux,shell,python,linux测试)