Full Linux disk: find the cause before deleting in panic
At 100% disk systemd stops writing logs — and you lose clues about what filled the volume. Diagnose first, delete second.
Browse our Technical posts on European hosting.
No results for this search
At 100% disk systemd stops writing logs — and you lose clues about what filled the volume. Diagnose first, delete second.
An upload folder chmod 777 "so it works" becomes a webshell entry six months later. Permissions need surgery, not blanket fixes.
Fail2ban quiets weekend SSH scans — until the attacker slows below the threshold or hits the API directly.
Every VPS with port 22 open to the Internet is scan bait. A bastion concentrates access — if the team can still connect without friction.
Grafana, Jenkins, phpMyAdmin — tools without native SSO rushed online. An OAuth proxy adds a front door without rewriting the app.
A legitimate partner gets throttled during a spike while a scraper rotates IPs. Good rate limiting protects without punishing.
Stripe retries after your 500 — and you double-credit the customer. A reliable webhook signs, idempotents, and is observable.
SPF and DKIM are green, yet mail lands in spam: PTR does not match HELO. This invisible detail weighs heavily at major filters.
Your team sees the right IP on VPN while customers see another — or worse, the same private IP. Split-horizon fixes that, but only if the boundary is documented.
Mail sends, but Gmail spam-filters it: SPF passes, DKIM signs, DMARC fails alignment. The three protocols do not replace each other — they stack.
Checkout fails while internal DNS monitoring stays green: anycast only helps if you measure from outside. Here is how to evaluate it before the premium invoice.
"The DNS switch will be instant" — reassuring and false. Without lowering TTL upfront, a host migration drags 24–48 h in ISP caches.
Certbot "always worked" — until silent renewal failed because DNS changed and nobody monitored certificates, only HTTP uptime checks.
A config copied for an SSL Labs A+ grade can block an enterprise client the next month. How to choose maintainable TLS — Mozilla Intermediate, renewal, HSTS — without incomprehensible cipher lists.
HTTP/2 fixes six parallel TCP connections — not twelve synchronous scripts blocking render. Multiplexing helps; it does not replace front-end optimization.
loading="lazy" on the hero logo and first product photo — LCP explodes and Google penalizes what you thought was optimization.
Switching the whole site to AVIF without fallback leaves 5% of visitors with broken icons — often B2B clients on frozen corporate browsers.
Brotli level 11 on every dynamic response — fewer bytes, more CPU, TTFB climbing. Useful compression separates static assets from on-the-fly HTML.
Inconsistent Cache-Control between nginx, PHP, and Cloudflare — users get stale content or origin saturates because nothing is edge-cacheable.
Twenty Slack alerts per night, all "CPU > 70%" on staging environments — until prod fails in the morning and nobody watches the on-call channel anymore.
Logs say the API timed out; Prometheus shows a high p95 — but neither reveals which SQL query on the catalog service took seven seconds. The trace shows it in a single span.
The dashboard is green while checkout takes eight seconds — a sign you measure the machine, not the path that blocks. How to pick useful Prometheus metrics before drowning Grafana.
SSH into three servers to grep the same request_id — while the incident grows. Without correlated centralized logs, a distributed outage stays an incomplete puzzle.
Open TCP 443 and a live PHP process do not guarantee the app can serve an order or reach its database. A useful health check tests what the user expects.