カテゴリー別アーカイブ: サーバー関連

PHPのWordPressがApacheを巻き込んで死ぬので鯖変えた

題名の通り。

Windows + Apache + MySQLの環境だけど、何故かプロセスが死んだり、CPUが100%になってハングアップしてたりする。
これまでは安定してたのだけど、050plusの件でアクセス数が増えたからなのか、どうも知らないうちに鯖が止まってしまう。
というわけで、対症療法かも知れないが、VPSから自宅サーバ―(この前購入した鼻毛鯖。Ubuntuをインストール)に急遽移転してみた。

CPUはCorei3よりも下のクラスのPentium G6950だけど、VPSよりも軽く動作する。CPUの世代が新しい&占有できるだけあって、さすがというべきか。今の所安定しているけれど、大量にアクセスが来るとやっぱり不安定になりそうな気もする。
とか書いてる最中に、sshをいじっていると、何かエラー出た。

fork 失敗: メモリを確保できません

APCを導入したせいかな。
とりあえず、適当にググると、共有メモリが足りない(デフォルトは32MB)っぽいので、/etc/sysctl.confに1行追加して共有メモリを増やしておく。

kernel.shmmax = 536870912

メモリ8GBつんでるし512MBぐらいあっても大丈夫だよね。
sudo sysctl -p
も忘れずに。

あとは……ネックになるのは回線速度。
とりあえずは、W3 Total CacheのCDN機能を使って、画像等だけを回線速度の速いVPSから配信する形にした。

これでしばらく試して見よう。

NEC Express5800/S70 タイプPJ を買った

NEC Express5800/S70 タイプPJ を買った。いわゆる鼻毛鯖。

とりあえず、これで家のサーバーをリプレースする予定。
余っていた8GBのメモリも有効活用したい。あと、今までのサーバーでは出来なかったKVMによる仮想化とかで遊べそうなので楽しみしている。

今日の夜届きそうな感じ。

さくらVPSのWordPressが軽くなった。不思議。

ブログ用に新たなドメイン(btmn.jp)を取得し、キャッシュ設定してもwordpressが重いのでVPSのアップグレードを検討していたのだけれど、最近なぜか軽く感じる。

慣れたからなのだろうか。それとも、同じ物理サーバーのお隣さんがCPUリソースを喰うような実験をしていたのだろうか。
色々と謎だけど、まあいいかw

WordPress に W3 Total Cacheを入れてみる

WordPressは高機能な代わりに非常に重いことが分かったので、キャッシュプラグインを入れてみることにした。
W3 Total Cacheが評判なので、それを使ってみる。

まぁこの手のキャッシュプラグインでよく言われる、モバイル用テーマとの相性。結論から言うと、WPTouchとは相性が悪い。
確かにこのW3 Total Cacheプラグインは、Useragentグループを設定することができ、グループごとにページキャッシュを作成できるのだけど、例えばiPhone使ってる誰かが「モバイルテーマをオフ」という操作をしてしまうと、パソコン用のテーマで表示されたページがキャッシュされ、他のiPhoneユーザーにもパソコン用テーマで表示されてしまう。したがって、モバイルデバイスではページキャッシュをしないように設定した。方法は、Page cacheのRejected User Agents:を設定するだけ。ここに設定するリストは、Useragentグループ2つに入っていたリストをつなげただけのもの。

