問題タブ [latency]
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.
ruby-on-rails - HTTPリクエストのレイテンシ/待機時間の原因を確認するにはどうすればよいですか?
サーバーに単純なGETリクエストを発行すると、平均で約1.2秒後に戻ってきます(firebug NETタブを使用すると、「リクエストを待機中」の部分であり、レスポンス時間全体ではありません)
サーバーへのpingは0.250です
レール2.3.3で乗客を使用すると、レールログでリクエストに約0.023がかかります
私のサーバーはGoDaddy上にあるので、firebugで彼らのホームページもチェックしました-彼らのページの「要求を待っている」時間は〜0.320です
最悪の場合は約0.4になるはずです...では、残りの0.8秒はどこで失われたのでしょうか。
他に何を確認できますか?
編集:
Railsとは関係がないようです-画像リクエスト(apacheのみが応答し、Railsにまったくヒットしない)にも約1.2秒かかります
client-server - タイムスタンプで場所の違いを検証するときにレイテンシの違いを考慮する方法 (アンチチート)?
サーバーがクライアントから移動 (位置) 情報を受信するマルチプレイヤー ゲームがある場合、不正行為対策としてこの情報を確認する必要があります。
これは次のように行うことができます。
これは単純な例で、X 座標のみを考慮しています。ここでの問題は、サーバーが最後の位置情報の更新を受信するとすぐに oldTimestamp が保存されることです。これは、その時点でラグ スパイクがあった場合、古いタイムスタンプがサーバーによる新しい位置情報の更新よりもかなり遅れて受信されることを意味します。これは、時差が正確ではないことを意味します。
例:
- クライアントは言う:私は今5x10の位置にいます
- ラグ スパイク: サーバーはタイムスタンプ 500 でこのメッセージを受信します (通常は 30 前後で到着するはずです)。
- ....1秒の動き...
- クライアントは言う:私は今20x15の位置にいます
- ラグ スパイクなし: サーバーはタイムスタンプ 1530 でメッセージを受信します
サーバーは、これら 2 つの場所の時差が 10:30 であると認識します。ただし、実際の時差は 1,500 です。これにより、アンチチート検出が 1,030 では十分ではないと判断し、クライアントをキックする可能性があります。
可能な解決策: 送信中にクライアントにタイムスタンプを送信させて、サーバーが代わりにこれらのタイムスタンプを使用できるようにします。
問題:この解決策の問題点は、プレイヤーがクライアントを操作して不正なタイムスタンプを送信できることです。そのため、不正行為防止システムが機能しません。これは良い解決策ではありません。
単純に maxPlayerSpeed * 2 の速度を許可することもできますが (たとえば)、これにより、基本的に通常の 2 倍の速さでハックすることができます。これも良い解決策ではありません。
ですから、この「サーバーのタイムスタンプと遅延」の問題を修正して、不正行為対策を価値あるものにする方法について何か提案はありますか?
java - 割り当ての待ち時間が長いようですが、なぜですか?
低レイテンシ環境で実行される (Java) アプリケーションがあります。通常、命令は最大 600 マイクロ (+/- 100) で処理されます。当然のことながら、マイクロ秒の空間にさらに移行すると、レイテンシーの変化が見られます。現在、その時間の 2/3 が 2 つのコア ドメイン オブジェクトの割り当てに費やされていることに気付きました。
ベンチマークは、コードの問題のあるセクションを既存の参照から文字通りオブジェクトの構築に分離しました。つまり、基本的に参照のロード (各クラスで最大 15) といくつかのリストが新しく作成されましたが、正確に測定されるものについては以下の注を参照してください。ここ。
それぞれが一貫して約 100 マイクロ秒かかりますが、これは私には説明できません。その理由を突き止めようとしています。簡単なベンチマークでは、同様のサイズの文字列でいっぱいのオブジェクトが新しくなるまでに約 2 ~ 3 マイクロ秒かかることが示唆されています。
ここに 2 つの Q があります
- この種の行動をどのように調査しますか?
- 遅い割り当てにはどのような説明がありますか?
関連するハードウェアは、Sun X4600 上の Solaris 10 x86 であり、8* デュアル コア オプテロン @ 3.2GHz であることに注意してください。
私たちが見たものには、
- PrintTLAB の統計情報を確認すると、低速な割り当てがほとんどないため、競合は発生しないはずです。
- PrintCompilation は、これらのコードのビットの 1 つが JIT フレンドリーではないことを示唆していますが、Solaris はここでいくつかの異常な動作をしているようです (つまり、最新の Linux に対して、solaris10 と同様のヴィンテージの Linux を現在ベンチに置いていません)。
- LogCompilation...控えめに言っても解析が少し難しいので、これは進行中の仕事であり、今のところ明らかなことは何もありません
- JVM バージョン... 6u6 と 6u14 の間で一貫しており、6u18 または最新の 7 はまだ試していません
ありとあらゆる考えに感謝
物事を明確にするための、さまざまな投稿へのコメントの要約
- 私が測定しているコストは、ビルダー (これらの1 つなど) を介して構築され、そのプライベート コンストラクターが new ArrayList を数回呼び出し、既存のオブジェクトへの参照を設定するオブジェクトを作成する総コストです。測定されたコストには、ビルダーのセットアップとビルダーのドメイン オブジェクトへの変換のコストが含まれます。
- コンパイル (ホットスポットによる) には大きな影響がありますが、それでも比較的遅いです (この場合のコンパイルでは、100 マイクロ秒から 60 マイクロ秒までかかります)。
- 私の単純なベンチマークでのコンパイル (ホットスポットによる) は、割り当て時間を ~2micros から ~300ns に短縮します
- レイテンシーは、若い世代のコレクション アルゴリズム (ParNew または Parallel スカベンジ) によって変化しません。
c# - サーバーのパフォーマンスの問題とアプリケーションのローカルパフォーマンスの違いは?
パフォーマンスの問題の解決策を探しています。以下を使用しています。
- ASP.net
- SQLサーバー
- エンティティフレームワーク
誰かが以前にこの問題に遭遇し、それを解決したことを願っています!
デバッグ時に同じアプリケーションをローカルで実行する場合と比較して、ホストされているアプリケーションでHTTPリクエストを実行するのに2〜3倍の時間がかかります。ただし、サーバーホストでpreinitとredererの間をトレースすると、リクエスト時間は0.250秒になりますが、それを監視している場合、実際にはその完全なページをレンダリングするのに3〜4秒かかります。
これは私たちを夢中にさせています!これを引き起こしている原因とそれを修正する方法についてのアイデアはありますか?
根本的な原因についてこれをチェックおよびデバッグするために使用できるプログラムはありますか?それがあなたに起こっていた場合、あなたが何をしようとするかについての推奨事項はありますか?
ありがとうございます!
c# - System.Net.Mail.SmtpClient.Send/Exchange の遅延
C# アプリケーションは、System.Net.Mail.SmtpClient.Send を使用して電子メールを送信します アプリケーションのログ ファイルは、Send メソッドが 11:39 に成功したことを示しています Outlook で電子メールを開いて File|Properties を実行すると、Sent: 11:39 と表示されますAM 受信: 11:41 AM
View|Options に移動すると、ヘッダーに次のように表示されます。 ] X-OriginalArrivalTime: [...] 11:41:15.0250
私の質問は、Send メソッドが 11:39 に戻ってきたが、サーバーがそれを 11:41 にしか受信しなかった場合、メールはどこで 2 分間を費やしたのでしょうか? つまり、アプリケーションを実行するマシンまたは Exchange サーバーで構成する必要があるものはありますか?
facebook - Facebook Connect の高速化
Facebook を自分の Web サイトに接続できるように取り組んでいますが、これまでのところうまく機能しているようです。しかし、私のサイトのすべてのページに facebook api ライブラリをロードすると、うまくいきません。私が使用している他のすべての php クラスは 1 秒未満でコンパイルされますが、Facebook API をロードするためだけに 3 秒から 20 秒の範囲のサーブ時間が見られます。Facebook接続を高速化するためにできることはありますか? (mt) 共有サーバーを使用しているからですか?
dojo - CDN上のDojoと独自のインストール
私はかなり多くのDojoを使用していますが、これまではAOL/GoogleなどのCDNからインクルードすることによってのみ使用してきました。
CDN経由で使用するのではなく、Dojoのコピーをホストすることには利点がありますか?コードベースを変更する必要はあまりありませんが、他にも長所と短所があると思いますか?
sql - レイテンシーまたはVPNがExcelからSQLServerへのアップロードを窒息させていませんか?
次の構造を使用して、ExcelからSQLServerにデータをアップロードしています。
手順の速度は、サーバーと手順を実行しているコンピューターの間の地理的な距離によって異なります。サーバー自体では高速(10分以内に300,000回の挿入)ですが、国の反対側では比較的低速です(300,000回の挿入には数時間かかる場合があります)。リモートアップロードはVPNを介して動作します。
ネットワークの待ち時間がプロセスの速度を低下させているに違いないと思います。ネットワーク遅延を回避する方法、またはVPNを微調整してアップロードを高速化する方法はありますか?
ありがとう!
networking - ネットワーク内の非対称遅延を決定する
異種ネットワーク環境に、多くのホストにまたがる多数のクラスター化サーバーがあり、サーバー間の接続の遅延と帯域幅が大きく異なる可能性があるとします。サーバー間でデータを転送することにより、サーバー間の接続のマップを作成する必要があります。
もちろん、このマップは、ネットワークトポロジが変更されると、時間の経過とともに古くなる可能性がありますが、現時点ではこれらの複雑さを無視し、ネットワークが比較的静的であると想定します。
このホストグラフのノード間の遅延を考えると、帯域幅の計算は比較的単純なタイミングの練習です。ただし、レイテンシーの問題はさらに深刻です。ラウンドトリップ時間を取得するには、ローカルホストからリモートホストへのリターントリップpingのタイミングを調整するだけです。両方のタイミングイベント(開始、停止)はローカルホストで発生します。
レイテンシーが両方向で等しくないという仮定の下で一方向の時間を必要とする場合はどうなりますか?さまざまなホストのクロックが正確に同期されていないと仮定すると(少なくとも、それらのエラーは関連するレイテンシーと同じ大きさであると仮定します)、一方向のレイテンシーを計算するにはどうすればよいですか?
関連する質問では、この非対称の遅延(リンクの方向が他のリンクよりも速い)は実際には一般的ですか?どのような理由/ハードウェア構成ですか?確かに、特にDSLやケーブルなどのラストマイルのコンシューマリンクでの非対称帯域幅のシナリオは知っていますが、遅延についてはよくわかりません。
追加:以下のコメントを検討した後、質問の2番目の部分はserverfaultの方がおそらく良いでしょう。
java - 低レイテンシの Java アプリケーションをデプロイするのに最適な OS は?
Java で書かれた低遅延取引システム (フィード ハンドラー、分析、注文入力) があります。TCP と UDP を広く使用し、Infiniband やその他の非標準ネットワークは使用しません。
このシステムを展開するためのさまざまな OS または OS 構成のトレードオフについてコメントできる人はいますか? 最新の価格フィードに遅れずについていくためにスループットが重要であることは明らかですが、レイテンシーは私たちの最優先事項です。
Java を作成したので、Solaris は自然な候補のように思えます。Sparc または x64 プロセッサを使用する必要がありますか?
RHEL と SLERT について良いことを聞いたことがあります。これらは、ベンチマークで使用するのに適した Linux のバージョンです。
上記の OS に対して Windows をテストした人はいますか? それともついていけないと思われますか?
Java と C++ の議論は別のスレッドに譲りたいと思います。