Note that, in addition to Neal's instructions, you may want to load virtio_net with napi_tx=true
This makes virtio_net play more nicely with the qdisc layer. GCE requests moderately deep Tx queues 4096 -- without the module param you can have up to a 4096 packet delay between actual and as-seen-by-qdisc Tx times.
http://elixir.free-electrons.com/linux/v4.12.2/source/driver...