acer\ s100
android
archos5
blackberry9500
blackberry9530
blackberry9550
blackberry\ 9800
cupcake
docomo\ ht\-03a
dream
htc\ hero
htc\ magic
htc_dream
htc_magic
incognito
ipad
iphone
ipod
kindle
lg\-gw620
liquid\ build
maemo
mot\-mb200
mot\-mb300
nexus\ one
opera\ mini
samsung\-s8000
series60.*webkit
series60/5\.0
sonyericssone10
sonyericssonu20
sonyericssonx10
t\-mobile\ mytouch\ 3g
t\-mobile\ opal
tattoo
webmate
webos
240x320
2\.0\ mmp
\bppc\b
alcatel
amoi
asus
au\-mic
audiovox
avantgo
benq
bird
blackberry
blazer
cdm
cellphone
danger
ddipocket
docomo
dopod
elaine/3\.0
ericsson
eudoraweb
fly
haier
hiptop
hp\.ipaq
htc
huawei
i\-mobile
iemobile
j\-phone
kddi
konka
kwc
kyocera/wx310k
lenovo
lg
lg/u990
lge\ vx
midp
midp\-2\.0
mmef20
mmp
mobilephone
mot\-v
motorola
netfront
newgen
newt
nintendo\ ds
nintendo\ wii
nitro
nokia
novarra
o2
openweb
opera\ mobi
opera\.mobi
palm
panasonic
pantech
pdxgw
pg
philips
phone
playstation\ portable
portalmmm
proxinet
psp
qtek
sagem
samsung
sanyo
sch
sec
sendo
sgh
sharp
sharp\-tq\-gx10
small
smartphone
softbank
sonyericsson
sph
symbian
symbian\ os
symbianos
toshiba
treo
ts21i\-10
up\.browser
up\.link
uts
vertu
vodafone
wap
willcome
windows\ ce
windows\.ce
winwap
xda
zte

深くは考えずに設定したが、とりあえずAndroidではうまく動いている。iPhoneは持ってないので知らない。

ちなみに、Pagecacheを切ってもDBやObjectがキャッシュされるので、それなりに効果がでるし、うちのサイトをモバイルから見るのは僕ぐらいしかいないだろうから、特に問題ないだろう。

 

さらに設定を最適化していきたい。

Page Cache、Minify、DB Cache、Object Cacheを有効にする。ここで、それぞれのキャッシュの保存先をどうするかという問題がある。

うちの環境ではキャッシュ用に、DiskとMemcachedが使える。パフォーマンスを考えると全部memcachedにしたほうがいいのかと思っていたが、次のページを見るとそうでもないらしい。

http://cd34.com/blog/scalability/wordpress-cache-plugin-benchmarks/

結果では、ページキャッシュはDisk (Enhanced)、その他をAPCに設定するのがベストらしい。うちではAPCは使えないので、memcachedで代用する。これでもそれほど違いはないはずだ。

これらの結果、さくらVPS 1GBプランの環境でのレスポンスタイムは、未キャッシュの状態で約5秒、キャッシュ済みの状態で約1〜3秒まで向上した。ただ、コメント投稿とかのアクションではレスポンスに20秒ほどかかってしまう。これはスパム対策プラグインが悪さをしているのだろうか。とりあえず色々調整していこう。

VPSを増やしたい。メモリ足りない

自分用のサーバーとして、少し前までは家にあるサーバーを使用していたのだけれど、上り回線が遅すぎると言う問題があったので、殆どの機能をVPSに移している。

回線速度を増強するという手はあることはある。回線がADSLで上りの回線速度が1Mbpsぐらいしかないということなので、光回線に変えれば良い。だが、光回線では固定IPプランは高いし、うちの場合、親が自営業をやっているので、固定IP8個のプランを使っていて、単純に乗り換えると毎月の費用が高くなる。プロバイダを変更すれば、今より安くなるけれど、GMOのお世話には出来るだけなりたくないし、僕が親と同居しなくなったときのことを考えると、やっぱり現状のOCNのほうが安心だったりする。

というわけで、VPSにしているのだけど、VPSの弱点はマシンのスペックの弱さと、価格。
今契約しているのは、以下のVPSだ。

  • さくらVPS 1GB  1480円/月  主にWEBサーバー用
  • Osukini LT   480円/月 (6ヶ月ごと?の支払い)  主にファイルストレージ、バックアップ用

月2000円弱というわけ。

前者はHDDやメモリの容量が足りず、後者はスペックが足りないとかシリアルコンソールやVNCコンソールが使えないとかの欠点がある。さくらVPSの1段階上のプランに変更すれば良いのかも知れないが、それでもメモリは1.5GBだ。それ以上は、出費できる額は限られてるので、あまり良いとは思えない。とりあえずは、さくらのクラウドのサービス開始を待って検討した方が良さそうだ。

でもよく考えたら、WordpressのようなPHPスクリプトは、通信速度よりもCPUとメモリのほうが重要なので、やはり自宅サーバーにして、重いコンテンツやリバースプロキシ、バックアップのみをVPSに置くというのもいいかもしれない。

うーん、悩ましい。