web-dev-qa-db-ja.com

複数のコアを使用するようにApacheを設定する

最近、Ubuntu 10.04とApacheを実行している6コアサーバーを購入しました。 6つのコアすべてを使用するようにApacheを設定するにはどうすればよいですか。これを行うためのベストプラクティスは何ですか。

それは可能ですか?可能であれば、それは以下と関係があります(これらは私の設定ではありません)?

<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>
3
Grimlockz

Apache(およびその他のマルチスレッドアプリケーション)は、デフォルトで使用可能なすべてのコアを使用します。 Apacheでコアよりも少ないサーバーを使用するように設定していない限り、他に必要なアクションはありません。

9
EEAA

Apache内で何が実行されていますか?多くの場合、スレッド化の制限は、非スレッド化モジュールまたはアプリケーションコードにあります。

2
Shane Madden

デフォルトでは、Apacheのほとんどのパッケージバージョンで利用可能なストック構成を使用して、何もする必要はありません。

マルチコアシステムでのApacheの動作と構成方法は、使用する [〜#〜] mpm [〜#〜] によって大きく影響されます。最も一般的なMPMの1つはpreforkです。

プリフォークは基本的に、すべてのリクエストに対して個別のプロセスを提供します。プロセスは、すべてのコアを使用するためにOSによって簡単に分散できます。

ワーカーMPMは実際にはマルチスレッド操作を有効にしますが、スレッドセーフでない一部のApacheモジュール(PHPなど)とは互換性がありません。

このページ コア機能とマルチプロセッシングモジュール を参照し、リンクをたどって、利用可能なさまざまなモジュールについて読んでください。

2
Zoredache