0

NAS からファイルを読み取り、ソケット経由で送信するサーバーを作成したいと考えています。これを行う最速の方法は何ですか?

ありがとう!

4

2 に答える 2

1

標準の CIFS マウントがファイルをサポートしていると思いますmmap(2)(正しく読めば、directモードはオフになっているはずです)。

もしそうなら、あなたの最速のオプションは、おそらくopen(2)通常どおりsendfile(2)ファイルに送信し、UDP ソケット経由でファイル データを送信するために使用することです。(sendfile(2)常に保証されているわけではありませんが、ファイルをマップ可能にする必要がありますが、カーネル内の CIFS クライアント コード ( fs/cifs/file.c:cifs_file_strict_mmap()) は をサポートしているようmmap(2)です。)

Pat Patterson は、sendfile(2)vswrite(2)で 8% のスピードアップを報告しています。しかし、それが機能する場合は、AIO 操作を自分で処理する手間を省くことができます。カーネルは、ファイルからメモリ ページを要求し、ソケット バッファが許可するときにソケットを介してそれらを送信し、できればアプリケーション コードを許可します。短くて甘いこと。

于 2011-05-15T01:30:58.980 に答える
0

両側のネットワーク インターフェイスが 1Gbit イーサネットまたはそれより遅いと仮定して、好きなことをしてください。あなたのマシンはそれらを満たすことができます。

于 2011-05-15T07:02:04.880 に答える