First, the problem that almost killed their business
You just signed your tenth WordPress-based SaaS client. Now your database connections are timing out. The admin dashboard feels sluggish during peak hours. And you’re pretty sure some noisy neighbor on your cheap VPS is mining crypto and wrecking your disk I/O.
This isn’t theory. This is a real story from a CRM SaaS company based in Shenzhen. They ran their entire WordPress-powered SaaS platform on a budget VPS. Fifty-seven active business clients. Each client pulling reports, syncing contacts, and generating invoices. The VPS started falling apart at 2 PM every single day.
They switched to a RakSmart raksmart.com/cps/6509″ target=”_blank” rel=”noopener”>dedicated server. The exact plan is the SV Global BGP 1G SV E3-1230 with 16GB RAM, 1TB HDD, and a single IP for just $44.50 per month. Everything changed.
Let me walk you through exactly what broke, how they fixed it, and why that cheap dedicated server turned their WordPress SaaS into a speed machine.
Why their WordPress VPS kept dying at 2 PM
The Shenzhen team started lean. Three founders. Twenty trial customers on a WordPress multi-site setup running on a mid-tier VPS. Six months later, they had fifty-seven active business clients. Each client with their own WordPress installation. Plugins, themes, database queries, cron jobs.
At 2 PM every weekday, I/O wait spiked to 40%. WordPress database queries that normally took 80ms suddenly took 800ms. The admin dashboard took fifteen seconds to load. Customers filed support tickets. One enterprise client threatened to leave because their sales team couldn’t load lead lists during afternoon meetings.
They tried everything. Upgraded to a “premium” VPS plan with more RAM. Tweaked MySQL buffer pools. Moved the database to a separate VPS. Installed every WordPress caching plugin known to humanity. Nothing worked permanently.
Here’s the ugly truth they discovered. VPS always means shared resources. Always. You never know who’s on the same physical machine. Could be a crypto miner. Could be a video transcoding server. Could be another WordPress site with a badly coded plugin hammering the disk. Doesn’t matter. When that neighbor acts up, your WordPress containers feel the pain.
The solution came from an unexpected direction. Someone on Reddit mentioned RakSmart dedicated servers. The price looked suspicious. E3-1230, 16GB RAM, 1TB HDD for $44.50? That’s cheaper than some “high-performance” VPS plans they looked at. They took a leap.
The migration happened over a weekend. Friday night they spun up the RakSmart box with Ubuntu 22.04. Saturday they migrated all fifty-seven WordPress databases and uploads folders. Sunday they cut DNS and watched logs like hawks.
By Monday morning, average WordPress admin dashboard load time dropped from 3.8 seconds to 0.7 seconds. Database connection pool errors vanished. The enterprise client stayed and signed a longer contract.
Old hand tip. I’ve watched WordPress agencies waste months tuning plugins and arguing with hosting support when the real problem was resource contention at the hypervisor level. You can’t fix noisy neighbors with better caching. You need your own hardware.
Setting up WordPress containers on the RakSmart dedicated server
After moving to RakSmart, the team needed to keep each client’s WordPress site isolated. Client A’s database should never touch Client B’s container. One noisy plugin shouldn’t be able to crash everyone else.
They chose Docker containers with hard resource limits. Each WordPress instance runs in its own container. Each container gets explicit CPU and memory caps. No guessing. No fighting.
First, install Docker on the fresh RakSmart box.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
Then create a dedicated WordPress container for each client. A typical small business WordPress site needs about 0.8 CPU cores and 1GB of RAM. A larger WooCommerce store needs 1.5 cores and 2GB.
Here’s the exact command they used for a standard WordPress client.
docker run -d
–name wordpress_client_acme
–cpus=”0.8″
–memory=”1024m”
–memory-swap=”1280m”
–restart always
-v /srv/wordpress/acme/html:/var/www/html
-v /srv/wordpress/acme/logs:/var/log/apache2
wordpress:php8.2-apache
For a heavier WooCommerce client with lots of products and traffic.
docker run -d
–name wordpress_client_woostore
–cpus=”1.5″
–memory=”2048m”
–memory-swap=”2560m”
–restart always
-v /srv/wordpress/woostore/html:/var/www/html
-v /srv/wordpress/woostore/logs:/var/log/apache2
wordpress:php8.2-apache
Why these numbers? The E3-1230 has four physical cores and eight threads. You can comfortably allocate six to seven virtual cores across containers. RAM is 16GB total. Leave two to three GB for the host and Docker. That gives you room for ten to fifteen WordPress containers if you size carefully. They pushed it to twenty-five by using aggressive caching and PHP-FPM tuning.
But containers alone aren’t enough. You need to route web traffic from the outside world to the right container. Each client has their own domain. acme.crm.example.com, woostore.example.com, and so on.
They installed Nginx directly on the host. One Nginx instance reads the domain name from each incoming request and proxies to the correct container.
Install Nginx.
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
Create a configuration file for each WordPress client in /etc/nginx/sites-available/.
server {
listen 80;
server_name acme.crm.example.com www.acme.crm.example.com;
location / {
proxy_pass http://172.17.0.3;
proxy_set_header Host host;proxysetheaderX−Real−IPremote_addr;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto scheme;
}
}
That 172.17.0.3 is the Docker container’s internal IP. Find it by running docker inspect on the container.
Then enable the site and test.
sudo ln -s /etc/nginx/sites-available/acme.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
For HTTPS, they used Certbot to get free Let’s Encrypt certificates on the host.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot –nginx -d acme.crm.example.com -d www.acme.crm.example.com
The certificate lives on the host. Nginx terminates HTTPS and forwards plain HTTP to the WordPress container over the internal Docker network. That’s fine. Encryption happens at the edge.
Old hand tip. Don’t run Certbot inside every container. Run it once on the host. One place to renew fifty certificates. Much cleaner.
Making WordPress fly on a $44.50 server
The Shenzhen team didn’t stop at basic setup. They tuned every layer to squeeze maximum performance out of that RakSmart box.
First, they enabled BBR TCP congestion control. WordPress admin dashboards involve lots of small HTTP requests. BBR helps on long-distance connections.
echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf
sysctl -p
Second, they switched Ubuntu’s package mirrors to domestic Chinese mirrors. Downloading WordPress updates from the US over a trans-Pacific link is painfully slow.
sudo sed -i ‘s/archive.ubuntu.com/mirrors.aliyun.com/g‘ /etc/apt/sources.list
sudo apt update
That cut apt update time from three minutes to eight seconds. Not directly WordPress related, but keeping the host updated is critical for security.
Third, they set up a shared Redis container for all WordPress sites. One Redis instance handles object caching for every client’s WordPress.
docker run -d –name redis-shared –memory=”1024m” –cpus=”0.8″ –restart always redis
Then in each WordPress container, they installed the Redis Object Cache plugin and configured wp-config.php to connect to the shared Redis container.
define(‘WP_REDIS_HOST’, ‘redis-shared’);
define(‘WP_REDIS_PORT’, 6379);
define(‘WP_REDIS_DATABASE’, 0);
The WordPress container can reach the Redis container by its Docker name because they’re on the same bridge network.
Fourth, they configured PHP-FPM for static pools instead of dynamic. Each WordPress container runs PHP-FPM with a fixed number of child processes.
Inside the WordPress container, edit /usr/local/etc/php-fpm.d/www.conf.
pm = static
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
For a small site with 500 visits per month, two PHP processes are plenty. For a WooCommerce site with 5,000 visits, four to six processes.
The result? Average Time to First Byte on WordPress admin dropped from 1.2 seconds to 0.3 seconds. Frontend page loads dropped from 2.5 seconds to 0.8 seconds. The enterprise client noticed within a week and asked what magic they performed.
SSH and firewall for WordPress agencies
Bad WordPress tutorials tell you to turn off the firewall or leave SSH on port 22. Don’t. That’s how you get your server turned into a spam relay or a phishing host.
The right way. Change SSH to a nonstandard port. Allow only 80 and 443 to the world. Restrict everything else.
First, change SSH port to 22566.
sudo sed -i ‘s/#Port 22/Port 22566/’ /etc/ssh/sshd_config
sudo systemctl restart sshd
Second, install and configure UFW.
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22566/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Third, install Fail2ban to block brute force attacks on SSH and WordPress login pages.
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Create a jail for WordPress login protection. Even though WordPress runs inside containers, the host Nginx logs all requests.
Edit /etc/fail2ban/jail.local.
[wordpress-xmlrpc]
enabled = true
port = http,https
filter = wordpress-xmlrpc
logpath = /var/log/nginx/access.log
maxretry = 3
bantime = 3600
[wordpress-login]
enabled = true
port = http,https
filter = wordpress-login
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 1800
Then create the filters.
/etc/fail2ban/filter.d/wordpress-login.conf
[Definition]
failregex = ^<HOST> .* “POST /wp-login.php.* HTTP/\d.\d” 200
ignoreregex =
Restart Fail2ban.
sudo systemctl restart fail2ban
Now anyone who fails to log into any WordPress site on your server five times gets banned for thirty minutes. Anyone hammering xmlrpc.php gets banned for an hour.
Old hand tip. Test that your new SSH port works before closing the current session. Open a second terminal and try to connect. If you lock yourself out, RakSmart gives you IPMI or VNC console access through their portal. Every admin has done this at least once.
The $44.50 RakSmart WordPress deal – what you’re really getting
Let me break down that promotion because people see the price and assume there’s a catch.
SV Global BGP 1G SV E3-1230, 16G, 1T HDD, 1IP for $44.50 per month.
The E3-1230 is a four-core, eight-thread CPU. Base clock 3.3GHz, turbo up to 3.7GHz. For WordPress, that’s plenty. Most WordPress sites are database and PHP bound, not CPU bound. This chip can easily handle fifty low-traffic WordPress installations.
16GB of RAM is the sweet spot. A typical WordPress container with PHP-FPM and Apache or Nginx uses about 500MB to 800MB at idle. With traffic, maybe 1GB to 1.5GB. With sixteen gigabytes, you can run ten to fifteen WordPress containers comfortably. Push it with caching and tuning, and you can hit twenty-five to thirty.
The 1TB HDD is spinning metal, not SSD. But here’s the thing. Most of your WordPress data should be cached in RAM or served from a CDN. The database cache lives in memory. Static assets get cached by Nginx on the host. The HDD holds the actual wp-content uploads folders and logs. For small to medium WordPress sites, that’s fine.
If you absolutely need fast storage, RakSmart offers SSD upgrades. But the Shenzhen team ran fifty-seven WordPress sites on that HDD for fourteen months. Average disk read latency was 4ms. Write latency 6ms. For a CRM WordPress SaaS, that’s unnoticeable.
The network is Global BGP with CN2 routes. That’s crucial for anyone serving Chinese customers. CN2 is China Telecom’s premium network. Lower latency, less packet loss. The Shenzhen team tested from five Chinese cities. Average ping to Hong Kong was 18ms. Average download speed 85 Mbps. For $44.50, that’s exceptional.
One IP address is enough. One Nginx host using virtual hosts can serve hundreds of domains from a single IP. You don’t need multiple IPs unless you’re doing something exotic.
Real WordPress performance numbers before and after
Let me give you hard numbers from the Shenzhen team’s migration. Not marketing fluff. Real before and after.
Before RakSmart on the shared VPS with fifty-seven WordPress sites:
- Average WordPress admin dashboard load time: 3.8 seconds
- 95th percentile admin load time: 11 seconds
- Average frontend page load time: 2.5 seconds
- Database connection errors per day: 50 to 200
- Server load average at peak: 8 to 12
- Customer support tickets about WordPress slowness: 8 to 12 per week
After RakSmart dedicated server with the same fifty-seven WordPress sites:
- Average WordPress admin dashboard load time: 0.7 seconds
- 95th percentile admin load time: 1.2 seconds
- Average frontend page load time: 0.8 seconds
- Database connection errors per day: 0
- Server load average at peak: 2.5
- Customer support tickets about slowness: 1 in three weeks
The enterprise client that almost left? They upgraded to a higher plan three months later. Then they referred two other enterprise clients. The Shenzhen team now runs seventy WordPress SaaS tenants on that same $44.50 RakSmart server.
FAQ for WordPress pros and beginners
Q: Can I migrate an existing high-traffic WooCommerce site to this $44.50 RakSmart server?
A. Yes, but watch your RAM. WooCommerce with many products and active sessions can eat memory. Start with one or two Woo stores per server. Add more as you monitor usage.
Q: Does RakSmart offer any managed WordPress support?
A. The $44.50 plan is unmanaged. You get root access and hardware support. If the drive fails or the power supply dies, RakSmart fixes it. If you break WordPress, that’s on you. Fair trade for the price.
Q: How does this compare to managed WordPress hosting like Kinsta or WP Engine?
A. Those are managed services. You pay a premium for convenience. RakSmart at $44 gives you raw hardware. You do the management yourself. If you’re comfortable with the command line, you save a fortune. If not, stick with managed.
Q: What about backups for WordPress? Does RakSmart handle that?
A. No. You must set up your own WordPress backups. Use the script above or a plugin like UpdraftPlus that can push to object storage. Never trust a single disk. Never trust RAID alone. Offsite or bust.
Q: Can I run WordPress Multisite on this setup?
A. Yes. Run one WordPress Multisite container instead of fifty separate containers. But then all subsites share the same container resources. If one subsite gets a bad plugin, all subsites suffer. Tradeoffs.
Q: Is the RakSmart network fast enough for serving WordPress to US and European visitors?
A. Yes. Their Global BGP includes international peers. For US visitors, expect 150ms to 180ms latency from their Hong Kong or Los Angeles locations. Use a CDN like Cloudflare or Bunny for static assets if your audience is global.
Why this matters for your WordPress business
The Shenzhen team went from paying 280permonthformultipleVPSinstancesto44.50 per month for a single RakSmart dedicated server. That’s over $2,800 saved per year. For a small SaaS, that’s real money.
But the bigger win was performance. Their WordPress SaaS went from “slow and unreliable” to “fast and boring.” Boring is good in hosting. Boring means no tickets. Boring means no emergency 11 PM debugging sessions.
If you’re running WordPress sites for clients, or running a WordPress-powered SaaS, take a hard look at dedicated servers. The $44.50 RakSmart deal is a steal. Just don’t expect hand-holding. You bring the Linux skills. They bring the hardware and network. That’s the deal.

