17

我的问题是 Apache webserver 2.2.2 可以处理的最大用户数是多少,我有一个网站有时会获得超过 300 多个并发用户,但是 apache 默认配置设置为最大 150,我知道我可以增加这个值,但是,如果我这样做,我担心我可能会超出 Apache 可以处理的容量,我的服务器非常强大,配备 8 个四核 AMD 处理器和 16 个 GM 内存

  1. 我如何确定apache可以处理多少个请求,

  2. 一般来说,针对服务器负载进行最佳优化的选项/配置是什么。即禁用保持活动..等

  3. 当我增加最大用户大小时,MySql 会消耗大部分处理器能力,有时会超过 150% 的 CPU .... 不知道为什么..

有专家吗?

4

4 回答 4

8

Apache 带有最多 40-100 个线程。可以增加它以允许同时处理更多线程。

在对其进行任何更改之前,应监控应用程序。根据响应,尝试相应地更改“ThreadsPerChild”和“AcceptThreads”。

默认的“最大”线程数通常就足够了;但是,在某些情况下,这个数字可能必须增加。可以监控线程使用情况。要进行监控,请启动管理实例,选择有问题的 HTTP 服务器,然后选择左下角的实时服务器统计信息。

如果 Idle Threads 接近或为零,这是一个问题。只要 Idle Threads 为零,就不能建立新的客户端连接。新客户端将进入等待状态,直到线程可用。我们对这种情况的建议是增加指令 ThreadsPerChild 的值,如果它在 40 到 100 的范围内,则大约是当前值的两倍,如果大于 100,则增加 50。所需的最小值(对于最大值参数)只能通过反复试验找到。如果增加值后,服务器运行平稳,停止测试。

来源

于 2012-09-09T13:59:49.130 回答
3

建议

请使用 Keep Alive,因为它会提高服务器的性能。仅当 Web 或应用程序之间存在防火墙时才禁用保持活动设置。或者您面临包裹丢失问题/连接重置消息。

  • 您可以增加最大客户端限制,但该限制将完全取决于您的服务器配置。平均而言,每个 apache 线程将占用 25MB,然后在这种情况下,您将最大客户端值保持为 (MAX*load on each thread)/(RAM assigned*threads)。始终将此比率保持在 1/2。
  • 通过增加系统的最大客户端和服务器限制,您可以将用户增加到上述任意数量。
  • 始终定义 min-maxspare 或 min-maxthread 限制。
  • 如果您无法增加最大客户端限制,则非常重要的一点,只需增加侦听积压限制,它将占用队列中的额外请求,从而防止连接断开。
于 2012-12-08T22:56:46.477 回答
1

您必须编辑 httpd.h 文件以允许更大的 maxclients 超过 256 硬编码限制,然后重新编译 httpd 程序。这是在 httpd 的配置文件中建议的。

于 2013-10-22T14:34:23.810 回答
1

有关概述,请参阅本指南:http: //www.devside.net/articles/apache-performance-tuning

这主要是关于您选择的 Apache MPM(基于线程或基于进程)及其设置。

然后您需要将其与 KeepAlive 设置相匹配(我使用基于线程的 MPM,因此将 KeepAlives 设置为 On 并持续 3 秒)。

你是在 Linux 还是 Windows 下使用 Apache?哪个MPM?

于 2012-05-26T14:02:34.537 回答