web-dev-qa-db-ja.com

選択対投票対エポール

数千のUDP接続(約100,000セッション)をサポートする必要がある新しいサーバーを設計しています。使用する入力または提案はありますか?

63
ravi

答えは、Linuxを使用している場合はepoll、FreeBSDまたはMac OS Xを使用している場合はkqueue、Windowsを使用している場合はI/O完了ポートです。

あなたが(ほぼ確実に)調査したいと思ういくつかの追加事項は次のとおりです:

  • 負荷分散技術
  • マルチスレッドネットワーキング
  • データベースのアーキテクチャ
  • 完全なハッシュテーブル

さらに、UDPにはTCPとは異なり「接続」がないことに注意することは重要です。また、ネットワークベースのソリューションのデバッグは困難な場合があるため、小規模から始めて規模を拡大することも最大の関心事です。

44
Kalantir

CURLの著者は、ポールvsセレクトvsイベントライブラリに関するすばらしい記事を書きました。

40
unixman83

Linux:epoll FreeBSD:kqueue Windows:??

これを抽象化できるlibeventやlibevなどのラッパーライブラリがあります。

18
Yann Ramin