r8169ではなくてRTL8168bを使うようにします。
$ sudo mv /lib/modules/`uname -r`/kernel/drivers/net/r8169.ko /lib/modules/`uname -r`/kernel/drivers/net/r8169.ko.old
$ sudo depmod -a
$ sudo mv /boot/initrd.img-`uname -r` /boot/initrd.img-`uname -r`.ubuntu
$ sudo mkinitramfs -o /boot/initrd.img-`uname -r` `uname -r`
$ dmesg|grep RT
eth0: RTL8168b/8111b at 0xffffc9000035a000, 00:25:22:54:ab:4e, XID 0c100000 IRQ 27
まずはドライバーですが、これでまともになりました。
tcpdumpしたら帰りがMTU1500でした。双方向9000にしたら↓のような感じ。
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
voyager 4G 1843 98 83783 8 42095 8 4438 96 98509 7 337.9 6
Latency 14451us 749ms 2155ms 30699us 90786us 909ms
Version 1.96 ------Sequential Create------ --------Random Create--------
voyager -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 1122 8 2472 8 1108 7 1127 8 2667 11 1163 7
Latency 50514us 41204us 181ms 49989us 5266us 119ms
1.96,1.96,voyager,1,1284031547,4G,,1843,98,83783,8,42095,8,4438,96,98509,7,337.9,6,16,,,,,1122,8,2472,8,1108,7,1127,8,2667,11,1163,7,14451us,749ms,2155ms,30699us,90786us,909ms,50514us,41204us,181ms,49989us,5266us,119ms
ping -M do -s 1472 -c 4 あて先IPアドレス
/etc/sysctl.confに以下を追加。
# Tweaks for faster broadband...
net.core.rmem_default = 524288
net.core.rmem_max = 524288
net.core.wmem_default = 524288
net.core.wmem_max = 524288
net.ipv4.tcp_wmem = 4096 87380 524288
net.ipv4.tcp_rmem = 4096 87380 524288
net.ipv4.tcp_mem = 524288 524288 524288
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1
sysctl -p してこの状態で計測すると↓
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
voyager 4G 1791 97 79720 7 41703 8 3898 76 97681 7 374.5 7
Latency 16566us 2159ms 2261ms 196ms 98798us 766ms
Version 1.96 ------Sequential Create------ --------Random Create--------
voyager -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 1128 7 2488 7 1109 7 1125 6 2673 11 1155 7
Latency 61145us 41041us 212ms 54627us 4149us 318ms
1.96,1.96,voyager,1,1284037442,4G,,1777,98,81171,10,43081,9,4774,94,96062,7,391.3,8,16,,,,,1128,7,2488,7,1109,7,1125,6,2673,11,1155,7,7302us,855ms,2210ms,39726us,205ms,389ms,61145us,41041us,212ms,54627us,4149us,318ms
条件:MTU1500
mount -t nfs -rw -o hard,intr,async 192.168.19.23:/db0 /mnt