Why Tailscale is slow: relay vs direct
Relayed Tailscale is slow, direct is close to line rate. Two commands tell you which you have, plus the blocked UDP and hard NAT fixes for a VPS.
Filtering by topic #performance · clear
Relayed Tailscale is slow, direct is close to line rate. Two commands tell you which you have, plus the blocked UDP and hard NAT fixes for a VPS.
Your PHP-FPM pool size is a division you run on your own box: measure one worker, subtract what the database needs, then read the number that is left.
What Nextcloud is genuinely bad at on a VPS: many small files, the sync client on large trees, unconfigured cron, and the memory floor for office.
Slow WireGuard is usually an MTU problem. Find your path MTU by bisection, clamp TCP MSS, check steal time, and measure the path before blaming the tunnel.
Every Postgres connection is a process with its own memory, so a 4 GB VPS runs out of RAM long before max_connections. What a pooler fixes, and what it breaks.
Linux kernel 7.2 adds cache aware scheduling. What CONFIG_SCHED_CACHE changes about task placement, and whether a VPS guest sees any of the gain.
A scrub reads every allocated block and verifies it. On a single device VPS pool it finds damage it cannot repair, so here is how often to run one.
Prefill is compute bound and owns time to first token. Decode is memory bandwidth bound and owns tokens per second. Measure them separately on your own box.
Set up Redis as a WordPress object cache on your own VPS: bind it to localhost, size maxmemory, pick an eviction policy, and verify the cache is real.
ARM VPS plans usually cost less per core. The compatibility checks that decide whether your stack runs on arm64, and the commands that prove it.
The KV cache is RAM your server pays for on every request. Prompt caching is a bill someone else discounts. Only one can break a model load.
Ollama unloads your model after 5 minutes idle, so the next request pays the full load time again. Set keep_alive so it sticks, even after a reboot.
Steal time is the CPU your VPS was ready to use and never got. Learn to read the vmstat st column and to tell a noisy neighbour from your own overload.
Check whether your VPS exposes AES-NI, measure what a masked CPUID costs your AES-GCM throughput, and force the bits back on with OPENSSL_ia32cap.
WP-Cron only fires when someone loads a page, so it stalls on quiet sites and piles up on busy ones. Move it to system cron with WP-CLI, and verify it ran.
NVMe beats SATA SSD on IOPS and latency, but on a VPS the hypervisor and your neighbours decide what you get. Measure your own with fio.