SAAS邮件服务系统性能测试
比特网 12年04月16日 14:58 【转载】 作者:悠虎 责任编辑:周晓丽
导读:SAAS邮件服务作为一个云端服务,区别于传统的邮件服务系统,其性能要求也不尽相同,性能测试所需要考虑的因素也有所区别,但是总体来说衡量一个邮件系统的基本性能指标还是相似的。本文从SAAS邮件服务的性能指标开始分析,逐步剥离各种SAAS邮件服务的性能测试干扰因素,构架一个简单实用的测试框架。
SAAS邮件服务作为一个云端服务,区别于传统的邮件服务系统,其性能要求也不尽相同,性能测试所需要考虑的因素也有所区别,但是总体来说衡量一个邮件系统的基本性能指标还是相似的。本文从SAAS邮件服务的性能指标开始分析,逐步剥离各种SAAS邮件服务的性能测试干扰因素,构架一个简单实用的测试框架。
第一弹,确定SAAS邮件服务系统的性能指标
作为一个邮件服务最主要有三大指标:邮件处理速率,并发连接数,高压力下的邮件滞留时间。
速率:单位时间内接受的邮件或者发送的邮件。
并发连接数:同时能接受多少SMTP请求或者发起多少SMTP请求。
滞留时间:在一定的压力条件下一封邮件滞留在邮件服务系统的时间。
这三者之间也有一定的关系。速率越快,一般来说滞留时间就越短,但是有的时候可以用增加滞留时间在提高邮件的平均接收速率。例如,如果这个邮件服务系统是分层次的,前端接受邮件,中间段处理分析邮件,后端发送邮件。那么这个系统在系统较忙可以让前端服务器无限制的接受邮件无论中段或者后端来不来得及,当邮件系统清闲的时候再慢慢处理滞留在系统内的邮件。从外部看来,这个邮件系统的接受速率相当的好,但是这是以牺牲滞留时间来获得的。速率和并发连接数也有一定关系,邮件系统处理邮件的速率再快都会受到并发连接数的限制,理论上只有无限大的并发连接数才能实现无限大的速率。但是在现实中,往往需要限制并发连接数来得到一个较好的速率。因为太高的并发连接数会消耗相当大的系统资源,最终使得速率下降。所以并发连接数的调节也是邮件服务非常重要的性能指标之一。而且可以想象,在资源竞争的条件下,过高的并发连接数同样会影响到滞留时间的增长。
第二弹,影响邮件服务系统性能指标的内部因素
提到因素分析,可能大家就开始头疼了,影响性能指标的因素有很多,从哪里开始啊?其实,由于各种性能指标已经清晰,要研究影响性能指标的因素,那么离不开内部结构和外部环境两个方面。内部环境当然就是邮件服务的内部结构了,当前流行的结构有以下几种:
1.全透明,整个SAAS邮件服务就是一个proxy,SMTP协议发起端会被直接relay到最终接受端,整个邮件处理的过程保持SMTP连接。这种模式下,所有邮件不需要落地存盘,节省了读写磁盘的开销,但是,对并发连接的要求会比较高,滞留时间和smtp的timeout设定要同时考虑。这是中典型的速率受并发度限制的模型。
2.两层结构。全透明的模式下,SAAS邮件服务的上游服务器到下游服务器之间只有一个SMTPsession。两层结构是指SAAS邮件服务的接受端是一个SMTPsession,向下游发送端又是一个SMTPsession,两个session是顺序关系,没有严格的依赖关系。显而易见的,这种结构比全透明模式多了一个SMTPsession,在邮件被发送之前需要将mail在本地保留一份拷贝,但是一定程度上打破了速率对并发度的依赖。
3.多重结构,比起两层结构,在接受和发送之间增加了一层邮件处理环节,在系统内部之间选择更好的数据流动方式,无论是SMTP还是HTTP或者任何别的什么技术。
一定程度上的系统结构分析会给性能测试带来不少的切入点,或者说观察点。在高效的性能测试中,实时观测是非常重要的。虽然,所能观测的除了以上提到的性能指标以外就是各台功能服务器的一些实时参数。就是这些实时参数,例如cpu,内存,磁盘吞吐,网络吞吐等等参数,会让你察觉真正的系统瓶颈在什么地方。
对于系统分析,需要具体情况具体对待,在这里也就不多做描述了,毕竟各家的系统结构都是内部知识产权,不太好拿出来品评。
第三弹,邮件流量模型
作为一个SAAS邮件服务平台,它并不单独服务于某一个客户,或者某一群客户。虽然某种客户的邮件流量模型都不同,但是整个SAAS平台的邮件模型基本上是确定的。当然他也有一些地域,或者时间上的区别。例如,虽然所有的邮件高峰期一般都在早上的9点到10点之间,但是作为一个服务全球的 SAAS邮件服务平台,由于时差的关系,他的高峰就会被分为几个部分,北美时间,欧洲时间,东亚时间等等。如果要模拟真实的邮件流量模型,就必须考虑多波峰的情况。
除了时间上的因素。更重要的是并发度模型和邮件大小分布模型。例如北美可能平均邮件大小只有15~20K。但是在多媒体发达的日本,平均邮件大小有110K。欧洲又不同,差不多50K左右。