Docker’s overlay2 driver keeps every image layer, every stopped container’s writable layer and every build cache on the same filesystem as /var/lib/docker. On a VPS with a 40 GB disk,…
Read MoreTransparent Huge Pages on a VPS: When madvise Beats always and Neither Beats Off
Transparent Huge Pages were supposed to be free performance: fewer TLB entries, fewer page faults, less kernel time per byte of memory touched. On a dedicated host with 256 GB…
Read MoreReadahead Depth vs Direct I/O on a Mixed Web and File-Share VPS
A VPS serving a web application and a file share runs two storage workloads that want opposite page cache policies on one block device. The web tier wants readahead: sequential…
Read Morenginx Upstream Handoff: Where TTFB Actually Goes
When TTFB is 900 ms and the application code has already been profiled, the remaining time is usually not in the application at all. It is in the handoff between…
Read MoreBBR + fq vs CAKE + fq_codel: Picking a Queue Discipline on a Single-vCPU VPS
Everyone has already enabled BBR. The question on a single-vCPU box is not which congestion control to use, it is what you pair it with — BBR plus fq, or…
Read Moreinotify Watch Limits on a Small VPS: Finding the Leaky Service Before It Breaks Backups
There is a specific way a small VPS stops taking backups: not with an alarm, but with a quiet ENOSPC from inotify_add_watch in a service that has been running for…
Read MoreTIME_WAIT Port Exhaustion on a Busy VPS: Measuring It and Tuning Safely Without Breaking NAT
A VPS with 65,535 ephemeral ports and high request churn runs out of four-tuples before it runs out of bandwidth, CPU or file descriptors. Every outbound connection from your nginx…
Read MoreMeasuring Page-Cache Hit Ratio on a VPS with vmtouch and cachestat
free -h showed 412 MB of 3.8 GB “available” on a web node also holding 610 MB of page cache for static assets — and could not say whether that…
Read Moresystemd Services That Die After a Reboot: journalctl and Ordering Diagnostics
A unit that starts fine when you type systemctl start and dies after a reboot has one of four causes, and each has a different fix. The efficient way to…
Read MoreInnoDB Buffer Pool vs Swap on a Small VPS: The Memory Arithmetic
The standard advice for MySQL on a small VPS is “set innodb_buffer_pool_size to 50–70% of RAM”. On a 1 GB instance that rule produces a 700 MB buffer pool, leaves roughly 60 MB…
Read More