電脳ではたらくOpenPNE開発者の日記@ネット このページをアンテナに追加 RSSフィード

2011-08-23

はい!OpenPNE3.6beta11(Propel改造版・コアだけ)の負荷検証環境構築方法!の巻!

1) まず芭蕉1(Web)、芭蕉3(DB)にOpenPNE3をセットアップ

git clone -b propel git://github.com/upsilon/OpenPNE3.git op36propel.example.com
git submodule init
git submodule update
cd plugins/sfPropel15Plugin/lib
git clone -b 1.6 git://github.com/Xosofox/propelVendor.git vendor
cd ../../../
cp config/ProjectConfiguration.class.php{.sample,}
cp config/OpenPNE.yml{.sample,}
php symfony openpne:permission
cd plugins/
git clone git://github.com/ebihara/opAuthMailAddressPlugin.git
cd ../
php symfony plugin:publish-assets

cat > config/databases.yml <<EOF
all:
  propel:
    class: sfPropelDatabase
    param:
      phptype: mysql
      dsn: 'mysql:dbname=op36propel_example_com;host=[芭蕉3のIP]'
      encoding: utf8
      username: db_user
      password: db_pass
EOF

mysql -h [芭蕉3のIP] -u db_user -p
CREATE DATABASE op36propel_example_com DEFAULT CHARACTER SET utf8;

php symfony propel:build --all --and-load

cd plugins
git clone git://github.com/rysk92/opPvPlugin.git
cd ../
php symfony cc

cat > insert.php <<EOF


require_once 'config/ProjectConfiguration.class.php';
$configuration = ProjectConfiguration::getApplicationConfiguration('pc_frontend', 'prod', false);
sfContext::createInstance($configuration);

$con = Propel::getConnection(MemberPeer::DATABASE_NAME);
$con->beginTransaction();

for ($i = 2; $i <= 380000; $i++)
{
  echo 'member: '.$i."\n";
  $member = new Member();
  $member->setName('dummy'.$i);
  $member->setIsActive(true);
  $member->save();
}

$con->commit();
EOF

time php insert.php
(大体5分ぐらいだった)

2) 芭蕉2から負荷をかける

time ab -n 10000 -c 10 -C OpenPNE_pc_frontend=[cookieの値] http://op36propel.example.com/member/search

(大体50分ぐらいだった)

3) 芭蕉1にてレポートを作成

このへん参考に

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/openpne/20110823/1314080671