自社ECで販売している、女性向けの下着や水着、
セクシーコスチューム等の画像サイトを
WordPressで運営しています。
1つの投稿に、テーマごとに20~30枚程度の画像と
私たち女性スタッフの着用レビューなどが掲載されています。
最初はとても快適に閲覧できていたのですが、
1日1万PVを過ぎたあたりから、表示に10秒くらいかかるようになり、
2万PVを超えた現在は、完全表示まで20秒以上かかります。
また、休日夜間のピーク時には、
InternalServerError500が出たままになり
VPSを再起動するまで動かなくなる事もしばしばです。
この時はPleskの管理画面にも入れず、
VPSの管理画面からサーバー再起動しています。
そこで、サーバーの負荷対策をしなきゃ! という話になったのですが、
無料サーバー監視ツールのグラフを見ると、私のような素人目には、
そんなに高負荷ではないのに遅くなるようにも見えるので、
正直、原因が全くわからない状況です。
また、「CDN」や「VPSのメモリ増強」など、
キーワードとその概要は調べられても、
社内にインフラ技術者が全くいないため、
実際に効果が期待できるのか、判断しかねています。
目標としては、「サクサク」まではいかなくていいので、
10秒以内程度でページが表示されれば十分です。
何より夜間に500エラーで表示されなくなる症状を防ぎたいです。
インフラに詳しい方に、低予算から試せそうな
オススメ負荷対策をアドバイスを頂けないでしょうか?
また、参考になるブログや、調査・対策を安価にやってくださる
業者さんの紹介など、何でも構いません。
どうかよろしくお願いします。
■現在の運用状況
・GMOクラウドの、VPS4GB(メモリ4G、仮想CPU4コア)+Plesk12です。
・上記VPSに、WordPress用と、画像用のドメインを分けてアップロードしています
→→ http://sample.com (WP用ドメイン)
→→ http://img-sample.com (画像用ドメイン)
・PleskでnginxをONにしています
・画像はJPEGmini等で極力小さくしています。90~200kB程度
・WP側にはキャッシュプラグインとして、「WP Fastest Cache」の
有料版を入れ、PC用・スマホ用のキャッシュを生成しています。
・アクセスの6割がスマホです
■負荷状況
・CPU使用率
普段は5%~20%を行き来しています。
過去2か月で20回以上、使用率100%で警告が出ています。
・ディスク使用量
10%くらい
・空きメモリ容量
70%くらい
・ロードアベレージ
普段は1.4~1.7くらいですが
過去3カ月で7を超える警告が10回程度発生しています。
■その他の制限
無料で使えるCDNとしてCloudFrareを試そうとしたのですが、
扱っている商品画像には、かなりきわどいコスチュームや
モデルさんによる着用プレイイメージ画像などもあるため、
問い合わせてみたところNGと言われました。
そのため、CDNを使うなら他社になるのかと思います。
VPSも同じ理由でGMOクラウドになりました。
■メモリの設定
・WordPress側のwp-configに下記の指定はありませんでした。
define('WP_MEMORY_LIMIT', '★★M');
■PHPバージョン(phpinfoで取得)
PHP Version 5.3.3
■>>mysql --versionコマンドで取得
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
■その他MySQLの情報(mysqladminコマンドで確認)
mysqladmin Ver 8.42 Distrib 5.1.73,
for redhat-linux-gnu on x86_64
Server version 5.1.73
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 1 day 3 hours 32 min 58 sec
Threads: 2
Questions: 5190098
Slow queries: 324
Opens: 39682
Flush tables: 1
Open tables: 64
Queries per second avg: 52.331
■php -mの結果
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
ionCube Loader
json
libxml
mbstring
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
zip
zlib
[Zend Modules]
the ionCube PHP Loader
回答3件
あなたの回答
tips
プレビュー