Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

One gigabyte is a practical small-VPS floor for MySQL, not a hard minimum. Oracle’s current MySQL 26.7 Reference Manual says the default configuration is designed to let a server start on a virtual machine with approximately 512 MB of RAM. Starting is not the same as running reliably: the Linux kernel, filesystem cache, MySQL’s global allocations, InnoDB’s buffer pool, connection buffers and any web application all draw from the same limited memory.

A 1 GB VPS can therefore work for a low-traffic site with a small InnoDB working set and conservative connection limits. It becomes risky when several services share the machine, connections spike, queries need large temporary buffers, or the dataset grows. The correct setting comes from the memory left after those reservations, not from a universal percentage.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Is 1 GB a real MySQL minimum?

No. It is a rule of thumb for a small production VPS. Oracle’s documentation states: “The default configuration is designed to permit a MySQL server to start on a virtual machine that has approximately 512MB of RAM.” You can read the qualification in MySQL’s memory-use documentation. That statement describes the default startup configuration, not a guaranteed amount for queries, backups, traffic bursts or a co-located application.

At 512 MB, the database may start and answer light requests, but there is little headroom for the operating system and transient allocations. A single burst of concurrent connections, a large sort, a backup process or a web worker can push the VPS into swapping or an out-of-memory kill. Treat 512 MB as a laboratory or extremely light-duty baseline; treat 1 GB as the smallest sensible tier for a simple, monitored service.

#1 Best Overall
A-Tech 8GB DDR4 2400 MHz SODIMM PC4-19200 (PC4-2400T) CL17 Non-ECC Laptop RAM Memory Module
  • Compatible with select DDR4 Laptop, Notebook computers + Easy to install at home, no expertise required
  • Maximize your system's performance, boost loading speeds and multitask with ease
  • Backed by A-Tech's Lifetime Warranty + Friendly tech support team available to help before and after your purchase
  • Single 8GB RAM Module | DDR4 SO-DIMM 260-Pin | Speeds up to 2400MHz, PC4-19200 / PC4-2400T
  • NON-ECC Unbuffered | 1Rx8 or 2Rx8 - Single or Dual Rank | JEDEC DDR4 standard 1.2V

What consumes memory on a VPS?

MySQL memory is not one block that can be assigned without consequences. A useful budget separates resident system memory, global server allocations and work that grows with concurrency.

The operating system and neighboring services

The kernel needs memory for processes and networking, while the filesystem cache improves database and application I/O. SSH, monitoring agents, scheduled jobs, a web server, PHP or other application workers, mail services and control panels can all be resident. Reserve this amount before choosing a MySQL setting. A VPS running only MySQL has a very different budget from one serving a complete web stack.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Global MySQL allocations

Global structures include InnoDB metadata and caches, the MyISAM key buffer when applicable, table and dictionary caches, performance instrumentation and other server structures. These allocations exist even when no client is connected. The default innodb_buffer_pool_size is 128 MB in MySQL 8.0, but InnoDB reserves additional memory outside the configured pool; the configured number is therefore not the server’s total InnoDB footprint. See InnoDB startup configuration.

The InnoDB buffer pool

The buffer pool caches frequently used table and index pages so reads do not always require storage access. Oracle’s current guidance describes 50–75% of system memory as a typical range for the pool, provided the host is primarily a database server. On a 1 GB VPS, that broad range is roughly 512–768 MiB, leaving only about 256–512 MiB for the operating system, other services and every other MySQL allocation. The lower end is often safer when MySQL shares the machine.

Rank #2
A-Tech DDR4 RAM 8GB 2666MHz PC4-21300 SODIMM Laptop Memory | Non-ECC PC4-2666V CL19 260-Pin SO-DIMM 1.2V Notebook Computer Memory Upgrade Module
  • A-Tech 8GB RAM Module, DDR4 SO-DIMM 260-Pin, 2666MHz / 2667MHz PC4-21300 (PC4-2666V)
  • Non-ECC Unbuffered, JEDEC DDR4 Standard 1.2V Operating Voltage
  • Compatible with select DDR4 SODIMM capable Laptop, Notebook, Mini PC, and All-in-One (AIO) computer systems. Please verify your system's memory type, form factor, and maximum supported capacity before purchasing
  • Not compatible with desktop (DIMM), DDR2, DDR3, DDR5, ECC Registered (RDIMM), ECC Load Reduced (LRDIMM), or ECC Unbuffered (ECC UDIMM) memory types
  • Increases available memory capacity to enhance system responsiveness, application performance, and multitasking capabilities.

Per-connection and per-thread work

