IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Linux  >

使用 Sendmail 群集的高度可用/可伸缩 Sendmail

Linux TCP/IP 配置问题

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

IBM,

2002 年 8 月 01 日

IBM eServer Developer Domain 是一个为使用 IBM eServer 硬件和相关软件的开发人员提供的内容和资源的不断扩大的集合。IBM eServer Developer Domain 致力于 iSeries、pSeries、xSeries 和 zSeries 开发人员内容,它提供了文章、样本代码、教程、how-to、工具、新闻、案例研究和论坛 — 实际上是协助开发人员完成他们工作而想要或需要的任何东西。

是 Linux TCP/IP 协议栈错误,还是配置问题?

我们已注意到执行 SMTP 基准测试程序时,在繁重的负载下,两个不同的应用程序都挂起了。分布式模式中的 Mailstone 让子进程“放任自流”,很明显地挂起。当运行 Postfix 的 smtp-source 程序遇到大量并发会话时,它会挂起,从而无法完成测试。看来尽管客户机发送了 tcp 连接最终的 ack(ack:ack),但服务器却无法看到。下面是 smtp-source 挂起几分钟后客户机和服务器各方的 netstat 信息。底部是取自服务器的 tcpdump 摘录。

在服务器上,ListenOverflows/ListenDrops 看起来随连接产生的堵塞套接字数量递增。例如,如果在运行 smtp-source 期间,10 个连接被挂起,那么 Overflows/Drops 也会递增 10。客户机根本没有报告 Overflows/Drops。

将服务器切换至 Solaris8,就不会再产生此问题了。

当服务器是常备的 RedHat 7.0 机器,而客户机是 Red Hat 7.1+2.4.4 机器时,也不会产生此问题。

通过使用绝对序列号完成 tcpdump。

补救方法是启用 tcp_abort_on_overflow;(echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow)。当服务器在 listen() 队列溢出时,这样就允许重新设置连接。

Client Netstat (at bunged-up time)
==================================
tcp        0      0 mstone1:4891            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:4889            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:4919            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:4918            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:4947            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:4946            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:4975            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:4974            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:1053            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:1055            smtpa:smtp              ESTABLISHED
tcp        0      0 mstone1:1026            smtpa:smtp              ESTABLISHED
(and others)
Server Netstat (at bunged-up time)
==================================
tcp        0      0 el18a22.ent.sequ:telnet w-168d190.ump.sequ:1852 ESTABLISHED
tcp        0      0 smtpa:telnet            mstone1.ent.sequen:3335 ESTABLISHED
tcp        0      0 smtpa:telnet            mstone1.ent.sequen:3206 ESTABLISHED
tcp        0      0 smtpa:telnet            mstone1.ent.sequen:4794 ESTABLISHED
TCPDUMP from the server: (server never sees ACK:ACK)
------------------------
11:12:27.935309 < mstone1.ent.sequent.com.4918 > smtpa.
smtp: S 2885976825:2885976825(0) win 5840
<mss 1460,sackOK,timestamp 50272721 0,nop,wscale 0> (DF)
11:12:27.935338 > smtpa.smtp > mstone1.ent.sequent.com.
4918: S 3273933311:3273933311(0) ack 2885976826 win 5792
<mss 1460,sackOK,timestamp 15328482 50272721,nop,wscale 0> (DF)
11:12:27.935426 < mstone1.ent.sequent.com.4918 > smtpa.
smtp: . 2885976826:2885976826(0) ack 3273933312 win 5840
<nop,nop,timestamp 50272721 15328482> (DF)
11:12:32.142621 > smtpa.smtp > mstone1.ent.sequent.com.
4918: S 3273933311:3273933311(0) ack 2885976826 win 5792
<mss 1460,sackOK,timestamp 15328903 50272721,nop,wscale 0> (DF)
11:12:38.142640 > smtpa.smtp > mstone1.ent.sequent.com.
4918: S 3273933311:3273933311(0) ack 2885976826 win 5792
<mss 1460,sackOK,timestamp 15329503 50272721,nop,wscale 0> (DF)
11:12:50.142629 > smtpa.smtp > mstone1.ent.sequent.com.
4918: S 3273933311:3273933311(0) ack 2885976826 win 5792
<mss 1460,sackOK,timestamp 15330703 50272721,nop,wscale 0> (DF)
11:13:14.342626 > smtpa.smtp > mstone1.ent.sequent.com.
4918: S 3273933311:3273933311(0) ack 2885976826 win 5792
<mss 1460,sackOK,timestamp 15333123 50272721,nop,wscale 0> (DF)
11:14:02.542661 > smtpa.smtp > mstone1.ent.sequent.com.
4918: S 3273933311:3273933311(0) ack 2885976826 win 5792
<mss 1460,sackOK,timestamp 15337943 50272721,nop,wscale 0> (DF)



关于作者

IBM has authored this article




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款