ネットワーク (udp と tcp/ip)、ディスク、メモリ (シーケンシャル/ランダム アクセス)、インプロセスとインタープロセスなどを介して情報を転送するのにかかる時間 (相対的または絶対的な用語) をリストしたリファレンスはありますか? .?
最終的にはこれらを測定する必要がありますが、球場の数字へのポインタに感謝します.
メモリ対ディスクを見つけるのは難しくありませんが、残りの数字については自分の方向性を知りたいです。
ネットワーク (udp と tcp/ip)、ディスク、メモリ (シーケンシャル/ランダム アクセス)、インプロセスとインタープロセスなどを介して情報を転送するのにかかる時間 (相対的または絶対的な用語) をリストしたリファレンスはありますか? .?
最終的にはこれらを測定する必要がありますが、球場の数字へのポインタに感謝します.
メモリ対ディスクを見つけるのは難しくありませんが、残りの数字については自分の方向性を知りたいです。
私はまだそのようなものに出くわしたことがなく、特定のシナリオをテストする以外に方法はないと思います。一貫した答えを出すにはあまりにも多くの要因が関係しています。たとえば、どの NIC を使用しているか、それらは TCP チェックサム オフロードを実行しているか、スイッチング ファブリックのパフォーマンスはどのくらいか、どのディスクを使用しているか、どのくらいのキャッシュを持っているか、どのくらいのデータを持っているかなどです。転送していますか、大量の小さなパケットまたは少数の大きなパケットなどなど。
RAM アクセス時間について話している場合、最近では 10 ~ 100ns について話しているのに対し、ハードドライブの場合はおそらく 4 ~ 8ms です。RAM とハードドライブの測定では、どのベンチマーク ツールでも良い結果が得られるはずです。
一方、UDP と TCP では、具体的な数字を示すことはできません。理論的には、UDP は TCP よりも 30 ~ 50% 高速である必要があります。これは、ACK の余分なトリップがなく、ヘッダーのオーバーヘッドが小さいためです。ただし、実際には、輻輳制御のためだけに TCP が UDP よりも優れている場合が多くあります。また、Nagle をオンにした TCP はバッチ パケットをオンにしますが、これもそうしない UDP との比較にはなりません。
全体として、ニーズに応じて実際に独自のテストを行ってください。同様のテストを実行した誰かのベンチマーク シートがどこかにあったとしても、それらは完全に無効であり、アプリケーションとハードウェア スタックでは再現できない可能性があります。
トムの+1-彼の答えを見る前に、それが私が書こうとしていたことです(あまり明確ではありません)。
考慮すべきもう1つのことは、
遅延のニーズと帯域幅のニーズ
特定のソリューションのスケーラビリティ。例えば
ネットワーク速度をアップグレードすること (NIC を交換する必要がありますか? 配線? ルーター?) と可能なスケールの大きさ (100Mb 対 1Gb) の比較はどの程度困難ですか?
ディスク速度をアップグレードするのはどれくらい難しいですか?
たとえば、ユースケースがキャッシュ可能なデータ、RAID またはその他のデータ ストライピング、ローカル ストレージとネットワーク ストレージで実行されると仮定すると、より高速なディスク、より大きなキャッシュを備えたディスクなどです。
言い換えれば、今日のあなたの状況は、正確なメトリックがすべてを考慮した最善の解決策としてディスクを指していることを示しているかもしれませんが、ディスクのパフォーマンスを10倍にすることはめったにありませんが、本当に必要な場合はネットワークでそうすることができます.