测试邮箱发信速度

来源:互联网 发布:nba2kol拉文隐藏数据 编辑:程序博客网 时间:2024/05/16 01:19

运行环境: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