|To:||Lennert Buytenhek <buytenh@xxxxxxxxxxxxxx>|
|Subject:||Re: many outgoing tcp sockets are slower than a few|
|From:||Christian Schmid <webmaster@xxxxxxxxxxxxxx>|
|Date:||Mon, 21 Feb 2005 18:17:16 +0100|
|Cc:||bert hubert <ahu@xxxxxxx>, Nivedita Singhvi <niv@xxxxxxxxxx>, netdev@xxxxxxxxxxx|
|References:||<421925DB.2060602@xxxxxxxxxxxxxx> <42192AAF.8020609@xxxxxxxxxx> <42192CD5.5090401@xxxxxxxxxxxxxx> <20050221090121.GA7478@xxxxxxxxxxxxxxx> <4219B99E.1000603@xxxxxxxxxxxxxx> <20050221120223.GA30348@xxxxxxxxxxxxxxxxx>|
|User-agent:||Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a3) Gecko/20040817|
Lennert Buytenhek wrote:
On Mon, Feb 21, 2005 at 11:36:14AM +0100, Christian Schmid wrote:Outgoing data. I am using sendfile() to send the file on a non-blocking socket but the call blocks for 100 ms per socket if I get over 3000 sockets. Thats causing the massive slowdown in sum. I first thought its a disk-issue but I tried with pure-cache data as well and it still blocks.O_NONBLOCK send() is really nonblocking, but O_NONBLOCK sendfile() really isn't, as it still does the disk read (if any) synchronously. How are you making sure that you're sending "pure-cache data"?
Because thats the first I excluded. I changed the program by replacing sendfile with a caching-routine plus syswrite. And it was really interesting that the syswrite was the one which needs most of the real-time, not the caching-routine. syswrite blocked 100 ms per socket.
|<Prev in Thread]||Current Thread||[Next in Thread>|
|Previous by Date:||RE: Intel and TOE in the news, jamal|
|Next by Date:||Re: many outgoing tcp sockets are slower than a few, bert hubert|
|Previous by Thread:||Re: many outgoing tcp sockets are slower than a few, Lennert Buytenhek|
|Next by Thread:||Re: many outgoing tcp sockets are slower than a few, bert hubert|
|Indexes:||[Date] [Thread] [Top] [All Lists]|