Post

1c1g Optimize

Great idea 👍 I’ll treat this as two publish-ready tech articles you can post on a blog / Medium / dev.to. Because these articles contain shell commands, I will not use writing blocks (per UI rules) and instead give you clean Markdown-style content with proper code blocks.


Article 1

How to Optimize an Ubuntu 1C1G Cloud Server (A Practical, Proven Guide)

Introduction

Running a cloud server with 1 CPU and 1GB RAM is common for personal projects, landing pages, and small websites. However, default Ubuntu installations are not optimized for such low-resource environments, often leading to:

  • High memory usage
  • Random freezes
  • OOM (Out of Memory) kills
  • Poor performance under small traffic spikes

This article walks through real, production-tested optimizations to make Ubuntu stable, predictable, and usable on a 1C1G server.


1. The Core Principle: Reduce, Don’t Tune Blindly

On a 1C1G server, optimization is mostly about removing unnecessary components, not endless tuning.

Key rules:

  • Fewer background services
  • Fewer resident daemons
  • Predictable memory usage
  • Swap is mandatory

2. Enable Swap (Non-Negotiable)

Many cloud images ship without swap, which is dangerous on low memory machines.

1
2
3
4
5
sudo fallocate -l 512M /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Verify:

1
free -h

Why this matters:

  • Prevents sudden OOM kills
  • Absorbs short memory spikes
  • Improves system stability dramatically

3. Adjust Kernel Memory Behavior

Reduce aggressive swapping and cache pressure:

1
2
3
4
5
6
7
8
sudo tee /etc/sysctl.d/99-1c1g.conf <<EOF
vm.swappiness=10
vm.vfs_cache_pressure=200
vm.dirty_ratio=10
vm.dirty_background_ratio=5
EOF

sudo sysctl -p /etc/sysctl.d/99-1c1g.conf

4. Install earlyoom (Fail Fast, Not Freeze)

Instead of letting the system hang:

1
2
3
sudo apt update
sudo apt install -y earlyoom
sudo systemctl enable --now earlyoom

This kills memory-hogging processes before the kernel panics.


5. Remove Ubuntu’s Server-Unfriendly Services

Ubuntu enables many services that are useless on cloud servers.

Disable them:

1
2
3
4
5
6
7
sudo systemctl disable --now \
  snapd \
  fwupd \
  multipathd \
  iscsid \
  packagekit \
  unattended-upgrades

Remove snap completely if unused:

1
2
sudo apt purge -y snapd
sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd

Memory saved: 100–200MB


6. Limit systemd Journal Size

Unbounded logs silently eat disk and memory:

1
2
3
4
5
6
7
8
9
sudo mkdir -p /etc/systemd/journald.conf.d

sudo tee /etc/systemd/journald.conf.d/limit.conf <<EOF
[Journal]
SystemMaxUse=50M
RuntimeMaxUse=20M
EOF

sudo systemctl restart systemd-journald

7. Optimize MySQL for Low Memory

MySQL is often the largest memory consumer.

Edit:

1
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Add under [mysqld]:

1
2
3
4
5
innodb_buffer_pool_size = 128M
innodb_log_buffer_size = 8M
max_connections = 20
performance_schema = OFF
table_open_cache = 400

Restart:

1
sudo systemctl restart mysql

8. Tune PHP-FPM Conservatively

For PHP 8.x:

1
sudo nano /etc/php/8.3/fpm/pool.d/www.conf

Recommended settings:

1
2
3
4
5
pm = dynamic
pm.max_children = 2
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 1

9. What “Healthy” Looks Like

1
free -h

Expected:

  • Available memory ≥ 450–550MB
  • Swap usage < 100MB
  • No frequent CPU spikes
  • No OOM events

Conclusion

A 1C1G Ubuntu server can be perfectly stable if treated correctly.

The key is not powerful hardware—but intentional minimalism.


Article 2

Building a Website on a 1C1G Server: Technology Choices, Pros & Cons

Introduction

Once your 1C1G server is optimized, the next question is:

What website stack should I actually run on this thing?

Not all web technologies are equal under resource constraints. This article compares popular website-building approaches, focusing on performance, maintainability, and suitability for low-end servers.


1. Static Sites (Best Choice for 1C1G)

Examples

  • Hugo
  • Astro (static output)
  • Jekyll
  • Hexo

Pros

  • No database
  • No runtime backend
  • Near-zero memory usage
  • Extremely secure
  • Handles traffic spikes easily

Cons

  • Content editing workflow may feel less “CMS-like”
  • Requires rebuild to publish changes

Best For

  • Homepages
  • Blogs
  • Landing pages
  • Documentation sites

2. Static Site + Visual Editor (Best Balance)

Example

  • Publii + Nginx

Architecture:

  • Visual editor runs on your local machine
  • Server only serves static files

Pros

  • True WYSIWYG editing
  • Zero server-side processing
  • Ideal for non-developers
  • Almost no maintenance

Cons

  • Editing not done directly on server

Verdict

👉 The most practical solution for 1C1G servers


3. Traditional CMS (WordPress)

Pros

  • Huge ecosystem
  • Familiar admin interface
  • Plugins for everything

Cons

  • PHP + MySQL memory overhead
  • Security maintenance burden
  • Poor performance without tuning

Verdict

⚠️ Acceptable only with strict optimization ❌ Overkill for simple homepages


4. Headless CMS + Static Frontend

Examples

  • Hugo + Decap CMS
  • Next.js static export + CMS

Pros

  • Online editing
  • Clean separation of content & presentation
  • Modern workflow

Cons

  • Setup complexity
  • Git-based workflow may confuse non-technical users

5. Node.js CMS (Ghost, Strapi)

Pros

  • Modern interfaces
  • API-driven

Cons

  • High memory usage
  • Database dependency
  • Poor fit for 1C1G

Verdict

❌ Not recommended


6. Comparison Table

StackMemory UsageStabilityEase of Use1C1G Friendly
Static (Hugo)⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Publii⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
WordPress⭐⭐⭐⭐⭐⭐⭐⭐⭐⚠️
Headless CMS⭐⭐⭐⭐⭐⭐⭐⭐⭐⚠️
Node CMS⭐⭐⭐⭐⭐

Final Recommendation

For a 1C1G cloud server:

Static-first architectures are not a compromise—they are the optimal design.

If you need:

  • Maximum stability → Static site
  • Visual editing → Publii
  • Dynamic features → Carefully optimized WordPress

If you want, next I can:

  • Edit these into Medium / dev.to formatting
  • Add SEO titles & summaries
  • Turn them into a series with diagrams
  • Localize them into Chinese or bilingual versions

Just tell me how you plan to publish them.

This post is licensed under CC BY 4.0 by the author.

© Joey. Some rights reserved.

Using the Chirpy theme for Jekyll.