Hint: if you want to check if this answer will solve your issue, execute ifconfig eth0 mtu 1400 on the instance and check the speed.
Edit the file: /etc/quantum/dhcp_agent.ini and set:
dnsmasq_config_file=/etc/neutron/dnsmasq-neutron.conf
Create and edit file /etc/neutron/dnsmasq-neutron.conf and put this inside:
dhcp-option-force=26,1400
Restart DHCP:
service neutron-dhcp-agent restart
And reboot your instance. Verify that your MTU is 1400:
root@web:~# ifconfig eth0 Link encap:Ethernet HWaddr fa:16:3e:f0:6a:9f
inet addr:10.1.0.2 Bcast:10.1.0.255 Mask:255.255.255.0 inet6 addr: fe80::f816:3eff:fef0:6a9f/64 Scope:Link UP BROADCAST RUNNING MULTICASTMTU:1400 Metric:1 RX packets:934855 errors:0 dropped:0 overruns:0 frame:0 TX packets:207741 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1210256390 (1.2 GB) TX bytes:226172592 (226.1 MB)
Test upload speed again. It should be back to normal.
亲测可行。
MTU&GRE
新的数据报头长度为20字节,GRE最小封闭字节为4字节,1500-20-4=1476,而我们的实例默认是1480,必然每个包都自动分片,导致性能下降。
ref:https://ask.openstack.org/en/question/6140/quantum-neutron-gre-slow-performance/