{"id":4435,"date":"2026-09-12T17:04:58","date_gmt":"2026-09-12T11:34:58","guid":{"rendered":"https:\/\/cpanelfree.com\/blog\/how-to-configure-cpanel-whm-packages-quotas\/"},"modified":"2026-09-12T17:06:53","modified_gmt":"2026-09-12T11:36:53","slug":"how-to-configure-cpanel-whm-packages-quotas","status":"publish","type":"post","link":"https:\/\/cpanelfree.com\/blog\/how-to-configure-cpanel-whm-packages-quotas\/","title":{"rendered":"How to Configure cPanel \/ WHM Packages, Feature Lists &amp; Resource Quotas"},"content":{"rendered":"<p>In web hosting, unconstrained resource allocation leads directly to server instability. If a single customer\u2019s WordPress site experiences a sudden traffic spike or gets compromised by a malicious spam script, an unmetered cPanel account can consume 100% of server disk I\/O, fill the entire physical filesystem, and crash the MariaDB database for every other tenant on the machine.<\/p>\n<p>To build a profitable, scalable hosting business on your <a href=\"https:\/\/cpanelfree.com\/\">Linux VPS<\/a>, you must master <strong>WHM Packages and Feature Lists<\/strong>. WHM packages define the boundaries of every client account: storage quotas, bandwidth allowances, maximum email accounts, database limits, and accessible cPanel tools. In this tutorial, you will learn how to design tiered retail hosting plans, lock down security using Feature Manager, and enforce multi-tenant stability.<\/p>\n<h2>1. Designing Tiered Hosting Packages<\/h2>\n<p>Successful hosting companies structure their offerings into three distinct, clear product tiers that cater to varying client requirements while encouraging plan upgrades:<\/p>\n<table style=\"width: 100%;border-collapse: collapse;margin: 24px 0\">\n<thead>\n<tr style=\"background: #1e293b;color: #f8fafc;border-bottom: 2px solid #334155\">\n<th style=\"padding: 12px;text-align: left\">Resource Parameter<\/th>\n<th style=\"padding: 12px;text-align: left\">Starter Plan ($9\/mo)<\/th>\n<th style=\"padding: 12px;text-align: left\">Business Pro ($24\/mo)<\/th>\n<th style=\"padding: 12px;text-align: left\">eCommerce Elite ($49\/mo)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"border-bottom: 1px solid #334155\">\n<td style=\"padding: 12px;font-weight: bold\">Disk Quota (MB)<\/td>\n<td style=\"padding: 12px\">5,000 MB (5GB NVMe)<\/td>\n<td style=\"padding: 12px\">20,000 MB (20GB NVMe)<\/td>\n<td style=\"padding: 12px\">50,000 MB (50GB NVMe)<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #334155\">\n<td style=\"padding: 12px;font-weight: bold\">Monthly Bandwidth<\/td>\n<td style=\"padding: 12px\">50,000 MB (50GB)<\/td>\n<td style=\"padding: 12px\">200,000 MB (200GB)<\/td>\n<td style=\"padding: 12px\">Unmetered (500GB Soft)<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #334155\">\n<td style=\"padding: 12px;font-weight: bold\">Max Addon Domains<\/td>\n<td style=\"padding: 12px\">0 (Single Website)<\/td>\n<td style=\"padding: 12px\">3 Domains<\/td>\n<td style=\"padding: 12px\">10 Domains<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #334155\">\n<td style=\"padding: 12px;font-weight: bold\">Max MySQL Databases<\/td>\n<td style=\"padding: 12px\">2 Databases<\/td>\n<td style=\"padding: 12px\">10 Databases<\/td>\n<td style=\"padding: 12px\">Unlimited<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #334155\">\n<td style=\"padding: 12px;font-weight: bold\">Max Email Accounts<\/td>\n<td style=\"padding: 12px\">5 Inboxes<\/td>\n<td style=\"padding: 12px\">25 Inboxes<\/td>\n<td style=\"padding: 12px\">Unlimited<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>2. Creating Packages in WebHost Manager (WHM)<\/h2>\n<p>To create a new package in WHM:<\/p>\n<ol>\n<li>Log in to WHM and navigate to <strong>Packages &gt; Add a Package<\/strong>.<\/li>\n<li>Enter the <strong>Package Name<\/strong> (e.g., <code>Starter_5GB<\/code>).<\/li>\n<li>Define storage quotas:\n<ul>\n<li><strong>Disk Quota (MB):<\/strong> <code>5000<\/code><\/li>\n<li><strong>Monthly Bandwidth (MB):<\/strong> <code>50000<\/code><\/li>\n<li><strong>Max FTP Accounts:<\/strong> <code>2<\/code><\/li>\n<li><strong>Max Email Accounts:<\/strong> <code>5<\/code><\/li>\n<li><strong>Max Databases:<\/strong> <code>2<\/code><\/li>\n<li><strong>Max Sub Domains:<\/strong> <code>5<\/code><\/li>\n<li><strong>Max Parked Domains:<\/strong> <code>0<\/code><\/li>\n<li><strong>Max Addon Domains:<\/strong> <code>0<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Under <strong>Settings<\/strong>:\n<ul>\n<li><strong>Dedicated IP:<\/strong> Leave unchecked (share server IP).<\/li>\n<li><strong>Shell Access:<\/strong> <em>Disabled<\/em> (crucial security baseline for shared hosting).<\/li>\n<li><strong>cPanel Theme:<\/strong> <code>jupiter<\/code><\/li>\n<li><strong>Feature List:<\/strong> Select your hardened feature profile.<\/li>\n<\/ul>\n<\/li>\n<li>Click <strong>Add<\/strong> to save the package.<\/li>\n<\/ol>\n<h2>3. Hardening Security via Feature Manager<\/h2>\n<p>By default, cPanel exposes every installed tool to the end user. Inexperienced clients often corrupt configurations by fiddling with low-level zone editors, raw Apache handlings, or SSH terminals. Restrict accessible tools via <strong>Feature Manager<\/strong>:<\/p>\n<ol>\n<li>In WHM, navigate to <strong>Packages &gt; Feature Manager<\/strong>.<\/li>\n<li>Enter a name for your custom feature list (e.g., <code>Hardened_Shared_User<\/code>) and click <strong>Add Feature List<\/strong>.<\/li>\n<li><strong>Disable the following high-risk features:<\/strong>\n<ul>\n<li><em>SSH \/ Shell Access:<\/em> Prevents command-line access.<\/li>\n<li><em>Raw Access Logs:<\/em> Saves disk space.<\/li>\n<li><em>Advanced Zone Editor:<\/em> Restricts direct editing of root DNS records.<\/li>\n<li><em>Track DNS \/ Network Tools:<\/em> Prevents network reconnaissance.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Keep essential user features enabled:<\/strong> File Manager, MySQL Databases, phpMyAdmin, Email Accounts, Let&#8217;s Encrypt SSL, and WP Toolkit.<\/li>\n<\/ol>\n<h2>4. Enforcing CloudLinux LVE Limits (CPU, RAM &amp; IOPS)<\/h2>\n<p>If your server runs <strong>CloudLinux OS<\/strong> (the industry standard for shared hosting environments), packages can be bound to Lightweight Virtualized Environments (LVE):<\/p>\n<ul>\n<li><strong>SPEED (CPU Limit):<\/strong> Set to <code>100%<\/code> (1 full CPU core). Prevents a runaway script from consuming all server cores.<\/li>\n<li><strong>PMEM (Physical Memory):<\/strong> Set to <code>1024MB<\/code> (1GB RAM) for Starter, <code>2048MB<\/code> for Business plans.<\/li>\n<li><strong>IO \/ IOPS (Disk Speed):<\/strong> Limit disk throughput to <code>10 MB\/s<\/code> and <code>1024 IOPS<\/code> to prevent high-volume database queries from freezing NVMe disk arrays.<\/li>\n<li><strong>NPROC (Max Processes):<\/strong> Limit concurrent processes to <code>30<\/code> to prevent fork bombs.<\/li>\n<\/ul>\n<h2>Advanced Resource Isolation: MySQL Governor &amp; Inode Quotas in WHM<\/h2>\n<p>Preventing shared hosting degradation requires enforcing storage object boundaries and database query limits alongside standard disk megabytes:<\/p>\n<ul>\n<li><strong>Enforcing Inode Quotas to Stop File Accumulation:<\/strong> Customers frequently store hundreds of thousands of tiny cache files, temporary session dumps, or unpurged email attachments that exhaust filesystem inodes even if their megabyte quota is only 20% full. In WHM, set a strict <strong>Inode Limit<\/strong> (e.g., <code>250,000 inodes<\/code> for Starter, <code>500,000 inodes<\/code> for Pro) in your package definitions.<\/li>\n<li><strong>Restricting Runaway Database Queries with MySQL Governor:<\/strong> CloudLinux\u2019s <strong>MySQL Governor<\/strong> monitors real-time CPU and disk I\/O consumed by every database user. If a customer\u2019s unindexed WooCommerce query spikes MariaDB, MySQL Governor automatically throttles only that specific user\u2019s queries:\n<pre><code># Check live database resource consumption per cPanel user\ndbctl list\n# Set custom CPU throttle limit for a heavy user\ndbctl set heavyuser --cpu=30<\/code><\/pre>\n<p>    Neighboring client databases continue executing with zero latency penalties.<\/li>\n<li><strong>Configuring Automated Email Sending Ceilings:<\/strong> In WHM <strong>Tweak Settings &gt; Mail<\/strong>, cap outbound messages to <strong>100 emails\/hour per domain<\/strong>. This prevents compromised WordPress accounts from turning your server into a spam botnet that blacklists your primary IP on Spamhaus or Barracuda.<\/li>\n<\/ul>\n<h2>Hosting Package Profitability &amp; Resource Allocation Strategy<\/h2>\n<p>Designing profitable packages requires balancing server density with customer satisfaction:<\/p>\n<ul>\n<li><strong>Implementing Automated Upgrade Prompts:<\/strong> When a customer approaches 90% of their allocated disk quota or bandwidth allowance, configure your billing platform (Blesta or WHMCS) to trigger an automated upgrade recommendation email. This frictionless upgrade path captures organic expansion revenue from growing businesses.<\/li>\n<li><strong>Separating Static Storage from High-Performance Database Pools:<\/strong> High-ticket eCommerce stores require massive database buffers but minimal email storage. Offer specialized <em>WooCommerce Optimized<\/em> packages that feature dedicated MariaDB buffer pools, Redis caching, and NVMe read priority over standard static brochure sites.<\/li>\n<li><strong>Enforcing Scheduled Inode and Database Maintenance:<\/strong> Provide value-added automated maintenance by deploying cron routines that purge expired transients, optimize fragmented database tables, and clean up abandoned customer error logs across all accounts weekly.<\/li>\n<\/ul>\n<div style=\"background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);border: 1px solid #334155;border-radius: 12px;padding: 28px;margin: 36px 0;text-align: center\">\n<h3 style=\"color: #38bdf8;margin-top: 0;font-size: 22px\">Scale Your Hosting Agency on CpanelFree<\/h3>\n<p style=\"color: #cbd5e1;font-size: 16px;line-height: 1.6;max-width: 680px;margin: 12px auto 24px auto\">Configure packages, feature lists, and automated billing with total flexibility. Enjoy unmetered bandwidth, enterprise SSD\/NVMe speeds, and dedicated support with CpanelFree.<\/p>\n<p>    <a href=\"https:\/\/cpanelfree.com\/\" style=\"background: #38bdf8;color: #0f172a;font-weight: 700;padding: 12px 28px;border-radius: 6px;text-decoration: none;display: inline-block;font-size: 15px\">Discover CpanelFree Reseller Hosting &rarr;<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In web hosting, unconstrained resource allocation leads directly to server instability. If a single customer\u2019s WordPress site experiences a sudden traffic spike or gets compromised by a malicious spam script, an unmetered cPanel account can consume 100% of server disk I\/O, fill the entire physical filesystem, and crash the MariaDB database for every other tenant &#8230; <a title=\"How to Configure cPanel \/ WHM Packages, Feature Lists &amp; Resource Quotas\" class=\"read-more\" href=\"https:\/\/cpanelfree.com\/blog\/how-to-configure-cpanel-whm-packages-quotas\/\" aria-label=\"Read more about How to Configure cPanel \/ WHM Packages, Feature Lists &amp; Resource Quotas\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":4434,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4435","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-hosting-news"],"_links":{"self":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/4435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/comments?post=4435"}],"version-history":[{"count":2,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/4435\/revisions"}],"predecessor-version":[{"id":4460,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/4435\/revisions\/4460"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/media\/4434"}],"wp:attachment":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/media?parent=4435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/categories?post=4435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/tags?post=4435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}