Software/Webアプリの最近のブログ記事

15分前に、Zend optimizer未導入であることに気付く。

明日はどんな風が吹くか分からないので、今やることにする。

というわけで、Zend Technologiesから持ってきましたよ、ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz。

$ gunzip -dc ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz | tar xvf -
$ cd ZendOptimizer-3.3.0a-linux-glibc21-i386
# ./install.sh

はい。終了。
先ほどのポストから20分経過。

......errorでつ。

PHP Fatal error: [Zend Optimizer] Zend Optimizer 3.3.0 is incompatible with eAccelerator 0.9.5.2 in Unknown on line 0

あぁ、eAccelerator設定の後ろにZend Optimizerを書けばいいのね。

# vi /etc/php.d/eaccelerator.ini

Ctrl+G,oして


[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

を追記

OK。

早速ApacheBenchを。

$ ab -n 100 -c 10 http://***.kenji00.com/index.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.1 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking cat.kenji00.com (be patient).....done


Server Software: Apache
Server Hostname: ***.kenji00.com
Server Port: 80

Document Path: /index.php
Document Length: 14343 bytes

Concurrency Level: 10
Time taken for tests: 47.88499 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 1477900 bytes
HTML transferred: 1434300 bytes
Requests per second: 2.12 [#/sec] (mean)
Time per request: 4708.850 [ms] (mean)
Time per request: 470.885 [ms] (mean, across all concurrent requests)
Transfer rate: 30.64 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.6 0 6
Processing: 1602 4602 2817.0 3938 17307
Waiting: 1517 4430 2793.6 3701 17225
Total: 1602 4602 2817.0 3938 17307

Percentage of the requests served within a certain time (ms)
50% 3938
66% 4926
75% 5685
80% 6570
90% 8583
95% 10652
98% 13889
99% 17307
100% 17307 (longest request)

遅くなってるやん。orz

あ!未だCacheされてないからだ!

もう一度。

$ ab -n 100 -c 10 http://***.kenji00.com/index.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.1 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking cat.kenji00.com (be patient).....done


Server Software: Apache
Server Hostname: ***.kenji00.com
Server Port: 80

Document Path: /index.php
Document Length: 14343 bytes

Concurrency Level: 10
Time taken for tests: 46.674345 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 1477900 bytes
HTML transferred: 1434300 bytes
Requests per second: 2.14 [#/sec] (mean)
Time per request: 4667.434 [ms] (mean)
Time per request: 466.743 [ms] (mean, across all concurrent requests)
Transfer rate: 30.92 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.8 0 7
Processing: 1703 4588 2518.1 4090 10632
Waiting: 1627 4323 2396.7 3716 9809
Total: 1703 4588 2518.3 4090 10632

Percentage of the requests served within a certain time (ms)
50% 4090
66% 5160
75% 6654
80% 6945
90% 8670
95% 9532
98% 10449
99% 10632
100% 10632 (longest request)

微妙。

Jan
26
2008

ベンチマークに使っていたXOOPSアプリのcache機能を使っていなかったので、こちらも設定したところで、以下、備忘録。

Requests per second基準で。


  • eAccelerato0.9.5.2導入での効果は225%
  • mod_deflateの圧縮コストも計測しなきゃだわ。
  • XOOPS cache設定効果で250%

環境:CentOS release 3.9 (Final) + Apache2.0.40(※) + PHP 5.1.6

[初期]
Requests per second: 1.14 [#/sec] (mean)
Transfer rate: 16.41 [Kbytes/sec] received

[+eAccelerato0.9.5.2]
Requests per second: 2.57 [#/sec] (mean)
Transfer rate: 36.88 [Kbytes/sec] received

[+mod_deflate+mod_expires+ZendOptimizer-3.3.0a]
Requests per second: 2.12 [#/sec] (mean)
Transfer rate: 30.64 [Kbytes/sec] received

[+XOOPS cache設定]
Requests per second: 5.34 [#/sec] (mean)
Transfer rate: 76.95 [Kbytes/sec] received

結論


  • XOOPSに関しては、最初からCache機能に気付け、俺。
  • まぁ、非XOOPSなサイトに関してもパフォーマンスが出るようになったので、良しとする。
  • 仕事でサーバ触らなくなったので、自宅で作業するのが楽しい。


※:このApacheは脆弱性アリversionですな。先ほどupdateしました。:-)

Feb
10
2008

久々に素のOSを育ててますが、トキメキよりも面倒くささが先にたち、「あぁ、もうオッサンだなぁ」と嘆息しているわけです。先ほどTSUTAYAに返しに行ったDVDには「北の国から 83 冬」が混じってましたし、一番最近買ったCDは、盗んだバイクで走り出す人を謳ったモノ(BookOFFで250円)だし。

なので、configファイルをviでガシガシ編集するよりも、適当なツールで基本設定をしてもらうという手抜き工事に走っています。

となると俄然便利なのがwebmin

ただし、このコは結構なメモリ喰い。常駐させるのはヤな感じです。
そういう時は、xinetdでアクセスした時だけ起動させましょう。

先ずは、xinetdをインストール。なんて楽なんでしょう。PKG管理バンザイ。

# yum install xinetd
# sbin/chkconfig xinetd on

続いて、webminのインストール。これも楽勝。

# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.400-1.noarch.rpm
# rpm -Uvh webmin-1.400-1.noarch.rpm

常駐でOKならば、ここで # /sbin/chkconfig webmin on しちゃえばいいですが、webminのFAQで手順を確認しつつ、xinetd経由に設定しましょう。

ちなみに、webminはdefaultでは、10000番のポートを使用するようになっていますが、このポート番号はndmpに予約されちゃってますので、ianaのポート番号表を確認のうえ、適当な空きポートに設定しましょう。
49152以上はPRIVATE PORTSなので、ココを使うのが無難でしょう。
「会社からは80番しか行けないんだよ。」な場合はReverse Proxyするということで。

# vi /etc/services
webmin 49152/tcp
# vi /etc/webmin/miniserv.conf
#port=10000
port=49152
#session=1
inetd=1
# vi /etc/xinetd.d/webmin
service webmin
{
user = root
env = LANG=
port = 49152
socket_type = stream
protocol = tcp
wait = no
disable = no
type = UNLISTED
server = /usr/libexec/webmin/miniserv.pl
server_args = /etc/webmin/miniserv.conf
}

# /etc/init.d/xinetd restart

ついでですから、SSL対応も済ませちゃいましょう。perl-Net-SSLeayモジュールが必要になりますので、入ってない場合は

# yum install perl-Net-SSLeay

してから、Webminの[Webmin設定]->[SSL暗号化]メニューで設定。

userminを導入する場合も、PATHと使用ポート以外は全く同じ設定でイケます。

過去のエントリ(一覧)

最近のコメント

Powered by Movable Type 4.261
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。