sh-*_*eta 18 performance threads mpm-worker apache-2.2
在 Apache 中使用 Worker MPM 时,您可以调整子进程数和每个子进程的服务器线程数。
各自的优缺点是什么?在什么情况下你会增加一个或另一个?
jon*_*ini 25
到目前为止,这些是我在确定 Threads 与 Processes 时的首要考虑因素:
线程将使用比进程少得多的常驻内存。是的,使用动态链接库,大量内存在 Apache 控制进程及其子进程之间共享,但是每个新进程都需要实例化您启用的所有模块。
这很容易通过比较每个进程的内存使用情况来测试,例如,每个进程有 5 个进程和 1 个线程,或者每个进程有 5 个进程和 25 个线程。在我这里的情况下,无论线程数量如何,每个子进程都需要大约 7 MB。
+对于线程
就时间和 cpu 周期而言,启动加载新进程所需的时间比加载线程所需的时间更长。这可以通过验证通过“ab”提供的平均页面数量来测试。
+对于线程
一个进程线程都依赖于进程。这里最大的问题是,如果进程发生了什么事情,它会影响与之关联的所有线程。如果您正在使用具有一堆线程的单个进程运行,那么当进程终止时,线程也会终止。因此,如果您愿意,更多进程会导致更好的分离,从而导致更大的“容错”。
+对于流程
与(3)相关,对于 PHP 等模块,它们的内存由 Process 加载并在所有线程之间共享。这意味着,如果您将 php 的 memory_limit 设置为 100Mbs,其中 25 个线程低于 25 个线程,那么从技术上讲,在最大负载下,每个线程最多可以分配 4MB(当然它不会以这种方式发生,有些会占用,有些会饿死)。
所以最后,这真的取决于您的用例。话虽如此,您将希望最大限度地使用线程数,以减少内存使用量并提高响应速度。但是,您必须通过适当数量的进程来平衡它以获得更好的容错能力。
当然,我不是这里的专家,因为我最近才不得不关注这个问题,所以我期待看到这里可能会出现其他答案!
归档时间: |
|
查看次数: |
9148 次 |
最近记录: |