Home > メンテナンス | 開発 > 画像サーバ構築

画像サーバ構築

超久々の更新となります。

おかげさまで順調にアクセス数が伸びる中、心配になってくるのが「負荷」ですね。
そこで、10万ファイルを超える画像を処理するために、画像サーバをたてました。
その途中経過時点で、不具合等ありましたが、この場を借りてお詫びいたします。

さて、テクニカルな事になりますが、画像表示に特化したサーバなので、
Apacheの設定などをちょこちょこいじっています。


KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 1


StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 496
MaxClients 496
MaxRequestsPerChild 4000

画像表示に特化するため、KeepAliveの設定は極端な値にしてます。
また、ServerLimit、MaxClientsはswapが出始めるギリギリで設定しています。


HostnameLookups off
ExpiresActive on
ExpiresByType image/jpeg "access plus 1 days"
ExpiresByType image/gif "access plus 10 days"
ExpiresByType image/png "access plus 1 days"

また、パフォーマンスを上げるためHostnameLookupsをオフにしてます。
なるべくブラウザのキャッシュ機能を有効に活用するため、更新日時を未来にしてます。

あと、10万以上になるファイルを1つのディレクトリに入れていると、ディスクシステム上パフォーマンスが悪くななります。
そこで、ファイル名のハッシュ値の1文字目2文字目を使って、階層を分けました。

例) /profile_photo/9/b/63971_1.jpg

同様に、サムネイル画像はハッシュ値フォルダ以下に作成されるようにしています。
サムネイルはスクリプトで作成していますが、一度作成されると直接参照する設定にしています。

例) /thumb/cache/profile_photo/9/b/9bf7681a8e79d9e400b0cc4a4c1bf0dc/153×204-100-63971_1.jpg

画像の更新があった場合は、
/thumb/cache/profile_photo/9/b/9bf7681a8e79d9e400b0cc4a4c1bf0dc
を削除して、サムネイル画像のキャッシュをすべて消します。

これで、いまのところストレスなく表示できるようになりました。

Comments:1

ZERO 08-11-06 (木) 23:17

はじめてコメントします。
通りかかったもので、本業ではないですけど同じく最近PHPをベースにして画像点数が多いサイトの構築やっているのですけど、フォルダを分けるとはいえ、そう言うやり方の方がサーバとしての効率はいいですか?(この辺私はネットワークの方が専門であんまり検証したことや実績も無いので判らないので…)
1つは、ウェブサイトのスクリーンショット撮る分はそのやり方にしたのですけど、別の方のウェブアプリはこちらは更新や管理のしやすさなどもあってMySQLにガンガンぶち込む(もちろんテーブルはカテゴリごとに分けていますけど)手法を取りました(汗)
CakePHPの話題出ていましたけど、いくつか私もフレームワーク見て回ったのですけどね、なんだか全体的に使うのは相当慣れないと(関数やら含めて)使いこなせない感じがしてあきらめましたけどね(汗)
※使い勝手は良さそうな感じはしましたけどね。
また、気になったのでちょくちょく見に来ますね。
がんばってください!

Comment Form
Remember personal info

Powered by WP-Hashcash.

Trackback+Pingback:0

TrackBack URL for this entry
http://blog.j-d-s.jp/archives/28/trackback
Listed below are links to weblogs that reference
画像サーバ構築 from デリヘル出勤情報 開発ブログ

Home > メンテナンス | 開発 > 画像サーバ構築

Feeds

Page Top