Many buffers are allocated as sessions perform work rather than being reserved once at startup. Sort, read, join, network and binary-log caches can grow for active threads. max_connections multiplies the possible exposure: a high limit does not consume the entire amount immediately, but it permits many sessions to allocate their own buffers at the same time. Oracle’s documented memory example accounts for the buffer pool, key_buffer_size, max_connections, per-thread buffers and approximately 2 MB of thread stack per connection. It is an illustration of the budgeting method, not a promise that every build uses exactly those values.

Memory area How it behaves Why it matters on 1 GB
Operating system and filesystem cache Resident baseline; rises with other processes and active I/O Must remain available or the kernel reclaims cache and may swap or kill processes
InnoDB buffer pool Large global cache for table and index pages Improves hit rate, but an oversized pool crowds out everything else
Global MySQL structures Present regardless of current connection count Reduce the memory left for the pool and workload
Per-thread buffers Potentially allocated for each concurrent session and operation Connection spikes can exhaust memory even with a small dataset
Application and utilities Web workers, jobs, backups and monitoring vary over time Compete directly with mysqld for the same VPS RAM

Why 1 GB is commonly recommended

A 1 GB plan creates a workable, though narrow, budget. With a conservative buffer pool near half of RAM, approximately half remains for the kernel, filesystem cache, MySQL overhead and a small application stack. That margin can absorb ordinary fluctuations if connection limits and per-thread settings are restrained.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The margin disappears when you configure a 75% pool on a shared host, allow hundreds of connections, run a control panel and web workers, or perform memory-heavy maintenance at the same time. A smaller pool that stays resident is safer than a larger pool that forces paging. Swap can prevent an immediate crash, but database pages in swap produce severe latency and do not turn insufficient RAM into reliable capacity.

Can MySQL run on a 512 MB VPS?

Yes, under constrained conditions. The default startup target proves that mysqld can initialize at approximately that size, but production suitability depends on the entire workload.

Rank #3
Crucial RAM 8GB DDR4 2666 MHz CL19 Desktop Memory CT8G4DFRA266
  • Improve your system's responsiveness, run apps faster and multitask with ease
  • Install with ease; no computer skills required How-to guides available at Crucial
  • Compatibility assurance when using the Crucial System Scanner or Crucial Advisor Tool
  • Micron quality and reliability is backed by superior component and module level testing and 42 years of memory expertise
  • ECC Type = Non-ECC, Form Factor = UDIMM, Pin Count = 288-pin, PC Speed = PC4-21300, Voltage = 12V, Rank and Configuration = 1Rx16, 1Rx8 or 2Rx8

Conditions that make 512 MB possible

  • MySQL is the only substantial service, or the application is extremely small.
  • The InnoDB working set and connection count are low.
  • Queries are short and do not create many large sorts, joins or temporary tables.
  • You monitor memory and accept that traffic growth may require an upgrade.
  • Backups, package upgrades and maintenance are scheduled so their peak memory does not coincide with traffic spikes.

Reasons to avoid 512 MB

  • A web framework launches multiple workers or a queue consumes memory alongside mysqld.
  • Concurrent sessions are unpredictable or a pooler is configured with a high limit.
  • The database is growing, has a large working set or performs reporting queries.
  • The provider’s virtualization or swap policy is unknown, making reclaim behavior difficult to predict.

If any of those risks apply, 1 GB is a more defensible starting point; 2 GB or more is appropriate when the VPS hosts a normal application stack or a growing database.

How much RAM should MySQL get on a 1 GB server?

Start with the memory that remains after reserving the operating system, application and a safety margin. Do not blindly allocate 75% simply because the database is the largest process. On a shared 1 GB VPS, a pool around 40–50% of total RAM is often a prudent first measurement point; a dedicated database-only machine may justify more if monitoring shows stable headroom.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical sizing procedure

  1. Measure the host at a quiet baseline. Run free -h and inspect resident usage with ps or your provider’s metrics. Repeat during normal traffic and a representative peak.
  2. List every co-located service. Include web workers, reverse proxies, agents, cron jobs, backup tools and temporary deployment processes. Reserve their observed peak plus a safety margin.
  3. Choose an initial pool from the remainder. Set innodb_buffer_pool_size so the operating system and non-MySQL processes retain clear headroom. On a 1 GB shared host, begin near 384–512 MiB rather than assuming 768 MiB is safe.
  4. Constrain concurrency. Set max_connections to the number your application can actually use, with a modest burst allowance. Fix connection leaks or use pooling instead of raising the limit indefinitely.
  5. Restart and verify. After changing the configuration, confirm the value with SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; and watch resident memory, swap activity, latency and aborted connections for several traffic cycles.
  6. Adjust gradually. Increase the pool only when the host remains comfortably below its memory limit and storage reads indicate a cache benefit. Reduce it immediately if swap-in activity, out-of-memory events or application failures appear.

