FC2ブログ

Wordpressのカテゴリーが過剰に増えて激重サイトになってた仮説の検証

検証に使用したマシンスペック

  スペック
CPU Xeon3050
メモリ DDR2 2GB
HDD 40GB 5400 rpm
OS CentOS 6.2 x86 64bit
PHP 5.3.3
MySQL 5.1.61
Wordpress 3.1.2

 

重いサイトについて

既に、運用しているWordpressのサイトのレスポンスが劇的に重いと掲載しました。

・Linux CentOS低予算自宅サーバ奮闘メモ ApacheBenchを使ってWordpressで公開しているページのパフォーマンス測定
http://centlinuxer.blog37.fc2.com/blog-entry-66.html

 

・Linux CentOS低予算自宅サーバ奮闘メモ 新しいサーバでwordpressにApacheBenchを試してみた
http://centlinuxer.blog37.fc2.com/blog-entry-75.html

いずれも、siteBという表記で記載しているサイトの事ですが、何が原因でサイトが重いのか?の犯人特定にまでは至っていませんでした。
前回も記載しましたが、検証用のサーバでApache Benchを試してみたところ、

# ab -c 1 -n 10 http://siteB.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking siteB.info (be patient).....done


Server Software: Apache
Server Hostname: siteB.info
Server Port: 80

Document Path: /
Document Length: 2173881 bytes

