3

最近、コンピューターの仮想マシンで実行するテスト サーバーをセットアップしたので、XDebug を使用した対話型デバッグなどを行うことができます。ほとんどの場合、それはかなり甘いですが、同じクライアントからサーバーへの複数の要求を一度に実行すると、問題が発生しました。

問題は、ゲストとホストのネットワーク接続が実際には物理接続として存在しないため、コンピューターのハードウェアが許す限り高速に動作することです。これは通常大きな問題ではありませんが、私は APC ファイル アップロードの監視を実装しようとしています。これには、パフォーマンスを監視するためにファイル アップロードと並行して実行する AJAX 要求が必要です。現実の世界では、ネットワークによってラグやレイテンシなどが発生し、ファイルのアップロードと並行して AjaX リクエストを実行するのに十分な未使用の帯域幅が残されます。ただし、テスト マシンでは、使用可能な帯域幅がまったく残っていないため、アップロードが完了するまで、AJAX 要求はサーバーからデータを取得できません。

仮想マシン (Apache、PHP、または Linux ユーティリティ) で、HTTP 要求ごとに利用可能な帯域幅を制限する帯域幅管理をセットアップすることは可能ですか? たとえば、各リクエストは 1 mbps に制限されますが、クライアントとサーバー間で同時に複数のリクエストが存在する可能性がありますか? これができれば、アップロードが実際に完了するまで停止するのではなく、アップロードの進行中に AJAX リクエストがデータをフェッチできるようになることを願っています。

IPRelay というユーティリティを試してみましたが、機能しないか、少なくともリクエストごとに制限する方法では機能しないようです。

4

2 に答える 2

0

あなたが求めているのは、トラフィック シェーピングと呼ばれるものです。

Lighttpd (Apache の代替) はこれをネイティブにサポートします

Apache の場合、いくつかの方法があります。

  • mod_bandwidth - 同じことをしているように見える 3pd モジュール (最近更新されていない)。
  • mod_bwshare - DOS 攻撃に対抗するために設計された 3pd モジュールですが、役立つ場合があります。

関連する可能性のあるServerFaultの質問は次のとおりです...

于 2010-12-16T17:47:28.013 に答える
0

返信いただきありがとうございます。しかし、接続を制限できる iprelay という Linux 用の便利な小さなユーティリティを見つけました。指定された制限に制限された各接続で複数の接続を開くことができるようです。これは、APC コードをテストするために今日使用しているもので、すべて正常に動作しているようです。

于 2010-12-17T16:59:55.230 に答える