Where to set the value

On most Linux installations, place the setting in the MySQL server option file under the [mysqld] section, for example innodb_buffer_pool_size=512M, then restart the MySQL service using the command appropriate for your distribution. Confirm the active value after the restart; editing a client section or a disabled include file has no effect.

How automatic dedicated-server settings affect a small VPS

MySQL 8.0 provides an automatic dedicated-server configuration. For machines with 1–4 GB of detected memory, the documented calculation uses 50% of detected memory for the InnoDB buffer pool. The details and prerequisites are in Automatic InnoDB Configuration for a Dedicated MySQL Server.

Rank #4
A-Tech 8GB DDR4 2133 MHz UDIMM PC4-17000 (PC4-2133P) CL15 DIMM Non-ECC Desktop RAM Memory Module
  • Compatible with select DDR4 Desktop computers + Easy to install at home, no expertise required
  • Maximize your system's performance, boost loading speeds and multitask with ease
  • Backed by A-Tech's Lifetime Warranty + Friendly tech support team available to help before and after your purchase
  • Single 8GB RAM Module | DDR4 DIMM 288-Pin | Speeds up to 2133MHz, PC4-17000 / PC4-2133P
  • NON-ECC Unbuffered | 1Rx8 or 2Rx8 - Single or Dual Rank | JEDEC DDR4 standard 1.2V

That mode is intended for a host dedicated to MySQL. If your 1 GB VPS also runs a web server, application workers or monitoring, allowing the automatic 50% choice without auditing the rest of the stack can still leave too little headroom. Check the effective value and override it with an explicit setting when the host is shared.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why max_connections can matter more than the database size

A small schema does not guarantee a small peak. Suppose each active thread needs several megabytes of stack and work buffers; dozens of simultaneous sessions can consume more memory than the cached data itself. The documented example’s approximately 2 MB thread-stack component alone would represent about 200 MB at 100 connections before other per-thread buffers are counted. Actual allocations depend on version, workload and settings, so use this as a warning about multiplication, not as a capacity promise.

Inspect Threads_connected, Threads_running, connection errors and the application’s pool configuration. A low max_connections with a clear “too many connections” response is usually safer than a value so high that the kernel kills mysqld. Set per-thread sort, read and join buffers conservatively; enlarging them globally can make every concurrent operation expensive.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choosing a VPS plan: the factors that change the answer

Compare plans using workload capacity rather than the advertised RAM number alone. The usable budget is total memory minus the operating system, provider agents and your application stack.

Best Value
Sale
CORSAIR Vengeance LPX DDR4 RAM 16GB (2x8GB) Up to 3200MHz CL16-20-20-38 1.35V Intel AMD Desktop Computer Memory - Black (CMK16GX4M2E3200C16)
  • Disclaimer: Maximum Speed requires overclocking/PC BIOS adjustments. Maximum speed and performance depend on system components, including motherboard and CPU
  • Hand-sorted memory chips ensure high performance with generous overclocking headroom
  • VENGEANCE LPX is optimized for wide compatibility with the latest Intel and AMD DDR4 motherboards
  • A low-profile height of just 34mm ensures that VENGEANCE LPX even fits in most small-form-factor builds
  • A solid aluminum heatspreader efficiently dissipates heat from each module so that they consistently run at high clock speeds
Factor Questions to answer Effect on the required tier
Total RAM Is the plan 512 MB, 1 GB, 2 GB or larger? Sets the absolute ceiling for every process
Non-MySQL usage What do the OS, web stack, panel, mail and monitoring consume at peak? Reduces memory available for mysqld
Concurrent connections How many sessions can be active during a burst? Raises per-thread allocation risk
Working-set size How much table and index data is frequently accessed? Determines whether a larger pool materially improves reads
Swap policy Is swap enabled, limited or disabled, and how fast is the storage? Changes failure behavior but cannot replace RAM
Storage latency How quickly can uncached pages be read? Slow storage makes an undersized pool more visible
Service isolation Is MySQL the only major service? Dedicated hosts can devote a larger, safer share to the pool

A 1 GB VPS is reasonable for a low-traffic site with a small working set and controlled connections. A web application with several workers, a control panel, mail, a cache or a steadily expanding dataset generally deserves 2 GB or more so normal operations do not depend on reclaiming every free page.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Symptoms that the VPS is running out of memory

  • Swap-in and swap-out activity rises: database latency becomes erratic even when CPU usage is modest.
  • The kernel logs an out-of-memory event: inspect dmesg or the system journal to see which process was terminated.
  • MySQL restarts or disappears: check provider events and service logs before assuming a configuration syntax error.
  • Connections fail during bursts: correlate application pool size, max_connections and Threads_connected.
  • Queries slow as the dataset grows: measure buffer-pool hit behavior and storage latency before simply increasing the pool.

