why `send(2)' blocks even though I've turned up the related sock settings?
Mulyadi Santosa
mulyadi.santosa at gmail.com
Sat Mar 11 04:31:04 EST 2017
On Thursday, March 9, 2017, Shiyao Ma <i at introo.me> wrote:
> Hi,
>
> The related settings are,
>
> sudo sysctl -w net.core.rmem_max=2147483647
> sudo sysctl -w net.core.wmem_max=2147483647
>
> sudo sysctl -w net.ipv4.tcp_rmem="10240 8738000 2147483647"
> sudo sysctl -w net.ipv4.tcp_wmem="10240 8738000 2147483647"
>
> sudo sysctl -w net.ipv4.tcp_limit_output_bytes=2147483647
>
> They are insanely big.
>
>
How big are the data you send during single call of send() ?
Also, what parameters do you use in send () ?
> However, when executing `send' for a large buffer, it still blocks.
>
> I thought L4 (tcp) will accept that large buffer as long as it can copy
> those buffer into kernel.
> Turns out not.
>
> What could be the possible reason?
> Does the TCP check the `cwnd' setting or so even in the step of copying
> buffer from userspace to kernel? I didn't find the related code, though.
>
>
> Regards.
>
>
>
--
regards,
Mulyadi Santosa
Freelance Linux trainer and consultant
blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20170311/56a6806a/attachment.html
More information about the Kernelnewbies
mailing list