增加与 apache2 的同时连接数

增加与 apache2 的同时连接数

如何增加 apache2 中的同时连接数?我正在使用一个定期轮询服务器的 javascript 应用程序,并试图防止客户端被锁定。我知道我应该切换到非锁定的 Web 服务器,但在此之前,我可以在 apache 中执行任何类型的 hack 来优化这一点吗?谢谢。

答案1

在此网站上搜索“最大客户数' 它应该会提供大量信息来帮助你入门。

根据您的服务器资源,您可能需要查看一些指令,这些指令可能会影响同时连接的数量,从而影响 Web 服务器的性能。以下是一些示例(根据您的环境,某些指令可能需要或不需要配置):

  • 启动服务器
  • 最大备用服务器数
  • 最小备用服务器
  • 最大客户数
  • 服务器限制
  • 每个子进程的最大请求数
  • 活着
  • KeepAlive 超时
  • 最大KeepAliveRequests:

答案2

在 Apache 级别,您需要最大化该MaxClients值,而不会耗尽 RAM。例如,您可以将 MaxClients 设置为 1000,这样它就可以正常运行,直到您拥有太多并发连接,导致 RAM 耗尽并开始使用交换,此时您的服务器性能将急剧下降。

作为粗略的指导,您可以运行top并查看所有条目,计算和列httpd之间的差值。此值是 Apache 客户端进程使用的近似内存。将您希望 Apache 使用的内存总数除以该数字,即可得到初始 MaxClients。例如,对于平均大小为 20MB 的 Apache 进程,使用 3GB 可计算出 3000/20 = 150 MaxClients。RESSHR

如果您想进一步增加 MaxClients,您可以尝试通过不加载任何不需要的模块来减少 Apache 进程的大小。

正如您所提到的,您可能希望考虑使用替代 Web 服务器,或者可能是双 Apache Web 服务器,以增加可能的并发连接数。当 Apache 配置为服务动态页面(PHP 等)时,它会占用相对较大的内存,这会对在内存耗尽之前可以拥有的连接数设置相对较低的限制。在这种情况下,通常的选择是使用更轻量的 Web 服务器(Lighttpd、Nginx 等)来提供所有静态内容,而让 Apache 仅提供动态页面。

相关内容