2011-10-18 22 views
2

私のアプリケーションでは、約58MB /秒の速度でUDPソケット経由でデータを送信しています。ほとんどの場合、sendtoはあまりにも長く、時間は0.1,0.2、0.3秒程度にグループ分けされています(下記のimmageを参照)。 私のシステムはカーネル2.6.32-24-serverのLinuxシステムです。各送信のバッファーは45000バイトです。あなたはなぜこれが起こるのかについての手がかりを持っていますか? sendからudp sendtoが長すぎる(異常な時)

http://i54.tinypic.com/iyfv9e.png

+0

RTカーネルで試してみましたか? –

答えて

1

(2):これ以外 When the message does not fit into the send buffer of the socket, send() normally blocks, unless the socket has been placed in nonblock‐ ing I/O mode. In nonblocking mode it would fail with the error EAGAIN or EWOULDBLOCK in this case. The select(2) call may be used to deter‐ mine when it is possible to send more data.

をカーネルは、その間に何かをやっているかもしれません。この場合、RTカーネルを使用すると、yi_Hが示唆するようになる可能性があります。

+0

私にとって奇妙なのはなぜ0.1,0.2,0.3などであるのですか –

+0

また、10分の1秒はネットワーキングにとってひどい長い時間です...どのようにデータを送信しますか?それは均等に、またはバーストで送られますか?送信バッファがいっぱいになる可能性がありますか? 100Mb/1Gb/..カード? –

+0

これは、1Gbカードを持っていて、2.6.38-10にアップグレードしました。以前は2.6.32-24でしたが、問題は再現できません。 –

関連する問題