[PHP-users 1863] Re: 耐性テスト?

SAKAMOTO php-users@php.gr.jp
Thu, 6 Sep 2001 14:06:01 +0900


坂本です。

最近韓国でのサーバのレスポンスについてあるサイトで
話題になったことがあったので参考にしてください。

1日に100万件(最高1,568,721)以上のヒットが
あったりするサイトで、2時から4時の間は接続が集中しています。
時間当たり最高121,392を記録したこともあります。

このサーバのマシーンは下記のとおりです。

SERVER : PentiumII600 Dual, 256M intel 2 way
OS  :  WOW LINUX 6.2 kernel 2.2.14 SMP(韓国製)
Web : Apache 1.3.12
Backend : PHP 4.0  zend
DBMS : MySQL 3.22.23

統計データ
                         平均    最高
Hits per Hour    47018       121392
Hits per Day     1128432    1568721
Files per Day    384609      514351
Pages per Day   86549        130664
KBytes per Day   2936157    4358650


他に3百万件以上の掲示板データをMySQLで処理するアルゴリズムなども
試されていることもあります。この掲示板フリーソースは持っていますが、
まだ日本語化していないくていつか翻訳して配布してみたいと思っています。
現在までのテストで非常に好い結果が出ています。
早いスピードを要求するデータはMySQLで処理し、ショッピングモールの
ような安定性と正確性を求めるデータはPostgreSQLで処理するというのが
よいという結果のデータなどもありました。


同時接続テスト方法

/usr/local/apache/bin/ab -c 200 -n 1000 http://ab.ab.ab.ab/aaa.php

下は同時使用者200、ページリクエスト1,000の場合 、
MySQL 3.23.39とPostgreSQL7.1.3でテストしたサンプルデータです。
DBに接続して特定の資料10,000件を持ってきて100個出力するテストでした。


PC サーバ
CPU : Pentium III 550MHz, 1個
MEM : 128MB
LAN : 10Mb
HDD : IDE 12GB



[PostgreSQL7.1.3]

Server Software:        Apache/1.3.20
Server Hostname:        xxx.xxx.xxx.xxx
Server Port:            80

Document Path:          /info_pgsql.php3
Document Length:        2975 bytes

Concurrency Level:      200
Time taken for tests:   25.853 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      3140000 bytes
HTML transferred:       2975000 bytes
Requests per second:    38.68
Transfer rate:          121.46 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     5    32
Processing:    66  4581 18616
Total:         66  4586 18648


[MySQL 3.23.41]

Server Software:        Apache/1.3.20
Server Hostname:        150.1.64.109
Server Port:            80

Document Path:          /info_mysql.php3
Document Length:        2975 bytes

Concurrency Level:      200
Time taken for tests:   10.481 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      3140000 bytes
HTML transferred:       2975000 bytes
Requests per second:    95.41
Transfer rate:          299.59 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     6    37
Processing:    46  1617 10002
Total:         46  1623 10039


上記のようにSelectの場合はMySQLが2.4倍ほど早い結果が出ました。
さらにメールが長くなるのでデータは省略しますが、
insertの場合は約10倍早い結果が出ました。MySQLでinnoDBタイプを
利用してトランジャックション機能を持たせる場合は2.5倍ほど早いですが
とても不安定でした。MySQLのInnoDBタイプテーブルを作成する時
特定のフィールドタイプでダウンするケースがたびたびありました。

****独り言****
就職したい……
家で一人で開発していたら
人恋しくなった。
***********

坂本
info@boreal-net.com
http://www.yippee.ne.jp


----- Original Message -----
From: "AcP" <zomakj@anet.ne.jp>
To: <php-users@php.gr.jp>
Sent: Thursday, September 06, 2001 11:43 AM
Subject: [PHP-users 1847] 耐性テスト?


> お世話になります。AcPです。
>
> サーバーの耐性テスト、レスポンステスト、ベンチマーク・・・
> なんと表現したらよいのか、同時submit等のテストをおこないたいのです。
>
> できあがったシステムを、近隣部署を含めても20〜50台程度しか
> 同時テストできない状況です。
> 何らかのツールなどで1000台同時アクセス、同時submit等の評価をおこなえる
> 方法がありましたら教えてください。
>
> 環境
> --------------
> TurboLinux Server6.1
> Apache-1.3.20
> php-4.0.6(with-gd1.8.4,freetype1.3.1,namazu2.0.6,kakasi2.3.3,pdflib4.0.1)
> postgres-7.1.3
> --------------
>
> 宜しくお願いします。
>
> AcP
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>