Re: [android-kernel] Bad TCP Performance

850 views
Skip to first unread message

Jack Harvard

unread,
Jun 23, 2013, 3:47:28 PM6/23/13
to android...@googlegroups.com
This is interesting, can you find out the Wi-Fi tcp transmission and receive buffers sizes in Android ./init.rc? What happens if you increase the buffer sizes? The sizes are listed as min, normal and max.

Also, it seems that your file can't be downloaded.

On 18 Jun 2013, at 09:54, RW wrote:

> Hello folks,
>
> I had some issues concerning the TCP performance of android. First I had some tests with an Nexus S were I first saw them, but since on this device there was a costum kernel with a lot of changes in the TCP Stack, I used my Nexus 7 to run the Tests. In my testbed I had just a server connected to a WIFI access point and my tablet connected to that access point.
> First you can see in the packet dumps, that some packets are obviously not captured. However, the performance viewed from the server side is rather bad also.
>
> In the same setup I used my laptop with the same test (just transferring a file) and had good results, meaning a quite non varying transfer rate, linear increasing sequence numbers, etc.
>
> So the question is why is androids TCP stack performing so badly compared to the normal linux kernel. I guess the CPU of the Nexus 7 would be powerful enough for a 3,5 MByte/s connection?
>
> Is this a known issue or can anybody confirm that behaviour? I used android 4.2.2 if that matters.
>
> Packet dumps:
> http://160.45.111.16:3100/tcp.zip
>
> Thanks,
> RW
>
> --
> --
> unsubscribe: android-kerne...@googlegroups.com
> website: http://groups.google.com/group/android-kernel
> ---
> You received this message because you are subscribed to the Google Groups "Android Linux Kernel Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to android-kerne...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Anirudh Gargi

unread,
Jul 19, 2013, 10:15:50 AM7/19/13
to android...@googlegroups.com
Try changing the values of TCP and UDP buffers manually by echo the values on the sys file entries and see if the situation is improved. Later these tweaks can be added in the init.rc . 

rmem and wmen are the buffers : 

/proc/sys/net/ipv4/tcp_wmem and /proc/sys/net/ipv4/tcp_rmem

Also tweaking these also might help 

/proc/sys/net/core/rmem_max and /proc/sys/net/core/wmem_max 


Read this for more info on these buffers : 

http://man7.org/linux/man-pages/man7/tcp.7.html


Regards,
Anirudh.

Reply all
Reply to author
Forward
0 new messages