Recovery sequence

  1. Stop nonessential jobs and confirm whether swap or an out-of-memory kill is occurring.
  2. Lower innodb_buffer_pool_size in measured steps if the host is paging.
  3. Reduce max_connections to a tested ceiling and correct application connection leaks.
  4. Review unusually large per-thread buffers and reporting queries that create temporary tables.
  5. Move the application or auxiliary services off the database VPS, or upgrade to a higher-memory plan when the measured peak leaves no safety margin.

When should you move from 1 GB to 2 GB or more?

Upgrade when normal peak usage repeatedly leaves little available memory, when swap is used during ordinary traffic, or when you must choose between keeping the buffer pool resident and keeping the application alive. Also upgrade before a predictable event—an expanding catalog, a traffic campaign, a migration or a new worker pool—rather than waiting for an out-of-memory outage.

More RAM is not a substitute for indexes, query optimization or sensible pooling, but it gives those fixes room to work. After an upgrade, re-measure the host and increase the pool only if the working set and read behavior justify it; unused cache is less valuable than stable service headroom.

Bottom line for a small VPS

MySQL can start at approximately 512 MB with its defaults, but 1 GB is the practical floor because the database shares memory with the kernel, filesystem cache, connection work and often an application. Size innodb_buffer_pool_size from the memory left after those reservations, keep max_connections realistic, monitor peaks and treat swapping as a capacity warning. Choose 2 GB or more when the VPS runs several services, handles unpredictable concurrency or has a working set that no longer fits comfortably.

Quick Recap

Bestseller No. 1
A-Tech 8GB DDR4 2400 MHz SODIMM PC4-19200 (PC4-2400T) CL17 Non-ECC Laptop RAM Memory Module
A-Tech 8GB DDR4 2400 MHz SODIMM PC4-19200 (PC4-2400T) CL17 Non-ECC Laptop RAM Memory Module
Maximize your system's performance, boost loading speeds and multitask with ease; Single 8GB RAM Module | DDR4 SO-DIMM 260-Pin | Speeds up to 2400MHz, PC4-19200 / PC4-2400T
$56.20
Bestseller No. 2
A-Tech DDR4 RAM 8GB 2666MHz PC4-21300 SODIMM Laptop Memory | Non-ECC PC4-2666V CL19 260-Pin SO-DIMM 1.2V Notebook Computer Memory Upgrade Module
A-Tech DDR4 RAM 8GB 2666MHz PC4-21300 SODIMM Laptop Memory | Non-ECC PC4-2666V CL19 260-Pin SO-DIMM 1.2V Notebook Computer Memory Upgrade Module
A-Tech 8GB RAM Module, DDR4 SO-DIMM 260-Pin, 2666MHz / 2667MHz PC4-21300 (PC4-2666V); Non-ECC Unbuffered, JEDEC DDR4 Standard 1.2V Operating Voltage
$58.69
Bestseller No. 3
Crucial RAM 8GB DDR4 2666 MHz CL19 Desktop Memory CT8G4DFRA266
Crucial RAM 8GB DDR4 2666 MHz CL19 Desktop Memory CT8G4DFRA266
Improve your system's responsiveness, run apps faster and multitask with ease; Install with ease; no computer skills required How-to guides available at Crucial
$66.99
Bestseller No. 4
A-Tech 8GB DDR4 2133 MHz UDIMM PC4-17000 (PC4-2133P) CL15 DIMM Non-ECC Desktop RAM Memory Module
A-Tech 8GB DDR4 2133 MHz UDIMM PC4-17000 (PC4-2133P) CL15 DIMM Non-ECC Desktop RAM Memory Module
Maximize your system's performance, boost loading speeds and multitask with ease; Single 8GB RAM Module | DDR4 DIMM 288-Pin | Speeds up to 2133MHz, PC4-17000 / PC4-2133P
$54.51
SaleBestseller No. 5
CORSAIR Vengeance LPX DDR4 RAM 16GB (2x8GB) Up to 3200MHz CL16-20-20-38 1.35V Intel AMD Desktop Computer Memory - Black (CMK16GX4M2E3200C16)
CORSAIR Vengeance LPX DDR4 RAM 16GB (2x8GB) Up to 3200MHz CL16-20-20-38 1.35V Intel AMD Desktop Computer Memory - Black (CMK16GX4M2E3200C16)
Hand-sorted memory chips ensure high performance with generous overclocking headroom
$129.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.