Linux下高可用/可伸缩Sendmail研究

  运行Sendmail的服务器群集能够在有竞争力的价格上提供高性能和高可用性。对于经验丰富的系统管理员,这一贯是常用的做法。本文描述了我们的研究,量化和描述实现高可用/可伸缩Sendmail 的方法。

  我们研究了Linux上Sendmail群集的几种配置,并对它们的相对性能进行了量化。我们通过调整 Sendmail 的配置以及 Linux 操作系统中的参数,研究并测试了公共性能。我们还没有一个共享磁盘用于这些测试,因此我们将项目的范围限定在只包括 SMTP 路由和排队。这是位于专用网的边缘或作为内部邮件存储的前端的Sendmail群集的常用配置。

  虽然我们的硬件资源很普通,但我们相信这些相对差异会使我们的结果对于那些要实现基于Linux的 Sendmail服务器群集的系统架构设计师是非常重要的,因为我们的结果说明了Sendmail群集的设计特性的相对重要性。

  汇总结果

  Sendmail、LDAP 和 DNS 有许多配置选项,但我们只考虑那些对于该应用程序很重要的选项。除非另有声明,否则我们使用标准软件和缺省设置。在这些选项中,我们发现有少数因素可以对性能产生巨大影响,或者是实现可伸缩性必不可少的,如 LogLevel 和 QueueDirectory。

  最后,我们发现即使正确配置了 Sendmail,所有这些重要因素也会告诉我们两个事实:

  Sendmail 是磁盘密集型的,磁盘速度越快,Sendmail 的速度就越快。

  不受控因素也许会影响我们所感知到的性能。如,远程 DNS 服务器发生故障,路由失常、队列填满和其它第三方问题。

  我们发现了什么

  集群的服务器:通过集群两个服务器并在前端添加负载均衡器,我们发现了最佳消息吞吐量 — 大约每秒 100 条消息。这是最佳单服务器结果的性能的两倍,单服务器的最佳性能大约是每秒 50 条消息。当添加第三个服务器时,几乎看不到性能有所改进。

时间: 2024-08-31 19:40:11

Linux下高可用/可伸缩Sendmail研究的相关文章

高可用可伸缩架构实用经验谈

移动互联网.云计算和大数据的成熟和发展,让更多的好想法得以在很短的时间内实现为产品.此时,如果用户需求抓得准,用户数量将很可能获得爆发式增 长,而不需要像以往一样需要精心运营几年的时间.然而用户数量的快速增长(尤其是短时间内的爆发式增长),通常会让应用开发者有些吃不消,不得不面临一些 严峻的技术挑战:如何避免因为单台机器当机导致服务不可用:如何避免在服务容量不足时,用户体验下降,等等.在系统构建之初就采用高可用和可伸缩架构,将 能有效避免这些问题. 如何构建高可用和可伸缩架构呢?七牛云存储首席架

MySQL下高可用故障转移方案MHA的超级部署教程_Mysql

MHA介绍MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA,可避免主从一致性问题,节约购买新服务器的费用,不影响服务器性能,易安装,不改变现有部署.      还支持在线切换,从当前运行master切换到一个新的master上面,只需要很短的时间(0.5-2秒内),此时仅仅阻塞写操作,并不影响读操作,便于主机硬件维护.   在有高可用,数据一致性要求的系统上,MHA 提供了有用的功能,

教你修改Linux下高并发socket最大连接数所受的各种限制

1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄).可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [speng@as4 ~]$ ulimit -n 1024 这表示当前用户的每个进程最多允许同时打开1024个文件,这1024个文件中还得除去每个进

Linux下高并发socket最大连接数所受的各种限制(详解)_Linux

1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄).可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [speng@as4 ~]$ ulimit -n 1024 这表示当前用户的每个进程最多允许同时打开1024个文件,这1024个文件中还得除去每个进

Linux下nginx日志统计的研究

是由于看组内大神@沈洲大神做的浏览器统计,一时我也想练练,于是今天一天没有出出(当然还是得吃饭的)- 思路     首先是写个自动定时任务,在每天夜里23:55的时候运行脚本,脚本做日志切割和转成需要的数据json    制作访问接口可以获取分析后的json数据,比如浏览器型号,系统型号    根据接口画出饼状图 定时任务-解析日志 写一个以每天23:55执行的shell,大概内容如下: # /bin/bash # 移动数据日志为lastcp -f /home/access.log /home/

linux 下php mail或sendmail发送邮件慢的解决办法

mail慢并超时是由于sendmail慢引起的,  但sendmail慢又如何解决呢? 第一步:当然是查日志: vim /var/log/maillog Jul  5 23:26:20 localhost sendmail[1206]: My unqualified host name (localhost) unknown; sleeping for retry Jul  5 23:27:20 localhost sendmail[1206]: unable to qualify my own

《构建高可用Linux服务器 第3版》—— 1.5 Linux服务器的优化

1.5 Linux服务器的优化 服务器的优化是我们最小化安装系统时应该做的事情.其实,在做这项工作之前,我们就应该根据实际应用需求来选购Linux服务器,然后有所偏重地选择硬件,比如我们应该根据服务器的应用来确定是需要RAID 5,还是单块硬盘等. 1.5.1 如何根据服务器应用来选购服务器 无论是租用还是托管都要面临一个问题,那就是选择服务器的硬件配置,前面也说了,选购硬件配置时要根据我们的服务器应用需求而定.因为你无法通过一台服务器来满足所有的需求,解决所有的问题.在项目实施或网站架构之前,

高可用集群HA及负载均衡集群LB的实现方法

集群是个热门话题,在企业中越来越多地应用Linux操作系统提供邮件.Web.文件存储.数据库等服务,随着Linux应用的日益增长,高可用及http://www.aliyun.com/zixun/aggregation/13996.html">负载均衡Linux集群也在企业中逐步地发展起来.Linux平台的低成本.高性能.高扩展性使得Linux集群能够以低廉的价格很好地满足各种应用的需求. 本文介绍Linux集群的基础知识,集群的分类.在熟悉集群的基础知识后会以RHCS(RedHat Clu

Linux集群和自动化维1.4.2 优化Linux下的内核TCP参数以提高系统性能

1.4.2 优化Linux下的内核TCP参数以提高系统性能  内核的优化跟服务器的优化一样,应本着稳定安全的原则.下面以Squid服务器为例来说明,待客户端与服务器端建立TCP/IP连接后就会关闭Socket,服务器端连接的端口状态也就变为TIME_WAIT了.那是不是所有执行主动关闭的Socket都会进入TIME_WAIT状态呢?有没有什么情况可使主动关闭的Socket直接进入CLOSED状态呢?答案是主动关闭的一方在发送最后一个ACK后就会进入TIME_WAIT状态,并停留2MSL(报文最大