2012-01-25 7 views
0

ここでは奇妙な問題のビットです。私たちはウェブサイトを新しいソフトウェアプラットフォームに移行しています。この移行の一環として、Amazon S3バケット間でファイルをコピーする必要があります。何十万ものファイルがあります。クライアントごとに3つ以上の接続をApacheに開ける

これを行うには、私たちが持っているソフトウェア(phpFox)も使用する必要があります。基本的にPHPフレームワーク。

ジョブは、URLのオフセットを使用して呼び出すセグメントに分割されます。

基本的には: コピー10個のファイルやアップデートデータベースに必要な 増加は10 リンス、繰り返しにより一部相殺されました。

APIのトラフィックは軽く、サーバーの負荷は1%未満ですが、1台のマシンで2台以上のタブをサーバーに開くと、スクリプトは比例して低速になります。 Apache)は、コマンドを並列に実行するのではなく、キューに入れています。

多くのマシンで2つのタブを開くと、予想どおりに拡大することがわかりました。アップリンクを飽和させるか、サーバーに目立つ負荷をかけるために、ラップトップで部屋を満たす必要があります。コミックではあるが、これも非常に非実用的で、一般的にはお尻の痛みです。ここにはもっと良い道があるはずです。

私は最大のスペアプロセスや子供1人あたりのリクエストなどを10倍に増やしてみましたが、スピードは目立って増加しませんでした。何が足りないの?どのようにして、誰かが好きなだけ何度も接続してナットしてくれるようにするには、どうすればよいのでしょうか?

PHP 5.3.8 PHPサピ:apache2handler PHPロードの拡張機能:コア日付EREGフィルタのFileInfoのlibxmlのopenssl PCRE sqlite3のzlibのbcmathカレンダーのctypeカールDOM FTP GDハッシュのiconv SPL JSON MBSTRING mysqlのセッション、標準のPOSIX反射するPharのSimpleXMLは、ソケットのSQLite IMAP XMLのXMLReaderのXmlWriterジップapache2handlerトークナイザ

MYSQL:MySQLの5.0.92-コミュニティ読み取るための

ありがとう!

答えて

0

ほとんどのWebブラウザでは、特定のWebサーバーに同時に接続する数に制限があります。私はすべてのブラウザについてはよく分からないが、私はそれがために設定することができることを知っているのブラウザはMozilla Firefoxのある、Fasterfox拡張子使用:言われていること

https://addons.mozilla.org/en-US/firefox/addon/fasterfox-9148/

を - することができます方法は本当にありませんWebインターフェースを介して実行するのではなく、サーバー上でマイグレーションを実行するためのスクリプトを記述しますか?

+0

数千行の 'wget'sを持つシンプルなプリジェネレーションシェルスクリプトでも、実際のブラウザを使うとうまくいくでしょう。それから、必要なだけターミナルセッションを開始してください。 –

+0

合意。それを行うには多くの方法がありますが、このフォーラムの範囲を超えている理由から、Webブラウザでこれを行うことに取り組んでいます。 Webサーバー上でelinksを使用しようとしましたが(ローカルホストからの要求であり、プロセスのネットワーク遅延をほぼ解消しました)、まだ喜んでいません。 –

+0

@duskwuffいいえ、ありました。私たちは上で定義されたパラメータに固執しています。それはFirefoxのアドオンをインストールしたとは言いませんでしたが、理論をテストするために、私はFirefox、IE、Chrome、Safariのコピーを開きました。 1秒間に1リクエストではなく、私は4になっていました。Firefoxで4つのタブを開くと、アドオン(さまざまな方法で設定されています)でも、1req /秒でスティックします。 ここで何が起こっているのでしょうか? OS(Win7)はプログラムや何かの接続をどのように制限していますか? FFで最大接続数を96に設定しました。 –

関連する問題