您的位置:首页 > 其它

测试邮箱发信速度

2011-09-07 16:10 357 查看
运行环境:Linux x86_64

底层邮件 :qmail

脚本类型:shell

脚本内容:

测试脚本内容如下:

#!/bin/bash

#日志存放位置

Log=/home/sysadmin/zhaoyj/TestLog

echo -n > $Log

#统计文件大小

echo "`du -sh testtxt`" >> $Log

#记录开始发信的时间(以秒为单位)

BeginTime=`date +%s`

#发信一千封

for (( i=1;i<=1000;i++ ))

do

cat /home/sysadmin/zhaoyj/testtxt |mail -s "`date +%Y-%m-%d` `hostname` 'MMailTest--Number$i'" 收件地址

#发信的同时统计系统负载和邮件队列

if [ `expr $i % 100` == 0 ]

then

CPULoad=`w |grep "load average" |awk -F, '{print $4}'|awk -F: '{print $2}'`

MailQueue=`/var/qmail/bin/qmail-qstat |head -1|awk -F: '{print $2}'`

echo "when MailNumber=$i CPULoad=$CPULoad MailQueue=$MailQueue" >> $Log

fi

done

#记录发信结束的时间(以秒为单位)

EndTime=`date +%s`

#记录发信总共用的时间(以秒为单位)

UsedSeconds=`expr $EndTime - $BeginTime`

#时间转换函数

funConvert()

{

if [ "$1" = "-time" ]

then

let "vard=$2/86400" #将秒转化成天数

let "varh=$2%86400/3600" #将秒转化成小时

let "varm=$2%86400%3600/60" #将秒转化成分

let "vars=$2%86400%3600%60" #转化成分钟以后剩余的秒数

if [ $vard -gt 0 ] #如果天数大于0,输出的时间格式为“几d几h几m几s”

then

echo "${vard}d${varh}h${varm}m${vars}s"

elif [ $varh -gt 0 ]

then

echo "${varh}h${varm}m${vars}s"

elif [ $varm -gt 0 ]

then

echo "${varm}m${vars}s"

else

echo ${2}s

fi

fi

}

UsedTime=`funConvert -time $UsedSeconds`
#调用函数funConvert进行时间转换

echo "UsedTime=$UsedTime" #向屏幕输出“发信所用的时间”

AvgSpeed=`expr $UsedTime / 1000` #计算平均发信速度

echo "AvgSpeed=$AvgSpeed"
#向屏幕输出“平均发信速度的值”

我的测试结果:

脚本中加入统计系统负载和邮件队列的情况下:

1)发信文件大小是288K,日志情况

288K testtxt

when MailNumber=100 CPULoad= 1.07 MailQueue= 992

when MailNumber=200 CPULoad= 1.07 MailQueue= 1078

when MailNumber=300 CPULoad= 1.30 MailQueue= 1170

when MailNumber=400 CPULoad= 1.30 MailQueue= 1258

when MailNumber=500 CPULoad= 1.30 MailQueue= 1350

when MailNumber=600 CPULoad= 1.36 MailQueue= 1446

when MailNumber=700 CPULoad= 1.36 MailQueue= 1542

when MailNumber=800 CPULoad= 1.49 MailQueue= 1634

when MailNumber=900 CPULoad= 1.49 MailQueue= 1727

when MailNumber=1000 CPULoad= 1.49 MailQueue= 1822

UsedTime=20s

2)发信文件大小是20K,日志情况【有队列基数的情况】

20K testtxt

when MailNumber=100, CPULoad= 0.05 MailQueue= 794

when MailNumber=200, CPULoad= 0.05 MailQueue= 891

when MailNumber=300, CPULoad= 0.05 MailQueue= 988

when MailNumber=400, CPULoad= 0.05 MailQueue= 1085

when MailNumber=500, CPULoad= 0.37 MailQueue= 1185

when MailNumber=600, CPULoad= 0.37 MailQueue= 1282

when MailNumber=700, CPULoad= 0.37 MailQueue= 1381

when MailNumber=800, CPULoad= 0.37 MailQueue= 1479

when MailNumber=900, CPULoad= 0.37 MailQueue= 1576

when MailNumber=1000, CPULoad= 0.37 MailQueue= 1673

UsedTime=7s

3)发信文件大小是88K,日志情况【清除队列的情况下】

88K testtxt

when MailNumber=100, CPULoad= 0.00 MailQueue= 87

when MailNumber=200, CPULoad= 0.40 MailQueue= 183

when MailNumber=300, CPULoad= 0.40 MailQueue= 274

when MailNumber=400, CPULoad= 0.40 MailQueue= 366

when MailNumber=500, CPULoad= 0.40 MailQueue= 460

when MailNumber=600, CPULoad= 0.40 MailQueue= 544

when MailNumber=700, CPULoad= 0.93 MailQueue= 634

when MailNumber=800, CPULoad= 0.93 MailQueue= 719

when MailNumber=900, CPULoad= 0.93 MailQueue= 819

when MailNumber=1000, CPULoad= 0.93 MailQueue= 896

UsedTime=11s
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: