{"id":1513,"date":"2026-10-19T22:37:54","date_gmt":"2026-10-19T22:37:54","guid":{"rendered":"https:\/\/affordablevpsserver.com\/blog\/?p=1513"},"modified":"2026-10-19T22:37:54","modified_gmt":"2026-10-19T22:37:54","slug":"pre-migration-smoke-test-checkpoints","status":"publish","type":"post","link":"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/","title":{"rendered":"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS"},"content":{"rendered":"<div style=\"padding:20px\">\n<h2>Why the DNS cut is the wrong time to find out<\/h2>\n<p>A DNS change propagates unevenly, and reverting takes as long as the original switch. Everything that can be verified on the new box under its temporary hostname should be verified before the record changes, because after the cut every discovery costs live traffic. The eleven checkpoints below take about 90 minutes on a fresh instance and catch the failure modes that account for most budget-VPS migrations gone wrong.<\/p>\n<p>Work through them in order against the IP address directly, using <code>curl --resolve<\/code> or an <code>\/etc\/hosts<\/code> entry rather than the domain. Compare results side by side with the current host from the <a href=\"https:\/\/affordablevpsserver.com\/#providers\">provider comparison shortlist<\/a> so a regression is visible immediately rather than a week later.<\/p>\n<h2>Checkpoints 1-3: kernel, disk and memory truth<\/h2>\n<p><b>1. Kernel and virtualization.<\/b> Run <code>uname -r<\/code> and <code>systemd-detect-virt<\/code>. Confirm the kernel supports what your stack needs, and note whether you are on KVM or a container. Containers hide <code>sysctl<\/code> knobs, so test one write such as <code>sysctl -w net.core.somaxconn=2048<\/code> before planning any tuning.<\/p>\n<p><b>2. Disk reality.<\/b> Compare <code>df -h<\/code> with the advertised capacity. A 40 GB plan reporting 36 GB usable is normal after filesystem overhead; a 40 GB plan reporting 24 GB means thin provisioning or an image larger than expected. Confirm the filesystem type with <code>lsblk -f<\/code> and check inode count, which bites on mail and cache-heavy apps.<\/p>\n<p><b>3. Memory available.<\/b> Read <code>MemAvailable<\/code> in <code>\/proc\/meminfo<\/code>, not <code>MemTotal<\/code>, and add swap if the plan lacks it. On a 2 GB box create a 1 GB swapfile with <code>fallocate -l 1G \/swapfile<\/code> and set <code>vm.swappiness=10<\/code>. Verify that the swap survives reboot before you need it under load.<\/p>\n<h2>Checkpoints 4-5: storage throughput and network path<\/h2>\n<p><b>4. I\/O sanity.<\/b> Run <code>fio<\/code> with a 4K random mix and a 1M sequential write. Thresholds: 4K random write p99 under 12 ms and sequential write above 200 MB\/s for the budget tier. Anything slower than 80 MB\/s sequential suggests network storage or a shared node with a saturated backend, and database imports will take 10x longer than on the old host.<\/p>\n<p><b>5. Network path and MTU.<\/b> Check <code>mtr -rw -c 50<\/code> to your main monitoring location and to one user region. Look for a hop with more than 2% loss, and test MTU with <code>ping -M do -s 1472<\/code>. A path that works only at 1400 MTU will break HTTPS handshakes to some clients and VPN tunnels unexpectedly. Record the baseline RTT so post-cut latency comparisons are measured, not remembered.<\/p>\n<h2>Checkpoints 6-7: services and TLS<\/h2>\n<p><b>6. Service start and restart.<\/b> Enable every unit with <code>systemctl enable --now<\/code>, reboot, and confirm each one is active without manual intervention. Check that your app binds to 0.0.0.0 or the correct interface rather than 127.0.0.1, and that firewall rules from the old host were transferred with the ports your users actually need.<\/p>\n<p><b>7. TLS certificate issuance.<\/b> Request a real certificate from the staging or production ACME endpoint against the temporary hostname, not a self-signed placeholder. Confirm that port 80 is reachable for HTTP-01 and that renewal works with <code>certbot renew --dry-run<\/code>. Test both the apex domain and the www hostname, plus any subdomain used for API or mail.<\/p>\n<h2>Checkpoints 8-9: data integrity and cron<\/h2>\n<p><b>8. Data integrity.<\/b> Import a recent database dump and compare counts: rows in the five largest tables, checksums of critical files, and the newest record timestamp. A dump that restores without errors can still be three days stale. Verify that file permissions and ownership match, since a silent 403 storm at 2 am after cutover starts here.<\/p>\n<p><b>9. Scheduled work.<\/b> List cron and systemd timers with <code>systemctl list-timers --all<\/code> and <code>crontab -l<\/code>, then force-run the three jobs that matter most. Confirm timezone with <code>timedatectl<\/code>, because a host set to UTC while your reports assume local time shifts every daily job by hours. Check mail delivery for cron output too.<\/p>\n<h2>Checkpoints 10-11: egress allowance and rollback<\/h2>\n<p><b>10. Bandwidth accounting.<\/b> Reset your egress counter, serve 5 GB of real traffic, and confirm it matched the provider&#8217;s usage panel. A 10% gap is normal; a 40% gap means compressed or pre-compression counting and your included transfer is smaller than advertised. Also confirm the plan&#8217;s overage price from the invoice rather than the page.<\/p>\n<p><b>11. Rollback path.<\/b> Write down the reverse DNS change, the exact TTL you will use, and the snapshot name of the old host. Keep the old box running for at least 14 days after cutover. Set TTL to 300 seconds 48 hours before the cut, then raise it back afterward, and pre-create the new snapshot so a restore is a two-minute action rather than an hour.<\/p>\n<h2>Pass criteria and what to do with failures<\/h2>\n<p>The table below pairs each checkpoint with a pass line. Treat a failure on checkpoints 4, 8 or 11 as a hard stop; everything else is fixable without delaying cutover. Fixing a kernel or swappiness setting takes minutes; fixing a storage tier or corrupt dump does not.<\/p>\n<table>\n<tr>\n<th>Checkpoint<\/th>\n<th>Pass line<\/th>\n<th>Typical fix time<\/th>\n<\/tr>\n<tr>\n<td>Disk usable capacity<\/td>\n<td>within 8% of advertised<\/td>\n<td>re-image, 20 min<\/td>\n<\/tr>\n<tr>\n<td>4K random write p99<\/td>\n<td>under 12 ms<\/td>\n<td>plan change, hours<\/td>\n<\/tr>\n<tr>\n<td>Path packet loss<\/td>\n<td>under 1%<\/td>\n<td>region change, hours<\/td>\n<\/tr>\n<tr>\n<td>Service restart<\/td>\n<td>all units active after reboot<\/td>\n<td>15 min<\/td>\n<\/tr>\n<tr>\n<td>TLS issuance<\/td>\n<td>dry-run renewal clean<\/td>\n<td>30 min<\/td>\n<\/tr>\n<tr>\n<td>Data counts<\/td>\n<td>exact match to source<\/td>\n<td>re-dump, 1 h<\/td>\n<\/tr>\n<tr>\n<td>Egress accounting<\/td>\n<td>within 10% of served<\/td>\n<td>document, no fix<\/td>\n<\/tr>\n<tr>\n<td>Rollback<\/td>\n<td>old host live, TTL lowered<\/td>\n<td>before cut, mandatory<\/td>\n<\/tr>\n<\/table>\n<h2>Schedule the cut only after a clean sweep<\/h2>\n<p>Plan the DNS change for a low-traffic weekday morning rather than a Friday, and keep the old host answering during the transition window. Monitor the new box for 24 hours after the cut with the same checks you ran before it, since the load profile changes once real traffic arrives. Then run the smoke tests again on day seven to catch anything that only fails under sustained traffic.<\/p>\n<p>If a check fails at step four or eight, replace the node rather than tune around it. Providers with local NVMe and transparent transfer accounting are listed in the <a href=\"https:\/\/affordablevpsserver.com\/\">budget VPS plans reviewed on the main site<\/a>, and switching before the DNS cut costs an hour instead of a weekend of rollback work.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Why the DNS cut is the wrong time to find out A DNS change propagates unevenly, and reverting takes as long as the original switch. Everything that can be verified on the new box under its temporary hostname should be verified before the record changes, because after the cut every discovery costs live traffic. The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1513","post","type-post","status-publish","format-standard","hentry","category-budget-vps-guides"],"blocksy_meta":[],"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>Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS - Affordable VPS Server Blog<\/title>\n<meta name=\"description\" content=\"Why the DNS cut is the wrong time to find out A DNS change propagates unevenly, and reverting takes as long as the original switch. Everything that can be\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS\" \/>\n<meta property=\"og:description\" content=\"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS\" \/>\n<meta property=\"og:url\" content=\"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/\" \/>\n<meta property=\"og:site_name\" content=\"Affordable VPS Server Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-19T22:37:54+00:00\" \/>\n<meta name=\"author\" content=\"Affordable-Vps-Server-Author\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Affordable-Vps-Server-Author\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/\",\"url\":\"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/\",\"name\":\"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS - Affordable VPS Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#website\"},\"datePublished\":\"2026-10-19T22:37:54+00:00\",\"author\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7\"},\"description\":\"Why the DNS cut is the wrong time to find out A DNS change propagates unevenly, and reverting takes as long as the original switch. Everything that can be\",\"breadcrumb\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/affordablevpsserver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#website\",\"url\":\"https:\/\/affordablevpsserver.com\/blog\/\",\"name\":\"Affordable VPS Server Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/affordablevpsserver.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7\",\"name\":\"Affordable-Vps-Server-Author\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g\",\"caption\":\"Affordable-Vps-Server-Author\"},\"sameAs\":[\"https:\/\/affordablevpsserver.com\/blog\"],\"url\":\"https:\/\/affordablevpsserver.com\/blog\/author\/affordablevpsserver\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS - Affordable VPS Server Blog","description":"Why the DNS cut is the wrong time to find out A DNS change propagates unevenly, and reverting takes as long as the original switch. Everything that can be","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:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/","og_locale":"en_US","og_type":"article","og_title":"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS","og_description":"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS","og_url":"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/","og_site_name":"Affordable VPS Server Blog","article_published_time":"2026-10-19T22:37:54+00:00","author":"Affordable-Vps-Server-Author","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Affordable-Vps-Server-Author","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/","url":"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/","name":"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS - Affordable VPS Server Blog","isPartOf":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#website"},"datePublished":"2026-10-19T22:37:54+00:00","author":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7"},"description":"Why the DNS cut is the wrong time to find out A DNS change propagates unevenly, and reverting takes as long as the original switch. Everything that can be","breadcrumb":{"@id":"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/affordablevpsserver.com\/blog\/pre-migration-smoke-test-checkpoints\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/affordablevpsserver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pre-Migration Smoke Tests: 11 Checkpoints to Verify on a New Budget VPS Before You Cut DNS"}]},{"@type":"WebSite","@id":"https:\/\/affordablevpsserver.com\/blog\/#website","url":"https:\/\/affordablevpsserver.com\/blog\/","name":"Affordable VPS Server Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/affordablevpsserver.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7","name":"Affordable-Vps-Server-Author","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g","caption":"Affordable-Vps-Server-Author"},"sameAs":["https:\/\/affordablevpsserver.com\/blog"],"url":"https:\/\/affordablevpsserver.com\/blog\/author\/affordablevpsserver\/"}]}},"_links":{"self":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/1513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/comments?post=1513"}],"version-history":[{"count":1,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/1513\/revisions"}],"predecessor-version":[{"id":1516,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/1513\/revisions\/1516"}],"wp:attachment":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/media?parent=1513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/categories?post=1513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/tags?post=1513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}