Concurrency Level: 1
Time taken for tests: 52.878 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 21740790 bytes
HTML transferred: 21738810 bytes
Requests per second: 0.19 [#/sec] (mean)
Time per request: 5287.777 [ms] (mean)
Time per request: 5287.777 [ms] (mean, across all concurrent requests)
Transfer rate: 401.52 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 0
Processing: 3796 5287 4636.3 3825 18482
Waiting: 3603 5086 4612.0 3631 18212
Total: 3796 5287 4636.5 3825 18483

Percentage of the requests served within a certain time (ms)
50% 3825
66% 3832
75% 3847
80% 3858
90% 18483
95% 18483
98% 18483
99% 18483
100% 18483 (longest request)

同時アクセス数:1

連続アクセス数:10

というアクセスに対して、Time taken for tests:   52.878 secondsと言う事で、1ページあたり5秒程度待ってくださいという散々たる結果でありました。wordpressの管理画面を開いてみると。

WS000430

※管理画面を開くのは比較的素早く開く。


バカみたいにカテゴリーが入っている。このカテゴリーはプログラム的に自動的に突っ込んでるわけですが、とにかく多い。そいうワケで、このカテゴリーが怪しいので、カテゴリーを全消去した後にApache Benchで計ってみたいと思います。

続きを読む

スポンサーサイト

新しいサーバでwordpressにApacheBenchを試してみた

前回、

・ApacheBenchを使ってWordpressで公開しているページのパフォーマンス測定
http://centlinuxer.blog37.fc2.com/blog-entry-66.html

旧サーバのサイトBが致命的にレスポンスが悪いという事で、レスポンス改善対応を行うべく、新サーバに実験用のWebサーバを立てました。ちなみに、新サーバは旧サーバよりCPU性能がかなり良いです。

  旧サーバ 新サーバ
OS CentOS 5 32bit CentOS 6.2 x86 64bit
(必要最低限インストール)
CPU Intel Celeron420 Xeon3050
メモリ DDR3 2GB DDR2 2GB
PHP 5.1.6 5.3.3
MySQL 5.0.22 5.1.61

PHPとMySQLのバージョンが違いますが、旧サーバ計測当時のバージョンです。今は新サーバと同じバージョンで、レスポンス的にさほど変らないかと。。

新サーバ:サイトBの場合(激重サイト)

前回と同じ条件でサイトBのレスポンスを計ってみたいと思います。

同時アクセス数:1

連続アクセス数:10

※重すぎてレスポンスが返ってこないのでこの数字

# ab -c 1 -n 10 http://siteB.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking siteB.info (be patient).....done


Server Software: Apache
Server Hostname: siteB.info
Server Port: 80

Document Path: /
Document Length: 2173881 bytes

Concurrency Level: 1
Time taken for tests: 52.878 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 21740790 bytes
HTML transferred: 21738810 bytes
Requests per second: 0.19 [#/sec] (mean)
Time per request: 5287.777 [ms] (mean)
Time per request: 5287.777 [ms] (mean, across all concurrent requests)
Transfer rate: 401.52 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 0
Processing: 3796 5287 4636.3 3825 18482
Waiting: 3603 5086 4612.0 3631 18212
Total: 3796 5287 4636.5 3825 18483

Percentage of the requests served within a certain time (ms)
50% 3825
66% 3832
75% 3847
80% 3858
90% 18483
95% 18483
98% 18483
99% 18483
100% 18483 (longest request)

Time taken for tests:   52.878 secondsと言う事で、10件の連続アクセスを約52秒で返してきました。CPU性能や、他に作業中のプロセスが動いていないなどの影響から、20秒近くこちらの方が速いです。でも、サイトにアクセスしてページが表示されるまでの時間を考えるとCPUの性能だけではまだまだ遅いです。ここから、改善策を講じて一桁台までもっていけたらと妄想しています。

 

新サーバ:サイトCの場合(プレーンなWordpress)

参考までにwordpressをインストールしただけの場合の速度も計ってみたいと思います。ちなみに、wordpressのバージョンは3.3.1です。

同時アクセス数:1

連続アクセス数:10

# ab -c 1 -n 10 http://siteC.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking siteC.info (be patient).....done


Server Software: Apache
Server Hostname: siteC.info
Server Port: 80

Document Path: /
Document Length: 7547 bytes

Concurrency Level: 1
Time taken for tests: 2.433 seconds
Complete requests: 10
Failed requests: 9
(Connect: 0, Receive: 0, Length: 9, Exceptions: 0)
Write errors: 0
Total transferred: 77654 bytes
HTML transferred: 75434 bytes
Requests per second: 4.11 [#/sec] (mean)
Time per request: 243.252 [ms] (mean)
Time per request: 243.252 [ms] (mean, across all concurrent requests)
Transfer rate: 31.18 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 233 243 3.7 245 247
Waiting: 233 243 3.6 245 246
Total: 233 243 3.7 245 247

Percentage of the requests served within a certain time (ms)
50% 245
66% 245
75% 245
80% 246
90% 247
95% 247
98% 247
99% 247
100% 247 (longest request)

Time taken for tests:   2.433 secondsでテラ速いw約1/26のレスポンスという事で。。。
wordpressをいかに間違った使い方をしているかわかりますね。。

次は、前回のサイトAと同じ条件での計測です。

同時アクセス数:10

連続アクセス数:100

# ab -c 10 -n 100 http://siteC.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking siteC.info (be patient).....done


Server Software: Apache
Server Hostname: siteC.info
Server Port: 80

Document Path: /
Document Length: 7542 bytes

Concurrency Level: 10
Time taken for tests: 13.667 seconds
Complete requests: 100
Failed requests: 67
(Connect: 0, Receive: 0, Length: 67, Exceptions: 0)
Write errors: 0
Total transferred: 776606 bytes
HTML transferred: 754406 bytes
Requests per second: 7.32 [#/sec] (mean)
Time per request: 1366.699 [ms] (mean)
Time per request: 136.670 [ms] (mean, across all concurrent requests)
Transfer rate: 55.49 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 5.1 0 27
Processing: 538 1338 200.4 1354 2359
Waiting: 538 1336 200.4 1349 2359
Total: 538 1340 201.8 1354 2386

Percentage of the requests served within a certain time (ms)
50% 1354
66% 1367
75% 1374
80% 1385
90% 1409
95% 1563
98% 1995
99% 2386
100% 2386 (longest request)

Time taken for testsについて、サイトAが119秒だったのに対して、サイトCは13秒と圧倒的速さ。。。。w

連続アクセス数等の数字が増えれば、よりCPUの性能の違いが出るでしょうが。。

 

これらを基準に、サイトCは我が自宅サーバにおける理想郷の速さという事で、サイトB(激重サイト)のレスポンス改善を行っていきたいと思います。

Kernel panicで僕もパニック(゚Д゚≡゚Д゚)?

何か再起動したら、SSHが繋がらなくなったので、Linuxとディスプレイをつないだら、

 

DSC_1007

Kernel panic - not syncing: Attempted to kill init!

 

いきなりどういう事だってば。。。

 

事の発端は、最小構成でインストールしたCentOSにApacheをインストールして、port80も開けているが、Windowsマシンからアクセスできない。errorログを見たら、

 

[Thu Feb 23 00:56:51 2012] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Thu Feb 23 00:56:51 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Feb 23 00:56:51 2012] [notice] Digest: generating secret for digest authentication ...
[Thu Feb 23 00:56:51 2012] [notice] Digest: done
[Thu Feb 23 00:56:52 2012] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations

何かSELinuxの影響かと思い、どうせLAN内で動かすのだからとりあえずOFFっておくかという事で、

# vi /etc/selinux/config

SELINUX=disabledSELINUXTYPE=disabledをセットして、再起動したらこの有様ですよ。というかセットする項目間違ってる!うんともすんとも言わないので再度ログインして上記configファイルを修正するわけにもいかない。

 

ググってみたら、どうやら設定が足りなかったのか、こちらに起動方法が乗ってました。

・SELinuxの小技
http://tomo.ac/goodstream/selinux/tips.html#SELinuxの有効無効を起動時に指定して起動する方法

電源を入れて、起動時に「Booting CentOS ~」と表示される瞬間に、

DSC_1006

Enter等押せば、GRUBの起動画面が出てきます。ぼやけててスマセン。

DSC_1002

ここで「e」を押し、続いて表示される画面のkernelを選択して「e」を押します。

DSC_1010

そこの末尾に、

selinux=0

と入力すればおk。ちなみに、「=」は「^」のキーを押さないと出ません。これでEnterを押して、「b」キーあたりにbootが割り当てられているので、押下してbootするとなんとか起動に成功(;^_^A

tail –f のログのエラー行に色を着けたい

ログに色を付けるなど、端末のソフトウェアにそういうオプションが実装されてるかどうかの問題だと思ってましたが、コマンドでいけるようです。まぁそういう機構が実装されてるから色が出るんでしょうけど。ググってみると、

・Apacheログに色を付けて快適tail生活 - y-kawazの日記
http://d.hatena.ne.jp/y-kawaz/20110713/1310532417

これが探し求め…え!?これなにやってるの?状態で。上記にも書きましたが、端末ソフトのオプションで設定できるという頭なので、これドコの端末よ??

こんなブログを立ち上げておきならが、そんな事も知らねーのか!と怒られそうですが…こちらにヒントが。

・Hunting Field: そのログ、色つきでtailしたくないですか?
http://kokukuma.blogspot.com/2011/12/tail.html

ディスプレイに文字を表示する際のエスケープ。 つまり、今自分が使っているターミナルが、 受け取った文字列を表示する際の制御文字みたいなものらしい。 ANSI エスケープシーケンスを使うと、色を変えるだけでなく、 コマンドラインの表示をいろいろカスタムできるらしい。

何となく雰囲気はつかめたような、気がするのですが・・・要するに先ほどのコマンドもそうですが、tail ?f を打つときに併せるとログの色を操作する事ができるとのこと。

細かい理解もしていきたいところですが、今はログ解析の方が優先と言う事で、割愛して

こちらの方が書かれている、

・CodeIgniterのログに色を付けて快適tail生活 | blog :: e2esound.net
http://e2esound.net/blog/article/25

image

これを表示させるgithubにアップされてるスクリプトが表題の件に理想的という事で、利用させていただきました。

・CodeIgniterのLogをカラー表示にするsedスクリプト ? Gist
https://gist.github.com/1160353

よく使うディレクトリ(/home/hogedir)に、loghighlighterというファイル名で保存。

$ chmod +x loghighlighter

でスクリプトファイルへ実行権限を与えてやります。以下のようにコマンドするだけで

$ tail -f log-2012-02-17.php | /home/hogedir/loghighlighter

※phpの拡張子付いてますがログファイルです。

ありがたや~色が着きました。

image

※オレンジ色ベースなのは厨二仕様です。ログの時間は気にしないでね

 

あ、でもよく見たら、このログの場合、行全体ではなくERRORの文字だけですね。まぁスクリプトは追々解析していきたいと思います。

CentOS 6.2最小構成を入れたがLANを認識しないので、問題を探ってみたら。。

問題はちゃんと切り分けて考えていけば、着実に解決するというお話。

 

初代サーバと同じマザーボード(BIOSTAR 945GC-M7 TE)なのでLANカードを認識してくれないだろうとの予想があり、やっぱり繋がらない。同じようにI-O DATA ETX-PCI PCI用LANアダプタを買わなきゃいけないのかなと漠然と思ってました。ETX-PCIは便利なもので、挿すだけでLANを認識してくれました。(だったはず。。)割りとスムーズに問題が解決したのを覚えてます。

 

その手持ちのETX-PCIが挿さってるマザーボードでも、CentOS 6.2 最小構成版は認識しませんでした。(・ω・;)?

と言うことは、CentOSをフルインストールした時に、自動的になにかやってくれているのだなという予測から、これってもしかして、やりようによってはオンボードでも認識するんじゃね?といろいろやってみました。

続きを読む

CentOS6.2 Live CD版と最小構成版のインストール時のファイルサイズ

P2020332

メインはプログラマなので、使い倒すほど使ってるわけじゃありませんが、Linuxと言えばCentOSでバージョン4の頃からパソコンにインストールなどしてたものですから、インストール=CDからという古い考えの基、前回組み立てたパソコンに最新のCentOS 6.2を入れてみる事にしました。
スペックはこんな感じで↓

・Linux CentOS低予算自宅サーバ奮闘メモ AmazonでCore 2 Duo CPUを注文したらXeonが届いた!
http://centlinuxer.blog37.fc2.com/blog-entry-70.html

ググってみるとDVDからインストールされている方が多いのですが、我が家には初代サーバから引き継がれているボロボロのCD-ROMドライブしかインストールする手段しかありません。。(と思っていた)
CentOS 5 時は6枚くらいCD焼いたのに、え?1枚でいいの?と思いながらLive CD x86 64bit版をCDに焼いてドライブへ挿入。

しようと思ったら、もう寿命かこの寒気の影響で鉄が曲がってるのか、ドライブが出て来ない。。というわけで工具を使って無理矢理こじ開けてCDをスタンバイして、インストール。

 

image

 

CentOS 6になってからUIが綺麗ですな。Live CD版でもGUIで操作できます。このサーバはHDDを40GBしか装備してないので、気になる空き容量は。。

 

[hogeusr@localhost ~]$ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/vg_kurosaba-lv_root
35458728 2102236 32996404 6% /
tmpfs 895984 284 895700 1% /dev/shm
/dev/sda1 495844 33465 436779 8% /boot

え?使用量たった2MB?で空きが31MBもある!すんばらしいということで。

 

でもやっぱり、GUI必要ないって事で、最小構成版をCDに焼いてインストールしてみました。マウスで操作できなくなりますが。。

そして、またもやCDドライブ開かないってことで、無理矢理開けてCD挿入。
インストール後にdfコマンド。

[hogeusr@hanasv2 ~]# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/vg_kurosaba-lv_root
35458728 697540 32959972 3% /
tmpfs 1023200 0 1023200 0% /dev/shm
/dev/sda1 495844 40189 430055 9% /boot

すげーー700KB程度で動いてるのかーー!!と喜ぶのもつかの間。空き容量はLive CD版と変わりがないですね(´ヘ`;)

 

もっといっぱい比較してみれば良かったですが、いろいろ別の部分で格闘する事があったので、これだけという事で。

その格闘の一つに、上記にもあるようにCDドライブが出てこない。。結構無理にねじ込んでのインストールでしたが、意外とこの2008年にリリースされたと思しきマザーボードのスペックなら、USBメモリがあっさり認識してくれる。CD焼くの面倒なので、USBメモリでインストールがオススメです。まぁBootだのBIOSの設定が必要になるかもしれませんが。

AmazonでCore 2 Duo CPUを注文したらXeonが届いた!

AmazonのマーケットプレイスでCore 2 Duo Processor E6300 1.86GHz BX80557E6300 を注文したら、

 41w34SyzuFL._SL500_AA300_

Xeon 3050が届きました( ゚Д゚)!

 xeon

同封されている書類によれば、

com

同等って何んすか!?

 

wikipediaによれば。。

・Xeon - Wikipedia
http://ja.wikipedia.org/wiki/Xeon

2006年9月に発売されたプロセッサ。ハードウェアとしてはデスクトップ向けCore 2 Duoとほぼ同等。また、豊富なCore 2 Duo用マザーボードの流用を前提としており、FSBは1,066MHzで後に1,333MHz製品が追加された。パッケージもLGA775と、ConroeのCore 2 Duoとはほぼ相違がない

相違がない!?動くのこれ?マザーボードの対応CPUに載ってないけど。。

などと呟いていたら、こんなリンクを教えていただきました。

・Core2 Duo E6300とXeon 3040 双子! 双子! 双子!
http://hdd-check.com/pc_94.html

双子?でも、番号が微妙に違うからなんとも。。

これって、注文したものと違うじゃねーか!とクレームをするべき案件なのかもしれませんけど、むしろサーバ向けのCPUで動く&同等性能であれば、クレームする労力の方が無駄というわけで組み立て開始!

続きを読む

プロフィール

白鯖

Author:白鯖
安い寄せ集めの部品で構築し、CentOS5をインストールしました。主に、Webサーバ、アプリケーションサーバとして運用中。ハードの知識はあまり無いプログラマですが、全部自前で作るのは、手間はかかるけど、レン鯖より面白いです。

ハードウェア構成

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
Max TDP控え目なCPU
安くて静音なクーラー
検索フォーム
ユーザータグ
RSSフィード
はてな
スポンサード リンク
おすすめ書籍
twitter