Apache 性能调优:交换内存

在我们进入细节之前 Apache 调整,我们需要了解当 VPS 服务器或专用服务器由于配置优化不佳而无响应时会发生什么。

过度优化的服务器被配置为允许比服务器硬件可以管理的更多的同时请求 (ServerLimit)。 以这种方式设置的服务器有一个临界点,一旦到达,服务器将陷入永久交换场景。 这意味着内核无法快速从系统交换文件读取和写入数据。

交换文件的读/写访问速度比标准内存空间慢得多。 交换文件的延迟可能会导致服务器出现瓶颈,因为内核尝试以比物理上更快的速度读取和写入数据,或者通常称为抖动。 如果没有立即发现,颠簸会使系统失控,从而导致系统崩溃。

如果垃圾清理运行时间过长,它可能会在短时间内模拟数十年的读/写活动,从而对硬盘驱动器本身造成物理伤害。 优化时 Apache,我们必须谨慎,不要创造一个颠簸的场景。 我们可以通过基于几个因素计算服务器的抖动点来实现这一点。

飞行前检查

这篇文章涵盖了所有 Apache-基于服务器包括但不限于传统的专用服务器和托管服务器 Cloud 运行各种 Linux 发行版的服务器。 我们将包括存储的主要位置 Apache 以下 Liquid Web 系统类型的配置:

估计颠簸点

计算服务器的估计抖动点或 ServerLimit 使用一个简单的等式:

计算颠簸点
  • 增益/缓存:内核用于缓冲区和缓存的总内存。
  • 预订的: 为非保留的内存量Apache 过程。
  • 可用的: buff/cache 和 Reserved memory 的区别。
  • 平均Apache:所有运行的平均值 Apache 工作高峰期的儿童。

注意:计算颠簸点/ServerLimit 应在运行高峰期进行,并定期重新评估以获得最佳性能。

颠簸点值等于数字 Apache 服务器可以运行的孩子; 这适用于线程或非线程子项。 当内存中运行的子节点数达到计算的颠簸点时,服务器将开始倒塌。 以下示例演示了一个标准的 Liquid Web 完全托管 cPanel 服务器,以说明收集必要的详细信息以计算系统的估计颠簸点。

缓冲/缓存内存

在现代 Linux 系统上,缓冲区/缓存可以使用 /proc/内存信息 通过添加缓冲区、缓存和板统计数据来创建文件。 使用 free 命令,我们可以快速获取这些信息,如下例所示:

free

输出:

使用 free 命令获取 buff/cache 信息

不要被标有“可用”的列所迷惑。 我们只查看可以重新分配的内存,即 buff/cache 列 (708436)。

保留内存

保留内存是为其他服务保留的一部分内存 Apache. 一些最大的竞争者之外的额外内存 Apache 是 MySQL、Tomcat、Memcache、Varnish 和 Nginx。 有必要检查这些服务配置以确定有效的保留内存。 这些配置超出了本文的范围。 然而,MySQL 是最常遇到的服务 Apache. 你可以找到 在线工具 帮助分析和配置 MySQL 与本文分开。

笔记:Save 服务器上运行的任何额外服务的总 buff/缓存内存的 25%。 例子:

  • 一个标准的 cPanel 服务器运行多个服务 Apache 和 MySQL。 具有这些服务的服务器在较重的一侧运行,需要 25% 保留给非Apache 服务。
  • 一个纯 Apache 高容量负载平衡配置中的 web 节点不需要为其他服务保留任何额外的内存。

平均数 Apache 记忆

求平均大小 Apache 使用 ps 命令列出所有正在运行的 httpd 进程的 RSS(驻留集大小)相对简单。 注意:某些发行版使用“apache”而不是“httpd”作为进程名称。

这个例子使用了一个简短的 awk 脚本打印出平均值而不是列出尺寸。

ps o rss= -C httpd|awk '{n+=$1}END{print n/NR}'

输出:

22200.6

这个例子很容易手动平均,但更大的服务器需要更多的计算。

ps o rss -C httpd

输出:

RSS  5092  27940  28196  27572

计算颠簸点

收集后将可用内存除以平均。 Apache,四舍五入到最接近的整数。 可用内存是缓冲区/缓存内存减去保留内存。 下面以表格形式总结计算过程。

颠簸点计算

下面提供了各种内存配置的保守估计。 这些估计可用作初始配置,但需要在高峰时段进行额外的后续性能评估,以调整服务器的指令。

一般颠簸估计

结论

确定最佳优化点 Apache 可以避免服务器停机、浪费销售和丢失客户。 调节可用资源是确保您的服务以最佳速度保持正常运行的关键组成部分,

我们经验丰富的技术人员和系统管理员随时可以向您展示如何利用这些技术!

通过我们的票务系统 [email protected]、电话(800-580-4986)或通过 在线聊天 或任何你喜欢的方法。

因为我们以成为 Hosting™ 中最有帮助的人而自豪,所以我们努力工作,所以您不必这样做!