{"id":902,"date":"2026-08-16T23:21:59","date_gmt":"2026-08-16T23:21:59","guid":{"rendered":"https:\/\/virtualserversvps.com\/blog\/?p=902"},"modified":"2026-08-16T23:21:59","modified_gmt":"2026-08-16T23:21:59","slug":"vps-network-mtu-offload-tuning","status":"publish","type":"post","link":"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/","title":{"rendered":"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Your VPS plan says 1 Gbps, but <code>iperf3<\/code> reports 180 Mbps. TCP retransmits climb under load, large downloads stall, and <code>dmesg<\/code> shows dropped frames on the virtual NIC. Before you blame the provider or pay for an upgrade, check the two settings that silently cripple virtual network interfaces: the MTU and the hardware offload features. Both are misconfigured or incompatible on a surprising share of VPS images &mdash; and both are fixable in minutes from the command line.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why MTU Matters More on a Virtual NIC<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MTU (Maximum Transmission Unit) is the largest packet a link will carry, and the internet standard is 1,500 bytes. On a virtual machine the NIC is emulated (virtio-net, e1000, or vmxnet3), and every packet you send is wrapped in additional headers by the hypervisor &mdash; VXLAN tunnels, for example, add 50 bytes of overhead. If the effective path MTU ends up below 1,500, large packets get dropped and TCP falls back to smaller sizes, which you experience as sudden throughput collapse on long transfers. A second, very common case: you run an encrypted tunnel (WireGuard, OpenVPN, or GRE) <em>inside<\/em> the VPS, which shrinks the usable payload per packet and, if misconfigured, causes exactly the same symptom.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check what your interfaces are actually configured with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ip link show\ncat \/sys\/class\/net\/eth0\/mtu<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the output shows 1,500 and your transfers are slow, test the real path MTU with <code>ping<\/code> using the do-not-fragment flag. A payload of 1,472 bytes plus 28 bytes of ICMP\/IP headers equals exactly 1,500:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping -M do -s 1472 -c 5 8.8.8.8      # should succeed\nping -M do -s 1500 -c 5 8.8.8.8      # fails if path MTU &lt; 1528<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the 1,472-byte test fails, your path MTU is below 1,500 and every large packet is being dropped. Lower the interface MTU (try 1,400) and re-test; for tunnel interfaces, set the tunnel MTU to 1,420&ndash;1,440 and let TCP adjust. Note that jumbo frames (MTU 9,000) are rarely available on shared VPS infrastructure &mdash; most providers cap virtual NICs at 1,500 or offer 9,000 only on dedicated servers, so plan accordingly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TCP Offload Features: Fast in Theory, Broken in Practice<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modern NICs offload work like checksum calculation, segmentation (TSO\/GSO), and receive-side merging (GRO) to hardware. A virtual NIC has no hardware &mdash; the hypervisor emulates it &mdash; and the emulation layer is where offload bugs live. The classic failure mode: checksum offload advertises itself as supported, the guest trusts it, and the hypervisor&rsquo;s implementation drops or corrupts frames under load. Symptoms include CRC errors in <code>ifconfig<\/code>, TCP retransmission spikes, and throughput that collapses the moment you push traffic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inspect the current offload state:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ethtool -k eth0<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Feature<\/th><th>What it does<\/th><th>When to disable<\/th><\/tr><\/thead><tbody><tr><td>tx-checksum-ip-generic<\/td><td>Offloads TX checksums<\/td><td>If interface shows TX errors \/ bad checksums<\/td><\/tr><tr><td>tcp-segmentation-offload (TSO)<\/td><td>Splits large TCP writes in hardware<\/td><td>If large transfers stall or retransmit heavily<\/td><\/tr><tr><td>generic-segmentation-offload (GSO)<\/td><td>Software segmentation for non-TCP<\/td><td>If packet drops appear under load<\/td><\/tr><tr><td>generic-receive-offload (GRO)<\/td><td>Merges small RX packets<\/td><td>If latency-sensitive traffic behaves oddly<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Disable a feature and re-test before and after:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ethtool -K eth0 tso off gso off gro off\nethtool -K eth0 tx off rx off\niperf3 -c iperf.he.net -t 30<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If throughput jumps from 180 Mbps to 800+ Mbps, you found the culprit. On virtio-net with recent kernels, offloads usually work &mdash; the problems cluster on e1000 emulation and on older provider kernels &mdash; but a 30-second A\/B test settles it empirically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Make the Fixes Permanent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Settings changed with <code>ethtool<\/code> revert on reboot, so persist them. On systemd distributions, create a service unit or use the provider&rsquo;s network configuration (netplan, cloud-init, or NetworkManager dispatcher). The minimal systemd approach:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \/etc\/systemd\/system\/ethtool-fix.service\n[Unit]\nDescription=Fix NIC offload settings\nAfter=network-online.target\n\n[Service]\nType=oneshot\nExecStart=\/usr\/sbin\/ethtool -K eth0 tso off gso off gro off\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Enable it with <code>systemctl enable --now ethtool-fix<\/code>, then verify after a reboot. For MTU changes, prefer the distribution-native config (for example, <code>netplan<\/code> on Ubuntu: <code>mtu: 1400<\/code> under the interface) so the network stack applies it before interfaces come up.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">When the Problem Is on the Provider Side<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If MTU is correct, offloads are disabled, and <code>iperf3<\/code> still underperforms the plan&rsquo;s stated port speed, the bottleneck is upstream: a congested shared uplink, a rate-limited virtual port, or a routing path with loss. <code>mtr -rwzb 8.8.8.8<\/code> will show where loss starts, and two tests an hour apart will show whether the degradation is constant (plan limit) or intermittent (neighbour contention). Gather that evidence before contacting support &mdash; and when you do, include the before\/after numbers from this article&rsquo;s tests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Network headroom is one of the things that separates cheap plans from good ones, which is why <a href=\"https:\/\/virtualserversvps.com\/#providers\">our VPS comparison table<\/a> calls out uplink speeds and transfer caps side by side &mdash; it is much easier to pick a provider that guarantees the port speed you need than to fight a congested one later. The <a href=\"https:\/\/virtualserversvps.com\/#features\">feature breakdown on our VPS page<\/a> also notes which providers expose NIC-level settings and which hide them behind a control panel, and the <a href=\"https:\/\/virtualserversvps.com\/#faq\">FAQ covers the networking questions<\/a> worth asking before you sign up.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Your VPS plan says 1 Gbps, but iperf3 reports 180 Mbps. TCP retransmits climb under load, large downloads stall, and dmesg shows dropped frames on the virtual NIC. Before you&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-902","post","type-post","status-publish","format-standard","hentry","category-performance-optimization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs - Virtual Servers VPS Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs\" \/>\n<meta property=\"og:description\" content=\"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual Servers VPS Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-16T23:21:59+00:00\" \/>\n<meta name=\"author\" content=\"Virtual-Servers-Vps-Editor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Virtual-Servers-Vps-Editor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/\",\"url\":\"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/\",\"name\":\"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs - Virtual Servers VPS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#website\"},\"datePublished\":\"2026-08-16T23:21:59+00:00\",\"author\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0\"},\"breadcrumb\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtualserversvps.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#website\",\"url\":\"https:\/\/virtualserversvps.com\/blog\/\",\"name\":\"Virtual Servers VPS Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtualserversvps.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0\",\"name\":\"Virtual-Servers-Vps-Editor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g\",\"caption\":\"Virtual-Servers-Vps-Editor\"},\"sameAs\":[\"https:\/\/virtualserversvps.com\/blog\"],\"url\":\"https:\/\/virtualserversvps.com\/blog\/author\/virtualserversvps\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs - Virtual Servers VPS Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/","og_locale":"en_US","og_type":"article","og_title":"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs","og_description":"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs","og_url":"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/","og_site_name":"Virtual Servers VPS Blog","article_published_time":"2026-08-16T23:21:59+00:00","author":"Virtual-Servers-Vps-Editor","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Virtual-Servers-Vps-Editor","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/","url":"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/","name":"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs - Virtual Servers VPS Blog","isPartOf":{"@id":"https:\/\/virtualserversvps.com\/blog\/#website"},"datePublished":"2026-08-16T23:21:59+00:00","author":{"@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0"},"breadcrumb":{"@id":"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/virtualserversvps.com\/blog\/vps-network-mtu-offload-tuning\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtualserversvps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"VPS Network MTU and Offload Settings: Diagnosing Slow Throughput and Packet Drops on Virtual NICs"}]},{"@type":"WebSite","@id":"https:\/\/virtualserversvps.com\/blog\/#website","url":"https:\/\/virtualserversvps.com\/blog\/","name":"Virtual Servers VPS Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtualserversvps.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0","name":"Virtual-Servers-Vps-Editor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g","caption":"Virtual-Servers-Vps-Editor"},"sameAs":["https:\/\/virtualserversvps.com\/blog"],"url":"https:\/\/virtualserversvps.com\/blog\/author\/virtualserversvps\/"}]}},"_links":{"self":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/comments?post=902"}],"version-history":[{"count":1,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/902\/revisions"}],"predecessor-version":[{"id":905,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/902\/revisions\/905"}],"wp:attachment":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/media?parent=902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/categories?post=902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/tags?post=902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}