Apacheが遅い(応答性能が低い)。.htaccessのdeny fromが原因。

Apacheが遅い(応答性能が低い)。
いろいろ情報を見ていると、Requests per secondが5000とか超えるサーバーもあるみたいだが、こちらで利用しているテスト用サーバーではRequests per secondは300程度。サーバーのスペックが低いとはいえ、ずいぶん遅いので原因を調査してみることにした。

どうやら、.htaccessにdeny fromをIPアドレスではなく、ドメイン名などを指定しているのが原因のようだ。

order allow,deny 
allow from all
deny from aaaa.bbbb.com
deny from ccc.ddd.com

よく考えれば、接続元の逆引きが必要になるのでApacheが処理に時間を要するのも当然でした。 (自業自得の設定でした。。)

  • .htaccess deny fromによる処理性能
・.htaccess設置 deny fromでドメイン指定名を指定
Requests per second:    344.10 [#/sec] (mean)

・.htaccess設置 deny fromのドメイン名を指定を抜いたもの
Requests per second:    2358.35 [#/sec] (mean)

・.htaccess未設置
Requests per second:    2653.78 [#/sec] (mean)

全然結果が変わります。。

  • 参考:サーバー環境
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz
Mem:1GB
OS:CentOS release 5 (Final)