Supervisor分散
2194 ワード
php 5-xmlrpc拡張のインストール
supervisorのインストールtwiddler
pipはpythonのパッケージ管理ツールで、pipがインストールされていない場合は
supervisorの構成
supervisorへconfに以下を加える
supervisorを変更します.sockの権限、デフォルトの
に改心
構成config.php define('REPO_PATH', '{repo_path}'); コードパス、例えば、 define('SUPERVISOR_SOCK', '{supervisor_sock}'); supervisorのsockアドレス、supervisor.confのsupervisorctlブロックは を見つけることができます define('SUPERVISOR_CONF', '{supervisor_conf}'); ワークのプロファイルアドレスを生成します.たとえば、 を使用します. define('GROUP_NAME', '{group_name}'); {supervisor_conf}のファイルの末尾に[group:{group_name}]programs:{program_name} を付ける
workerの追加
ディレクトリへのアクセス{repo_path}/src/protected/入力コマンド
workerの削除
ディレクトリに入ると{repo_path}/src/protected/入力コマンド`php yic resque removeProgram–reserve=3–queue="email"のうち–reserveは保留中のworkerの数を表し、–queueはキュー名を指定し、指定すると傍受キュー{queue_name}を保留するworkerの数を表し、指定しないと–queueはデフォルトですべてのキューを表す
テスト送信メール
それぞれ1台のマシンで1つのworkerで100個のメールを送信し、1台のマシンで10個のworkerで100個のメールを送信し、2台のマシンで各10個のworkerで100個のメールを送信した(2台のマシンで送信する場合、redisのアドレスを同じマシンに配置すればよい)テスト結果:1台のマシンで1 worker消費時間:25 sシングルマシン10 worker消費時間:7 s両マシン各10 worker消費時間:4 s
sudo apt-get install php5-xmlrpc
supervisorのインストールtwiddler
sudo pip install -U supervisor_twiddler
supervisor_twiddrerこのパッケージはsupervisorのRPCの拡張であり、supervisorの構成と状態が実行時に操作できるようにしています.pipはpythonのパッケージ管理ツールで、pipがインストールされていない場合は
sudo apt-get install python-pip
でインストールできます.supervisorの構成
supervisorへconfに以下を加える
[rpcinterface:twiddler]
supervisor.rpcinterface_factory = supervisor_twiddler.rpcinterface:make_twiddler_rpcinterface
supervisorを変更します.sockの権限、デフォルトの
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
に改心
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0766 ; sockef file mode (default 0700)
構成config.php
/var/www/campaign-portal
/etc/supervisor/conf.d/campaignportal.conf
です.このファイルの権限を777に変更する必要があります.コマンドsudo chmod 777{supervisor_conf}workerの追加
ディレクトリへのアクセス{repo_path}/src/protected/入力コマンド
php yiic resque addProgram --queue="email" --count=6
–queueは傍受のキュー名、–countは追加したworkerの個数を表すworkerの削除
ディレクトリに入ると{repo_path}/src/protected/入力コマンド`php yic resque removeProgram–reserve=3–queue="email"のうち–reserveは保留中のworkerの数を表し、–queueはキュー名を指定し、指定すると傍受キュー{queue_name}を保留するworkerの数を表し、指定しないと–queueはデフォルトですべてのキューを表す
テスト送信メール
それぞれ1台のマシンで1つのworkerで100個のメールを送信し、1台のマシンで10個のworkerで100個のメールを送信し、2台のマシンで各10個のworkerで100個のメールを送信した(2台のマシンで送信する場合、redisのアドレスを同じマシンに配置すればよい)テスト結果:1台のマシンで1 worker消費時間:25 sシングルマシン10 worker消費時間:7 s両マシン各10 worker消費時間:4 s