{"id":950,"date":"2026-08-13T23:03:28","date_gmt":"2026-08-13T23:03:28","guid":{"rendered":"https:\/\/affordablevpsserver.com\/blog\/?p=950"},"modified":"2026-08-13T23:03:28","modified_gmt":"2026-08-13T23:03:28","slug":"personal-website-small-vps-memory-limits","status":"publish","type":"post","link":"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/","title":{"rendered":"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A 1 GB VPS running a personal website \u2014 Nginx, PHP-FPM, and MariaDB \u2014 idles around 300\u2013400 MB of used RAM and can serve tens of thousands of visits a month. The problems start when memory approaches the ceiling: the kernel starts swapping, PHP workers get killed, and the first thing you notice is a site that takes 8 seconds to load or a white page in the browser. This guide maps where the RAM actually goes on a small server, what breaks first when you run out, and how to know whether the fix is swap, tuning, or a bigger plan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where the RAM actually goes<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Component<\/th><th>Typical footprint (1 GB VPS)<\/th><\/tr><\/thead><tbody><tr><td>Linux kernel + system daemons<\/td><td>80\u2013120 MB<\/td><\/tr><tr><td>Nginx (or LiteSpeed)<\/td><td>20\u201340 MB<\/td><\/tr><tr><td>PHP-FPM (2\u20134 workers)<\/td><td>120\u2013250 MB<\/td><\/tr><tr><td>MariaDB\/MySQL<\/td><td>150\u2013300 MB<\/td><\/tr><tr><td>Page cache \/ buffers (reclaimable)<\/td><td>100\u2013300 MB<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The good news is that part of that total is reclaimable: the kernel releases page cache instantly when an application needs memory. The real floor is the sum of the processes \u2014 roughly 400\u2013700 MB for a typical WordPress stack \u2014 which leaves 300\u2013600 MB of usable headroom on a 1 GB plan. That headroom is what a traffic spike, a plugin update, or a crawling bot consumes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What breaks first when memory runs out<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PHP-FPM workers get killed.<\/strong> The OOM killer targets the largest process, which is usually a PHP worker serving a page. The symptom is a request that dies mid-render \u2014 a white page, a 500 error, or a partial page with missing assets.<\/li>\n<li><strong>MariaDB slows down or crashes.<\/strong> MySQL buffers live in memory; when they are forced out, queries re-read from disk and response time climbs from milliseconds to seconds. Repeated OOM kills on mysqld can corrupt tables.<\/li>\n<li><strong>The whole server becomes unresponsive.<\/strong> Once the kernel falls back to heavy swapping, even SSH commands stall. This is the &#8220;site is down but the panel says it&#8217;s running&#8221; state that confuses most beginners.<\/li>\n<li><strong>Background jobs fail silently.<\/strong> Cron tasks like backups and cache warmers get killed without logging an error, so the first sign is a missing backup or a cold cache at 3 AM.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Swap: how much, and when it hurts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Swap is disk pretending to be RAM, and on a budget VPS it is the cheapest safety net you will ever configure: 1\u20132 GB of swap on a 1 GB plan costs nothing and absorbs spikes that would otherwise trigger the OOM killer. The trade-off is speed \u2014 swap on NVMe is usable, swap on HDD is painful \u2014 and the danger is relying on it. If a server lives on swap for days, performance degrades silently and the real fix is more RAM, not more swap. A reasonable configuration is 1\u20132 GB of swap with a low swappiness value (10) so the kernel prefers real memory and uses swap only as an emergency buffer. Monitoring tools like <code>free -h<\/code> and <code>htop<\/code> show you in seconds whether swap is idle (fine) or active (problem).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Free optimizations before you pay for RAM<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install a page cache (LiteSpeed Cache or WP Super Cache) \u2014 this alone can cut peak PHP memory use in half.<\/li>\n<li>Cap PHP-FPM workers (<code>pm.max_children<\/code>) so a traffic spike degrades speed instead of killing processes.<\/li>\n<li>Set MariaDB&#8217;s <code>innodb_buffer_pool_size<\/code> to 25\u201350% of RAM instead of the installer default.<\/li>\n<li>Remove unused plugins and keep two versions of PHP opcache at most.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Signs you have outgrown 1 GB<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Watch the weekly pattern, not the one-off spike. If swap usage is consistently above zero during normal hours, if PHP workers die more than once a month, or if <code>free -h<\/code> shows less than 200 MB available after a cache flush, the server has outgrown 1 GB and tuning will not fix it. The upgrade path is a 2 GB plan \u2014 typically $2\u2013$4\/month more \u2014 and on most providers it is a one-click resize without a rebuild. Before upgrading, confirm the bottleneck is memory and not CPU or disk I\/O: <code>top<\/code> sorts this out in a minute. A memory problem shows high swap and low idle RAM; a CPU problem shows 100% load; an I\/O problem shows high <code>wa<\/code> time. For a personal site, the 1 GB tier with swap is genuinely enough for most of its life; the 2 GB tier becomes worth the money the moment the symptoms above appear. If you are choosing a plan for a new personal site, <a href=\"https:\/\/affordablevpsserver.com\/#providers\">our comparison table of budget VPS plans<\/a> lists the small-instance tiers from the major providers, and <a href=\"https:\/\/affordablevpsserver.com\/#providers\">our homepage breakdown of entry-level specs<\/a> shows which ones include NVMe storage and honest CPU allocation at the 1 GB level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a personal website, a provider with cheap small instances and hourly billing lets you start at 1 GB, watch the numbers, and resize without penalty:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.vultr.com\/?ref=9805352-9J\" rel=\"noreferrer noopener sponsored\" target=\"_blank\">Try Vultr&#8217;s small cloud instances (affiliate link)<\/a> \u2014 deploy a 1 GB VPS by the hour, add swap, and resize up only when your memory graphs say so.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A 1 GB VPS running a personal website \u2014 Nginx, PHP-FPM, and MariaDB \u2014 idles around 300\u2013400 MB of used RAM and can serve tens of thousands of visits a month. The problems start when memory approaches the ceiling: the kernel starts swapping, PHP workers get killed, and the first thing you notice is a [&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-950","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>Running a Personal Website on a Small VPS: Memory Limits and What Breaks First - Affordable VPS Server 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:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First\" \/>\n<meta property=\"og:description\" content=\"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First\" \/>\n<meta property=\"og:url\" content=\"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/\" \/>\n<meta property=\"og:site_name\" content=\"Affordable VPS Server Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-13T23:03:28+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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/\",\"url\":\"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/\",\"name\":\"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First - Affordable VPS Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#website\"},\"datePublished\":\"2026-08-13T23:03:28+00:00\",\"author\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7\"},\"breadcrumb\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/affordablevpsserver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First\"}]},{\"@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":"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First - Affordable VPS Server 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:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/","og_locale":"en_US","og_type":"article","og_title":"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First","og_description":"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First","og_url":"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/","og_site_name":"Affordable VPS Server Blog","article_published_time":"2026-08-13T23:03:28+00:00","author":"Affordable-Vps-Server-Author","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Affordable-Vps-Server-Author","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/","url":"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/","name":"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First - Affordable VPS Server Blog","isPartOf":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#website"},"datePublished":"2026-08-13T23:03:28+00:00","author":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7"},"breadcrumb":{"@id":"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/affordablevpsserver.com\/blog\/personal-website-small-vps-memory-limits\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/affordablevpsserver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Running a Personal Website on a Small VPS: Memory Limits and What Breaks First"}]},{"@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\/950","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=950"}],"version-history":[{"count":1,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/950\/revisions"}],"predecessor-version":[{"id":953,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/950\/revisions\/953"}],"wp:attachment":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/media?parent=950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/categories?post=950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/tags?post=950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}