Hi Prante,

         Thanks for your response...

         Iam using linux... i already increased wmem to 16MB max but still 
seeing low throughput with 64MB netty blob push..

         [sara@s0 ~]$ cat /proc/sys/net/core/wmem_default
         16777216
         [sara@s0 ~]$ cat /proc/sys/net/core/wmem_max
         16777216
         [sara@s0 ~]$ cat /proc/sys/net/ipv4/tcp_wmem
         4096    87380   16777216

  
Regards,
Saravanan

On Sunday, July 23, 2017 at 6:22:36 PM UTC+5:30, Jörg Prante wrote:
>
> Hi Sara,
>
> are you using Linux ? Did you check socket buffer default write memory 
> size?
>
> /proc/sys/net/core/wmem_default
>
> where the default is 256k, and
>
> /proc/sys/net/core/wmem_max
>
> where the default is 1m, so socket options that set a socket write buffer 
> size can use values up to 1m.
>
> To change for IPv4, you can modify
>
> /proc/sys/net/ipv4/tcp_wmem 
>
> But be careful of huge values like 64m. I do not recommend such extreme 
> values. They are not worth the price because each and every socket might be 
> able to use such large buffer size for each write operation, which wastes a 
> lot of memory, and increases the risk of running out of memory. And, 
> because TCP frames can not exceed 64k (and typical MTU for ethernet is 1500 
> bytes), there is not much effect. If you care for performance on the Linux 
> kernel and network interface level, you would have to use a Linux network 
> performance tuning guide like /
> https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf
>
> Best,
>
> Jörg
>
> On Sunday, July 23, 2017 at 11:22:01 AM UTC+2, Sara wrote:
>>
>>
>> Hi Netty Team,
>>  
>>       I tried to send one big java object of size 64MB with 
>> ctx.writeAndFlush then i see performance drops to 200MB/sec whereas if i 
>> send 2MB * 32 times using ctx.writeAndFlush call then iam seeing around 
>> 800MB/sec. 
>>
>>      one thing i noticed during 64MB transfer most of the time EAGAIN 
>> happens and EPOLL OUT being added again and again and then write syscall 
>> being called. so it may be related to EAGAIN or memory allocation for big 
>> object..
>>
>>      This i tried with EpollServerSocketChannel class. 
>>
>>      my requirement here is to send one big java object of size 64MB 
>> without performance penalty... can you please suggest how can i split and 
>> send the big java object object in to 2MB chunks such that i can avoid the 
>> EAGAIN or memory allocation issue. 
>>
>>      Thanks team for your great work...
>>
>> Regards,
>> Sara
>>     
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Netty discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/netty/49dee81a-a2bd-47ec-9da1-6826d84f7757%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to