サーバのカスタマイズで乗り切る限界を突破してしまったため、GIGAZINEは今から新サーバに移転します。新サーバ移転後、何か不具合などがある場合には臨時用のこちらのメールフォームからご連絡いただければ助かります。

というわけで以下、旧サーバと新サーバの設定などについて。サーバのカスタマイズに興味のある人向けです。
まず旧サーバは「Dell PowerEdge 850」を利用しており、以下のようなスペックです。よくありがちな構成。

◆旧GIGAZINE.NETサーバ
CPU:Intel PentiumD 930
HDD:73GB(SCSI RAID1)
メモリ:2GB
ネットワーク:2Mbps
OS:Red Hat Enterprise Linux ES3

これが以下のようなスペックの「NEC Express5800 120GR-1c」になります。これもありがちな構成。

◆新GIGAZINE.NETサーバ
CPU:Xeon 2.8GHz DUAL
HDD:250GB RAID1
メモリ:2GB
ネットワーク:10Mbps
OS:Red Hat Enterprise Linux ES4

GIGAZINEの場合、CPUが最大のネックになるので、サーバの台数を増やすよりもCPUの数を増やすか、仮想化してマシンリソースを統合するとか、いわゆるブレードサーバ的アプローチの方が管理が簡単な気がする。

◆Apache
Apacheの設定でデフォルトから変更したのは主に以下のような感じ。負荷を軽くすることが最優先なので、最速になる設定ではないことに注意。

Timeout 60
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 1
HostnameLookups Off

で、使わないモジュールは全部コメントアウト。これは必須。使用するモジュールのみにとどめること。そうしないと余計なメモリを消費することになる。

それから.htaccessは使わず、すべてhttpd.conf1つに設定を集中させる。これをしないと1.3倍ほど負荷が上昇する。

また、robots.txtで行儀の悪いボットの巡回タイミングを調整する。これかなり重要です。robots.txtの変更だけで負荷が半分まで下がった。MSNとGoogleとYahooの同時アタックを受けないようにがんばりましょう。

加えて、ディスクの読み書きを減らすためにmod_mem_cacheを使ってfaviconやrobots.txt、ロゴ画像やRSSアイコン画像といったほとんど変更することのない割にはアクセスの多いファイルをキャッシュに入れる。なお、ベンチマークすれば分かるがメモリでなくファイルとしてキャッシュするmod_disk_cacheでも効果はある。対象が静的ファイルであってもmod_disk_cacheは効果あり。しかしmem_cacheの方が大体1.5倍〜2倍ほど高速になる。また、ディスクの読み書きが発生しないので大量の読み書きが発生する環境では効果絶大。

mod_mem_cache - Apache HTTP サーバ

Apache 2.2でWebサイトをパフォーマンスアップ!(2/3) − @IT

そしてhttpd.conf自体の軽量化のためにあらゆるコメントを削除してすっきりと。

また、PHPを高速実行するために「eAccelerator」をインストール。RPMがあるので以下のサイトから自分のOSに合ったものをインストールしましょう。とっても簡単。

DAG: php-eaccelerator RPM packages for Red Hat/Fedora

この際、設定ファイルは「/etc/php.d/eaccelerator.ini」になります。メモリに余裕があるのであれば、eaccelerator.keys、eaccelerator.sessions、eaccelerator.contentのすべての値を「shm_only」にすればメモリ上のみでキャッシュされるようになり、ディスクの読み書きが発生しないので負荷が著しく下がります。

MySQLの設定については新サーバに移動したら見える記事、「GIGAZINE、新サーバに移転完了」を参照。つまり「GIGAZINE、新サーバに移転完了」の記事が見えれば、そこが新サーバということです。

では、続きは新サーバで。DNSが浸透したらまたお会いしましょう。


記事全文へ