OSやハードウェアがApacheのパフォーマンスに影響を与える要素、注意点について調べました。
下記サイトを参考にしました。
Apache Performance Tuning
※目次をクリックすると目次の下部にコンテンツが表示されます。
OS
・OSは最新の安定バージョン、パッチレベル使用するようにします。
・多くのOSは、TCPスタックとスレッドライブラリを大幅に改良していて性能が向上しています。
・OSがsendfile(2)システムコールをサポートしていたらインストールし、必要なパッチを適用します。
Linuxでは、Linux2.4以降がサポートしています。
sendfileを使用する事によって、より少ないCPU使用量で静的コンテンツを高速に送りだす事が出来ます。
・多くのOSは、TCPスタックとスレッドライブラリを大幅に改良していて性能が向上しています。
・OSがsendfile(2)システムコールをサポートしていたらインストールし、必要なパッチを適用します。
Linuxでは、Linux2.4以降がサポートしています。
sendfileを使用する事によって、より少ないCPU使用量で静的コンテンツを高速に送りだす事が出来ます。
RAM
ハードウェア関連の要素で、最もWebサーバーの性能に影響を与えるのがRAMでしょう。次の点に注意します。
●スワップが起きないようにする
・スワップが発生するとユーザーのリクエストに対して遅延が増加するので避けなければなりません。
遅延が発生するとユーザーがブラウザの停止操作やリロード操作を行う事が多く、それによってさらなる負荷の増大を招くことになります。
スワップの発生を軽減する対策として、”MaxClients”の設定を適切に管理する事があります。
●MaxClientsを適切に管理するには?
①topコマンドなどを使ってプロセスリストを表示し、平均的なApacheプロセスのサイズを確認します。
②利用できるトータルのメモリ量から他のプロセス用にいくらかの領域を確保したうえで、上記平均サイズ分を割ってMaxClients数を見積もります。
●スワップが起きないようにする
・スワップが発生するとユーザーのリクエストに対して遅延が増加するので避けなければなりません。
遅延が発生するとユーザーがブラウザの停止操作やリロード操作を行う事が多く、それによってさらなる負荷の増大を招くことになります。
スワップの発生を軽減する対策として、”MaxClients”の設定を適切に管理する事があります。
●MaxClientsを適切に管理するには?
①topコマンドなどを使ってプロセスリストを表示し、平均的なApacheプロセスのサイズを確認します。
②利用できるトータルのメモリ量から他のプロセス用にいくらかの領域を確保したうえで、上記平均サイズ分を割ってMaxClients数を見積もります。
RAM以外のハードウェア
使用する環境にもよりますが、CPUの速度、ネットワークカード、ディスクなどのハードウェアもApacheのパフォーマンスに影響を与える場合があります。
-
インストール、設定全般、運用
- Apacheのインストール
- Apache初期設定確認
- Apacheの静的、DSOモジュールの確認、インストール方法
- Apacheでconf.dディレクトリ内の設定ファイルのインクルードに注意
- Apacheのhttpdサービスの使用方法
- WordPressパーマリンク設定時のApache設定
- Apache mod_rewriteの仕組み、設定方法、動作確認
- Apacheで特定の拡張子を含むリクエストをログ対象から外す
- CentOS Stream9でApache、PHPを設定する際の注意点
- ApacheのTraceメソッドを無効にする
- ヘッダーにApacheバージョンが表示されないようにする
- PHPのバージョン情報とApacheの設定
- Apacheでディレクトリ内一覧表示を無効にする
- Apacheで不要なモジュールはロードしない
- Apacheで不要なモジュールはロードしない(1)ベーシック認証と認証プロバイダ
- Apacheで不要なモジュールはロードしない(2)ダイジェスト認証
- Apacheで不要なモジュールはロードしない(3)mod_rewrite、LDAP、WebDAV
- Apacheで不要なモジュールはロードしない(4)Server Side Includes
- Apacheで不要なモジュールはロードしない(5)mod_mime_magic
- Apacheで不要なモジュールはロードしない(6)mod_info、mod_status
- Apacheで不要なモジュールはロードしない(7)mod_speling、mod_userdir
- Apacheで不要なモジュールはロードしない(8)プロキシ関連のモジュール
- Apacheで不要なモジュールはロードしない(9)キャッシュ関連のモジュール
- Apacheで不要なモジュールはロードしない(10)CGI関連のモジュール
- Apacheで不要なモジュールはロードしない(11)フィルター、expires、圧縮のモジュール
- Apacheでディレクトリへのアクセスを制限する設定方法
- Apacheベーシック認証の設定手順とセキュリティ上の注意
- Apacheで使用できるHTTPメソッドを制限する
- FIPS140-2とApacheのmod_nss
- Apacheにおける自己証明書作成手順
- ApacheにおけるSSL証明書インストール手順
- DoS攻撃からWebサーバーを保護するApacheモジュール
- Apacheに関するLinux側のセキュリティ設定(パーミッション、iptables、chroot)
- Modsecurityの概要と特徴
- Modsecurityのインストール方法
- modsecurityの設定方法と設定例
- Apacheのパフォーマンスに影響を与えるOS、ハードウェアの要素、注意点
- ApacheのMPMの概要とチューニング
- ApacheのMaxClientsのチューニングとListenBacklog
- HostnameLookupsを有効にして名前解決を行う場合のApacheパフォーマンスに与える影響
- FollowSymLinks、SymLinksIfOwnerMatchの設定とApacheのパフォーマンス
- AllowOverrideの設定とApacheのパフォーマンス
- コンテントネゴシエーションの設定とApacheのパフォーマンス
- Apacheのプロセス生成とパフォーマンスに与える影響
セキュリティ
パフォーマンス