最近我购买了一台运行 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)不兼容。
查看此页面核心功能和多处理模块,然后点击链接阅读有关各种可用模块的信息。