web-dev-qa-db-ja.com

Windows Server 2008のApacheチューニング推奨事項

ドメインのワイルドカード証明書を利用するために、リバースプロキシとしてWindows Server 2008R2にApache2.464ビットを実装しました。軽い負荷でもパフォーマンスにがっかりしたので、何かを間違えたのかもしれません。プロキシ(Glassfish 3.0.1)によって提供されるWebサイトは、応答しなくなるまでますます遅くなります。 Apacheを再起動すると一時的に問題が修正されますが、すぐに応答しなくなります。 GlassfishサーバーのIPアドレスに直接アクセスしてプロキシをバイパスすると、GFは問題ではないことがわかります。私たちが行っているのは、ApacheのSSLフロントエンドのリバースプロキシだけです。そして内部ネットワーク上のトラフィックをhttpでGlassfishサーバーに渡します。

Webサイトが応答しない場合、Windows Serverプロセスを見ると、アクティビティがほとんどないことがわかります。 CPUは10%で実行されている可能性があります(シングルCPU)。接続数は30未満ですTCP接続。メモリ使用率はGB未満です(4GBマシンです)。ネットワークトラフィックは100kbpsのしきい値をほとんど超えていません。すべての兆候は、サーバーがほとんど壊れていないことを示しています。汗をかいても、サイトは反応しません。

次のプロパティを設定しました。

SSLSessionCache  "shmcb:C:/Apache_direct/logs/ssl_scache(1024000)"
SSLSessionCacheTimeout  300

ThreadsPerChild 3000
MaxRequestsPerChild 0 
KeepAlive On 
KeepAliveTimeout 15 

ProxyRequests Off
SSLStrictSNIVHostCheck off
ProxyBadHeader Ignore

各サーバーのhttpおよびhttpsポートごとに仮想ホスト設定があります。 VHostの設定は次のようになります。

<VirtualHost *:443>
ServerName test.domain.org
#
ProxyPreserveHost On
SSLEngine on
ProxyPass / http://192.168.80.196:8080/
ProxyPassReverse / https://192.168.80.196:8080/

</VirtualHost>

ここで重要な設定を見逃したり、設定を誤って構成したりしましたか?私が読んだことに基づいて、Apacheは以下のようなトラフィックを簡単に処理できるはずです。

800 visits an hour.  13k visits daily.
100 uploads an hour of roughly 60mb MP3 files.
400 downloads an hour of those same MP3 files.
800 downloads of small (100k) pdf files.

Glassfishはすべてのファイルのアップロード/ダウンロードを提供しており、これらのセッションを最大1時間持続させることができます。ほとんどのファイルは一意であるため、使用するキャッシュ設定(ある場合)については少し不確かです。おそらく、SSLキャッシュ設定を省略する必要がありますか?

Web上のApacheパフォーマンスチューニングには多くのヒットがありますが、特にリバースプロキシ、SSLを扱い、トラフィックのタイプ/量に基づいて推奨事項を提供するものはほとんどありません。いくつかの提案は非常に役立ちます。

3
Pete Helgren

私は自分のクエリに返信して、誰かがこれに遭遇した場合、少なくともある種の答えが表示されるようにします…。

この特定の構成が正しい、正しくない、または改善できるという確認は得られませんでした。私は次の変更を加えてもう一度やり直すことを決めたことを知っています(私の当てはめの推測):

Threadlimit 3000
ThreadsPerChild 3000
MaxRequestsPerChild 0 
KeepAlive On 
KeepAliveTimeout 15 

AcceptFilter https none
AcceptFilter http none
EnableSendfile Off
EnableMMAP off

ProxyRequests Off
SSLStrictSNIVHostCheck off
ProxyBadHeader Ignore
HostnameLookups off
ExtendedStatus off

この構成ではパフォーマンスの問題は発生しなかったため、本番環境で実行しています。リバースプロキシ環境で優れたパフォーマンスを実現する方法である主な質問は、試行錯誤によって解決されました。

4
Pete Helgren