Short answer: For an AI app that calls a hosted model API, start on KVM 2. KVM 1 is below the documented minimum of tools like Dify, KVM 4 is for observability tools and several always-on services, and KVM 8 only makes sense if you plan to run local models on CPU. The reliable way to choose is to add up the RAM your containers use and compare it to the plan.
Disclosure: the Hostinger links here are affiliate links, and I host MasterPrompting.net on a Hostinger KVM 2. Plan specs and prices are from Hostinger's own pricing page as I read it on 23 Oct 2026. I did not provision the other plans for this post, and I have not benchmarked them.
What do the four plans actually offer?
From hostinger.com/vps-hosting, read on 23 Oct 2026 (US-facing page, dollars):
| Plan | vCPU | RAM | NVMe | Bandwidth | Advertised price | Renewal price |
|---|---|---|---|---|---|---|
| KVM 1 | 1 | 4 GB | 50 GB | 4 TB | $6.49/mo | $11.99/mo |
| KVM 2 | 2 | 8 GB | 100 GB | 8 TB | $8.79/mo | $14.99/mo |
| KVM 4 | 4 | 16 GB | 200 GB | 16 TB | $12.99/mo | $28.99/mo |
| KVM 8 | 8 | 32 GB | 400 GB | 32 TB | $25.99/mo | $49.99/mo |
The India page (hostinger.com/in/vps-hosting) showed the same specs in rupees on the same day: KVM 1 at ₹599/mo (renews at ₹999), KVM 2 at ₹779/mo (₹1,199), KVM 4 at ₹1,099/mo (₹2,399) and KVM 8 at ₹2,199/mo (₹4,399). It states that "All plans are paid upfront" and that the monthly rate is the total plan price divided by the number of months in your plan. Taxes are not shown there, so the cart total will differ.
Three details from the page that change the maths:
- All plans are "paid upfront", and the renewal wording is "for 2 years. Cancel anytime", so the advertised monthly price is a long-term-commitment price. Read the cart.
- The page lists Docker templates (a "Docker and Traefik" template and a Docker manager for Compose projects) and app templates including n8n, Dify, OpenClaw, PostgreSQL, Uptime Kuma and Vaultwarden.
- Ollama is not listed as a template. The page only mentions it as a use case, so on a plain Ubuntu VPS you install it yourself.
The renewal price is the number to plan around if you will keep the server. KVM 4's renewal price is more than double its starting price, so compare plans at renewal, not at checkout.
How much RAM does your stack need?
Don't pick by plan name. Pick by memory. Run your stack on your laptop with Docker, then read the real numbers:
docker stats --no-stream
The MEM USAGE column is what each container holds right now. Run it under a realistic load, not at idle, and note the peak.
Then put those numbers into a script. This one leaves 25% of RAM free for spikes and file cache and reserves 1 GB for the OS and Docker. Both are placeholders to tune, and so are the service sizes. I ran it on 23 Oct 2026 with these placeholder values:
PLANS = {"KVM 1": 4, "KVM 2": 8, "KVM 4": 16, "KVM 8": 32} # GB, from Hostinger's page
OS_RESERVE_GB = 1.0
HEADROOM = 0.25
# Placeholders. Replace with your own docker stats output.
SERVICES = {
"reverse proxy (Caddy)": 0.1,
"app (FastAPI or Streamlit)": 0.5,
"postgres": 0.5,
"n8n": 0.8,
"vector db": 1.0,
}
total = sum(SERVICES.values())
print(f"services total: {total:.1f} GB")
for plan, gb in PLANS.items():
usable = gb * (1 - HEADROOM) - OS_RESERVE_GB
print(f"{plan:6} {gb:>2} GB usable {usable:5.1f} GB {'fits' if total <= usable else 'too small'}")
Output with those placeholder numbers:
services total: 2.9 GB
KVM 1 4 GB usable 2.0 GB too small
KVM 2 8 GB usable 5.0 GB fits
KVM 4 16 GB usable 11.0 GB fits
KVM 8 32 GB usable 23.0 GB fits
The 2.9 GB total is invented. The method is the point: the same stack that is "too small" on KVM 1 fits KVM 2 with 2 GB to spare, and the answer flips as soon as your measured numbers differ.
Which plan for which workload?
| Workload | Fit | Why |
|---|---|---|
| Telegram bot, cron agent or small FastAPI app calling a hosted API | KVM 1 | One process, little RAM. See deploying a Telegram AI bot. |
| Same app plus Postgres, n8n and a reverse proxy | KVM 2 | Several containers, still API-based. See n8n on a Hostinger VPS. |
| Dify | KVM 2 | Dify documents a minimum of 2 CPU cores and 4 GiB RAM. KVM 1 has one core. |
| Langfuse | KVM 4 | Langfuse's docs suggest 4 cores and 16 GiB for a VM, and a large disk because observability data grows quickly. |
| RAG with a self-hosted vector DB and embeddings model | KVM 4 | Vector indexes and an embeddings model compete for RAM. See the self-hosted RAG stack. |
| Local 7B-class model on CPU | KVM 4 to KVM 8 | Memory for the model plus everything else. Speed is the limit, not fit. |
| Several client projects on one box | KVM 4 | Isolation by Compose project, with the budget script per project. |
On the local model row, there is a rule of thumb for memory: parameters times bytes per weight. A 7 billion parameter model stored at 4 bits per weight is about 3.5 GB of weights before context and runtime overhead. That is arithmetic, not a benchmark. How fast it generates on a VPS CPU is something I did not measure, so test with your own prompts before you commit. The private ChatGPT sizing post goes deeper on this.
When should you not buy a VPS?
- Your app gets a handful of requests a day and can sleep. A serverless platform may cost less. The VPS vs serverless cost calculator shows where the lines cross.
- You do not want to patch a server. A VPS means you own updates, firewall and backups. Use the hardening checklist if you go ahead.
- You need a GPU. These plans do not offer one. See renting a GPU for experiments.
What I'd buy
If you are deploying your first AI app and the tool you want to run lists a minimum of 2 cores and 4 GB, get KVM 2. It leaves headroom for a database and a reverse proxy, and you can resize up later. If you know you are running Langfuse or a local model, KVM 4 saves a migration.
Pay for the app's API calls in rupees with AICredits if you have no international card, or use a zero-forex card as covered in the credit card guide. Either way, set a spending cap on the key before it goes on the server.



