设置 Apache 以使用多个核心

设置 Apache 以使用多个核心

最近我购买了一台运行 Ubuntu 10.04 和 Apache 的 6 核服务器。如何设置 Apache 以使用所有 6 个核心?最佳做法是什么?

这可能吗?如果可能的话,这是否与以下内容有关(这些不是我的设置)?

<IfModule prefork.c> 
StartServers 10 
MinSpareServers 10 
MaxSpareServers 20 
ServerLimit 1500 
MaxClients 1500 
MaxRequestsPerChild 4000 
</IfModule>

<IfModule worker.c> 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 
</IfModule> 

干杯

这是我当前的配置

# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

# event MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_event_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

答案1

Apache(以及任何其他多线程应用程序)默认会使用所有可用核心。只要您没有将 Apache 设置为使用少于核心数量的服务器,就无需采取其他操作。

答案2

Apache 中运行着什么?通常,线程的限制在于非线程模块或应用程序代码。

答案3

默认情况下,使用大多数 Apache 软件包版本中提供的库存配置,您无需执行任何操作。

Apache 在多核系统上的工作方式以及配置方式很大程度上受以下因素的影响:多层印刷机你使用的。其中一个最常用的 MPM 是 prefork。

Prefork 基本上为每个请求提供了一个单独的进程。操作系统可以轻松分散进程以使用所有核心。

工作 MPM 实际上支持多线程操作,但它与某些非线程安全的 Apache 模块(例如 PHP)不兼容。

查看此页面核心功能和多处理模块,然后点击链接阅读有关各种可用模块的信息。

相关内容