0

何万ものアクティブなソケットを処理する必要がある高同時実行サーバーを構築しています。最初に epoll を使用してイベントベースのサーバーを構築しましたが、適度な規模 (数千のアクティブなソケット) でうまく機能しました。しかし、同時実行数が 10,000 ソケットを超えると不安定になるようです。libevent(または libev) は成熟したプロジェクトであり、「何万ものアクティブなソケットを処理できる」と主張しているため、私は libevent(または libev) について検討しています。

「信頼できるUDP」であり、オーバーヘッドとメモリ使用量のためにTCPに問題が発生し始めているため、UDTの使用も考えています。したがって、イベント フレームワークとして libevent を使用し、送信プロトコルとして UDT を使用するのが自然な考えです。UDT が独自の一連の epoll 操作を提供していることは知っています。通常の Linux epoll では動作しないということですか? その場合、libevent や libev は Linux epoll に基づいて構築されているため、動作しません。

UDT と epoll/libevent/libev の両方で作業した人はいますか? UDT はそれらのいずれとも連携できますか?

どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

3

UDT は、epoll でプロトコルを使用するために使用できる epoll API を公開します。詳細については、http: //udt.sourceforge.net/udt4/doc/epoll.htmを参照してください。

于 2013-02-25T12:55:49.587 に答える
-1

調査の結果、UDT ソケットはファイル記述子ではないため、epoll では処理できないことがわかりました。

于 2012-12-16T18:47:49.613 に答える