{"id":6241,"date":"2026-09-08T09:46:15","date_gmt":"2026-09-08T06:46:15","guid":{"rendered":"https:\/\/www.scalahosting.com\/kb\/?p=6241"},"modified":"2026-09-08T09:46:16","modified_gmt":"2026-09-08T06:46:16","slug":"spanel-burst-mode-hosting-limits","status":"publish","type":"post","link":"https:\/\/www.scalahosting.com\/kb\/spanel-burst-mode-hosting-limits\/","title":{"rendered":"Burst Mode: Hosting Limits That Stand Down When the Server Is Idle"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Burst mode is a load-aware enforcement mode for SPanel&#8217;s per-account resource limits. It compares a server&#8217;s load to its CPU core count around once a second and enforces those limits only when the server is actually busy.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While load stays below the core count, accounts run unconfined and can use idle capacity. The moment the load reaches the core count, fair-share enforcement engages within about a second. Burst mode works server-wide and is included free on every ScalaHosting managed VPS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>A 4 a.m. question<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a story for you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diego runs a 30-account VPS for small business clients. At 4 a.m., the server is nearly asleep: one cron job, a trickle of visitors, seven idle cores. A backup script on one account wants to compress a large archive, and under a strict CPU limit, it crawls at half a core while the other seven cores just sit idle.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Why throttle a job when no one needs protecting from it?&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Burst mode<\/strong> is SPanel&#8217;s answer, and it captures how we think about limits: they protect everyone on the server, not punish paying customers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What burst mode actually is<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Burst mode makes per-account resource limits load-aware, so they stand down when the server has spare capacity and engage the moment it doesn&#8217;t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SPanel enforces <strong>five per-account limits<\/strong> through Linux control groups (cgroups v2, the same kernel mechanism the container world is built on)<strong>:<\/strong>&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CPU\u00a0<\/li>\n\n\n\n<li>Memory<\/li>\n\n\n\n<li>Storage transfer rate\u00a0<\/li>\n\n\n\n<li>Disk IOPS\u00a0<\/li>\n\n\n\n<li>Total processes\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A small SPanel service sweeps once per second and places each limited account&#8217;s processes into its control group. Burst mode decides <em>when<\/em> that machinery clamps down, server-wide.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With burst mode on, the service compares the server&#8217;s load against the CPU core count every second: below the count, accounts run unconfined and use the spare capacity; at or above it, every limited account is confined to its budget. Full speed on a quiet server, fair shares on a busy one.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The objection burst mode answers<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every admin who has set a CPU limit knows the feeling: you cap an account so a runaway plugin can&#8217;t take the box down, then watch it get throttled at 2 a.m. on a 90%-idle server, slowing a paying customer for no benefit. A limit only earns its keep during the busy windows when accounts contend for the CPU. Burst mode acts then and gets out of the way the rest of the time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Limits should protect everyone, not punish anyone<\/strong> &#8211; a principle that runs through all of SPanel&#8217;s kernel-level resource controls, not just burst mode. SPanel&#8217;s package limits reference covers every dial and what happens when an account reaches it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How the trigger works: load versus core count<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First, the number that trips people up. A CPU limit in SPanel is a <strong>percentage of a single core, not of the whole server<\/strong>: 100% means one full core, 50% means half a core, 200% means two cores. Admins coming from other systems often misread &#8220;100&#8221; as the entire machine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The trigger itself is not a per-account percentage.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is system load compared against the core count. On an 8-core server, a load average below 8 means roughly one core&#8217;s worth of capacity is idle, and SPanel reads that as room to spare; at 8 or higher, every core is spoken for and accounts go back inside their budgets. It is a deliberately blunt signal, cheap to measure.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The one-second sweep, told honestly<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two details matter, and skipping either would oversell the feature.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enforcement is not instantaneous.<\/strong> The sweep runs every second, so a new process can run unconfined for up to about a second after it starts. For the sustained overload these limits exist to stop, a one-second horizon is the right trade; it is not built to catch microbursts, and we don&#8217;t claim it is.<\/li>\n\n\n\n<li><strong>Burst mode has a conservative tail.<\/strong> When a busy period ends, processes that were already confined stay in their control groups until they exit; only newly started work runs free again. Web workers recycle often, so the tail is short, but it is real. This is the boring reliability work that makes a feature trustworthy.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Burst mode on or off: which posture fits your billing<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Both postures are legitimate; which one a server should run is a deliberate decision, not a default to accept blindly.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular green-rows\"><table class=\"has-fixed-layout\"><tbody><tr><td>Question<\/td><td>Burst mode ON<\/td><td>Burst mode OFF<\/td><\/tr><tr><td>When are limits enforced?<\/td><td>Only while load is at or above the core count<\/td><td>Always, regardless of load<\/td><\/tr><tr><td>What can an account do on an idle server?<\/td><td>Burst into the free capacity<\/td><td>Stays inside its plan ceiling<\/td><\/tr><tr><td>Behavior under genuine load<\/td><td>Fair-share enforcement within ~1 second<\/td><td>Identical fair-share enforcement<\/td><\/tr><tr><td>Billing model it suits<\/td><td>&#8220;Fast whenever the server is quiet&#8221;<\/td><td>&#8220;What you pay for is exactly what you get&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">With burst mode off, confinement is unconditional: every account&#8217;s processes enter their control groups within a second of starting, whatever the load. Some billing models prefer that; when a Pro plan promises two cores and never more, &#8220;never more&#8221; is part of the product. Because burst mode is set at the server level, that posture applies to every account on the box at once.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Demo flow<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These steps walk the Admin Interface surfaces where the per-account limits burst mode governs are configured.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to the <strong>SPanel<\/strong> <strong>Admin Interface<\/strong> with the administrator account.<\/li>\n\n\n\n<li>Open <strong>Server Management \u2192 Server Settings<\/strong>. This is SPanel&#8217;s server-wide settings area &#8211; hostname, name servers, the email sending limit, and control-panel access all live here. Burst mode applies at this server level, not as a per-account dial.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-server-settings-1024x640.webp\" alt=\"Burst Mode: Hosting Limits That Stand Down When the Server Is Idle, Demo flow\" class=\"wp-image-6242\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-server-settings-1024x640.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-server-settings-300x188.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-server-settings-768x480.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-server-settings.webp 1440w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Open <strong>Accounts Management \u2192 Packages \u2192 Create a New Package<\/strong> (or edit one) and switch to the <strong>Advanced Limits<\/strong> tab &#8211; the kernel-limit group: <strong>CPU Limit<\/strong>, <strong>Memory Limit<\/strong>, <strong>Storage Transfer Rate<\/strong>, <strong>IOPS Limit<\/strong>, and <strong>Maximum Total Processes<\/strong>.\u00a0<br>The <strong>CPU Limit<\/strong> field defaults to 100%, one full core.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-cpu-limit-package-form-1024x640.webp\" alt=\"Burst Mode: Hosting Limits That Stand Down When the Server Is Idle, Demo flow 2\" class=\"wp-image-6243\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-cpu-limit-package-form-1024x640.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-cpu-limit-package-form-300x188.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-cpu-limit-package-form-768x480.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-cpu-limit-package-form.webp 1440w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Back in <strong>Manage Accounts<\/strong>, open an account&#8217;s <strong>Actions \u2192 Change Limits<\/strong> and switch to the <strong>Advanced Limits<\/strong> tab to see all five kernel limits for that account side by side &#8211; the same dials, applied per account.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-change-limits-1024x640.webp\" alt=\"Burst Mode: Hosting Limits That Stand Down When the Server Is Idle, Demo flow 3\" class=\"wp-image-6244\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-change-limits-1024x640.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-change-limits-300x188.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-change-limits-768x480.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-change-limits.webp 1440w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Limits that protect, not punish<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Burst mode is a small idea with a clear philosophy. Limits exist so one account&#8217;s bad day stays that account&#8217;s bad day; the runaway plugin or the heavy backup never becomes everyone&#8217;s problem. But protection is only needed when something threatens, so on a quiet server the honest move is to share the headroom.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That idea came from hosting providers on <a href=\"https:\/\/features.spanel.io\/\">the Cloud Democracy board<\/a>, who asked for per-account CPU, RAM, and IO control without a separate operating-system license. We built it natively on the kernel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The mechanics live in the <a href=\"https:\/\/www.spanel.io\/docs\">SPanel docs<\/a>, built on the kernel&#8217;s own <a href=\"https:\/\/docs.kernel.org\/admin-guide\/cgroup-v2.html\" rel=\"nofollow\">cgroups v2 control groups<\/a>. Try it on a ScalaHosting managed VPS: a quiet server stays fast, a busy one stays fair.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>FAQ<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: What is burst mode in SPanel?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> Load-aware enforcement of per-account limits. While the server&#8217;s load is below its CPU core count, accounts run unconfined and can use idle capacity. The moment load reaches the core count, SPanel confines every limited account to its budget within about a second.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: Does burst mode mean my accounts have no limits?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> No. The limits are always defined. Burst mode only changes <em>when<\/em> they are enforced: they stand down while there is spare capacity and engage within a second once the server is busy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: How fast does enforcement kick in?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> The service sweeps once per second, so a new process is confined within about a second. We don&#8217;t claim instantaneous enforcement; one second is the deliberate granularity, right for the sustained overload these limits target.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: What does a CPU limit of 100 mean?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> One full CPU core. 50 means half a core; 200 means two cores. The percentage is of a single core, not of the whole server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: Should a server run burst mode on or off?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> On if you want customers to get fast sites whenever the server is quiet. Off if your plans promise absolute ceilings. Both are fair; they just draw the line differently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: Is burst mode some kind of AI?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> No. It is deterministic kernel enforcement: control groups plus a once-per-second service that compares load to the core count. No model, no guesswork. SShield is where SPanel&#8217;s security intelligence lives.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n    {\n      \"@context\": \"https:\/\/schema.org\",\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [{\n        \"@type\": \"Question\",\n        \"name\": \"What is burst mode in SPanel?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"Load-aware enforcement of per-account limits. While the server's load is below its CPU core count, accounts run unconfined and can use idle capacity. The moment load reaches the core count, SPanel confines every limited account to its budget within about a second.\"\n        }\n      }, {\n        \"@type\": \"Question\",\n        \"name\": \"Does burst mode mean my accounts have no limits?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"No. The limits are always defined. Burst mode only changes when they are enforced: they stand down while there is spare capacity and engage within a second once the server is busy.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"How fast does enforcement kick in?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"The service sweeps once per second, so a new process is confined within about a second. We don't claim instantaneous enforcement; one second is the deliberate granularity, right for the sustained overload these limits target.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"What does a CPU limit of 100 mean?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"One full CPU core. 50 means half a core; 200 means two cores. The percentage is of a single core, not of the whole server.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"Should a server run burst mode on or off?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"On if you want customers to get fast sites whenever the server is quiet. Off if your plans promise absolute ceilings. Both are fair; they just draw the line differently.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"Is burst mode some kind of AI?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"No. It is deterministic kernel enforcement: control groups plus a once-per-second service that compares load to the core count. No model, no guesswork. SShield is where SPanel's security intelligence lives.\"\n        }\n      }]\n    }\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Burst mode is a load-aware enforcement mode for SPanel&#8217;s per-account resource limits. It compares a server&#8217;s load to its CPU core count around once a second and enforces those limits only when the server is actually busy.&nbsp; While load stays below the core count, accounts run unconfined and can use idle capacity. The moment the [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_titles_title":"What Is SPanel Burst Mode? Hosting Limits Explained | ScalaHosting KB","_seopress_titles_desc":"Learn how SPanel Burst Mode lets accounts use idle server capacity and automatically enforces CPU, RAM, I\/O, IOPS, and process limits under load.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[66],"tags":[],"class_list":["post-6241","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/6241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/comments?post=6241"}],"version-history":[{"count":5,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/6241\/revisions"}],"predecessor-version":[{"id":6251,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/6241\/revisions\/6251"}],"wp:attachment":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/media?parent=6241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/categories?post=6241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/tags?post=6241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}