問題タブ [high-traffic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
511 参照

nginx - トラフィックの多い Web サイトには、どの Web ホスティング設定を使用すればよいですか?

トラフィックの多い Web サイトを扱うのは初めてで、将来的に拡張できるセットアップを探しています。

私のサイトでは現在、1 つのメイン スクリプトを使用してデータを取得し、データベースに保存しています。Web サイトの残りの部分は、ほとんどがデータベースからのこのデータの表示です。

メイン スクリプトの実行に Amazon Web Services (EC2) または Google Compute Engine を使用する可能性を検討しています。次に、そのデータをより一般的な Web ホスティング サービスに転送します。心配する必要があるかどうかわからないことの 1 つは、ロード バランシングです。ロード バランシングに NGINX を使用すると、パフォーマンスが向上することがわかりました。

私の目標は、99.99% の確率でサイトを稼働させ、スクリプトをできるだけ速く実行することです。何か問題が発生した場合に備えて、優れたサポートがあれば最適です。

アイデア、コメント、提案は大歓迎です。現在成長中の他のウェブサイトがいくつかあり、近い将来そのような設定が必要になる可能性があるため、これを処理する方法を学ぼうとしています.

ありがとう!

0 投票する
1 に答える
1321 参照

php - 高トラフィック - 同じ memcached キーを設定する複数のリクエスト?

memcached をセットアップしています。高トラフィックとキーの更新/設定のベスト プラクティスについていくつか質問があります。ユーザーに 10、50、100 単位でポイントが割り当てられるオンライン ゲームを作成しています。

使用: ユーザーの「ゲーム統計」をキーに保存し、約 5 分ごとに cron ジョブを実行して、データストア内の統計を永続的に更新します。このようにして、「ゲーム」はデータベースにアクセスして値やポイントを取得することなく機能できます。

ウォームアップ スクリプトを使用して、ユーザー統計のキーをプルして入力します

質問 :
1) トラフィックが多く、そのユーザーにキーを書き込もうとすると、問題が発生する可能性はありますか?

2) memcache の値をインクリメントするためのベスト プラクティスは?

これは私が現在使用しているものの大まかな考えです

3) ユーザーのゲーム統計を memcache に保存するための推奨事項は? 任意の入力をいただければ幸いです。

皆さん、ありがとうございました!

0 投票する
1 に答える
336 参照

java - 大量のデータ通信を伴うシステムを構築するための最良のアプローチは何ですか?

こんにちは

大量のデータを保持し、リクエストクエリに従ってそれらを提供するキャッシュサーバー(Java + Lucene Frameworkで作成)があります。

基本的には次のように機能します。

  1. 起動時に、DB に接続し、すべてのテーブルを RAM に保存します。
  2. リクエストをリッスンし、適切なデータを配列リスト (約 1000 ~ 20000 行) として提供します。
  3. ユーザーが Web ページにアクセスすると、キャッシュ サーバーに接続して要求し、サーバーの応答を表示します。

メモリの問題のため、Web アプリケーションとキャッシュ アプリケーションを別のインスタンスで実行することを計画しました。Cache Server は as service で、Web は Tomcat 上にあります。

Web サイドとキャッシュ サーバー間の通信をどのように構築するかについて、あなたの提案は何ですか?

あるインスタンスから別のインスタンスに配列リストを含む大量のデータを渡す必要があります。Web サービス (xml 通信)、nio ソケット通信 (おそらく Apache MINA)、または CORBA のようなソリューションを考える必要がありますか?

ありがとう。

0 投票する
1 に答える
53 参照

database - 非常に混雑する可能性のある Web サービスに対して、どのような考慮が必要ですか?

タイトルにあるように、1 日の特定の時間帯に大量のトラフィックや呼び出しが発生する WCF Web サービスがあるとします。Web サービスを呼び出すたびに、データベースへの書き込みと同じデータベースからの読み取りが呼び出されます。

技術的には、非常に頻繁にデータベースを読み書きすることによる望ましくない影響からデータベースを保護することに関して、(もしあれば) 何を考慮する必要がありますか?

また、これを念頭に置いて、WCF Web サービスを別の方法でコーディング/構造化する必要がありますか?

0 投票する
1 に答える
1343 参照

php - PHP MongoDB ドライバーは、遅いクエリで多くの接続を開きます

遅いクエリを実行すると、MongoDB PHP ドライバー (v1.3) でやや奇妙な動作が発生します。リクエストが遅いときにドライバーが接続を開き続けるように見えますが、その理由が完全にはわかりません。たぶん、ここでいくつかの提案があります。

