Solaris TCP堆栈调整

我们有一个大的web项目(每秒约2-3k个请求),使用haproxy( http://haproxy.1wt.eu/ )作为前端和Java应用程序服务器之间的负载平衡器。 前端(haproxy)在Linux上运行,但我们将把它迁移到Solaris 10上,因为我们所有的其他服务器都在Solaris下运行。

切换stream量后,我看到了两件事情:a)网站加载速度较慢(与图像相比,5-10秒,而在Linux上是2-3秒)b)有时haproxy无法执行“lifecheck”网页和分析http响应代码)由于套接字超时。 将stream量切换回Linux后,一切都可以。

我试图调整我在/ dev / tcp中find的所有参数,但没有任何进展。 我相信问题是在一些开放的套接字限制。 如果有人能指出我的答案,我将不胜感激。

ps haproxy在Linux(10 u8)的区域下在Linux(内核2.6.18,Debian 5)上的Xen DomU下运行。 我们在Linux上做的唯一事情就是增加ip_conntrack_max(我相信Solaris选项tcp_conn_req_max_q是等价的)。

在solaris上,通常需要扩展源端口范围(缺省情况下只有16k端口),并缩短默认设置为240秒的time_wait时间间隔,否则会很快没有空闲端口build立出站连接。 不幸的是,我不记得现在的参数名称,从内存中它是在/ dev / tcp中,超时类似于tcp_timewait_interval,端口可能在min_port和max_port中。

如果haproxy后面的服务器需要很长时间才能响应,则可能还需要增加文件描述符的最大数量,以便支持更多的并发套接字。 我记得/ etc / system里的“fdlim_cur”和“fdlim_max”这些东西没有默认设置。 我记得在更换这些驱动程序后必须重新启动,我不知道solaris 10是否仍然如此。不幸的是,我上次做了一些调整已经有好几年了: – /

希望这有助于!