最初にいくつかの事実を次に示します。

  • 単一の Ubuntu 13.04 サーバーで実行される Web サイトとデータベース
  • サーバーはハイエンドの 8 コア 16GB RAM サーバーです
  • MongoDB v2.2.4
  • ウェブサイトは PHP 5.4 を実行しています
  • Web サーバーとしての Apache 2
  • PHP Mongo ドライバー 1.3.x (最新の 1.3 である必要があります)
  • ウェブサイトは Doctrine ODM を使用しています
  • Web サイトには常に約 50 ~ 100 人の同時ユーザーがいます
  • ulimit オープン ファイル (ulimit nofile) = 64000

1 日に 1 回、Memcache レコードの有効期限が切れ、低速のクエリが実行されます。これにより、PHP は MongoDB に対して最大 800 の接続を開きます (通常、ログによると、10 の開いている接続があります)。私たちのウェブサイトはほぼ完全に Memcached であるため、データベースには他に大きな負荷はありません。800 の開いている接続により、Web サイトの最初の読み込み時間は 30 秒になり、後でいくつかのタイプの MongoExceptions (接続が多すぎる/ソケット例外) がスローされます。

これは、group by を使用した見苦しいクエリです。完全に明確にするために、このクエリが遅くてばかげていることを理解しており、本日、このクエリを削除します。なぜそれがウェブサイト全体を台無しにするのかは明らかではありません. Doctrine を抽象化レイヤーとして使用しますが、ログによると、これは 200,000 ドキュメント データベース (ドキュメントあたり 3 フィールド: id/product/date) に対する実際のクエリです。

{"group":true,"keys":{"product":1},"initial":{"count":0},"reduce":"function (obj, prev) { prev.count++; }","options":[],"db":"Orders","collection":"History"}

クエリが完了すると、その結果が Memcache に 24 時間書き込まれます。したがって、すべての新しいリクエストは、MongoDB からではなく、Memcache から取得します。それでも、約 800 の接続に固執し、問題は解決せず、Web サイトはしばらくすると応答しなくなります。これらの 800 の接続を開くには、約 10 分かかります。

典型的な競合状態のように感じます。クエリは、この負荷でこのサーバーで競合状態を実際に引き起こすほど重く感じません。というか、あってはならない感じです。

さて、質問は次のとおりです。

  1. PHP が非常に多くの接続を開き続けるのはなぜですか?
  2. MongoDB がこれを処理できないのはなぜですか (それほど大きな問題ではないはずですよね?)
  3. 私たちが何をすべきかについて他に提案はありますか?
  4. これを解決するには、接続とクエリにタイムアウトを設定する必要がありますか?

私がこれを尋ねる理由は、私たちのウェブサイトが非常に急速に成長しており、将来的にトラフィックと MongoDB の負荷が大幅に増加すると予想しているからです。

よろしくお願いします!

0 投票する
0 に答える
291 参照

php - 大量のトラフィックで mysql データベースがクラッシュする

私は Travian プライベート サーバー (ブラウザ ベースのオンライン ゲーム) を持っており、サイトにスクリプトをインストールすると完全に動作しますが、オンライン ユーザーが一定数 (20 人のオンライン ユーザーなど) を超えると、mysql エラーが発生し始めます。これ: 警告: mysql_query(): 2750 行目の GameEngine/Database/db_MYSQL.php に結果セットを保存できません

このエラー メッセージが表示された後、以前は完全に機能していた部分のエラーが増え始めました (たとえば、ヘッダー エラーなど)。

基本的に、その時点からこのエラーが発生すると、ゲームはゆっくりとクラッパーになります.. DBを修復しようとしましたが、ゲームに影響を与えて台無しにするため、さらに問題が発生します. (私はまだそれを数回試しましたが、問題は解決しませんでした)

誰でもこれで私を助けることができますか?高トラフィックによるデータベースのクラッシュを防ぐにはどうすればよいですか?

0 投票する
0 に答える
74 参照

php - PHP ファイルの 1 つに大量のトラフィックが発生しています。複数の同じファイルに分割する必要がありますか?

わかりましたので、サーバーでホストされているphpファイルに世界中から多くのトラフィックを取得しています。このファイルは、訪問者に対していくつかのチェックを実行し、いくつかの SQL クエリを実行し、ユーザー ステータスに基づいて何をすべきかを決定します。

毎秒数百件のヒットが発生しています。

ですから、私の質問は次のとおりです。多くの同じファイルを作成し、作成した各ファイルへのトラフィックをランダムに駆動する必要がありますか?

トラフィックの損失と過負荷を回避したいのですが、別のファイルに分割することでこれが問題になるかどうかはわかりません。

すべてのヘルパーに感謝します。