Blog

SSH, Linux, and production operations — page 30

Practical runbooks for servers, containers, databases, cloud hosting, incident response, and safe AI-assisted operations.

NAT gateway cost: map private-subnet traffic first

The search intent behind this problem is identifying transfer and processing that crosses the gateway.

The Tryssh team · July 21, 2026 →

Netlify Functions versus conventional self-hosted software

Netlify can deploy open-source software quickly, but its runtime and storage model create tradeoffs. Here is where the friction appears and when a VPS is…

The Tryssh team · July 21, 2026 →

Nftables basics for an SSH host

Validate rules offline and preserve the established SSH connection while testing a new session.

The Tryssh team · July 21, 2026 →

Nginx 502 Bad Gateway: find the broken hop

A 502 usually means nginx is alive and the upstream is not reachable; prove socket, port, protocol, and health independently.

The Tryssh team · July 21, 2026 →

Deploy Nginx configuration without locking out traffic

When testing syntax, references, certificates, and reload, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

Fix an nginx HTTPS redirect loop without disabling TLS

Trace who terminates TLS and what scheme the application believes; do not stack unconditional redirects at every layer.

The Tryssh team · July 21, 2026 →

Nginx upstream prematurely closed connection: trace the backend

The search intent behind this problem is separating application crash, timeout, response size, and proxy behavior.

The Tryssh team · July 21, 2026 →

Reduce the observability bill without deleting incident evidence

The search intent behind this problem is prioritizing signal value over uniform retention.

The Tryssh team · July 21, 2026 →

Observability cost control without flying blind

The search intent behind this problem is reducing ingest through signal quality and ownership.

The Tryssh team · July 21, 2026 →

The four golden signals: useful baseline, incomplete diagnosis

When applying latency, traffic, errors, and saturation to a real service, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

OpenTelemetry Collector memory growth: queues and backpressure

The search intent behind this problem is diagnosing telemetry pipelines without dropping evidence blindly.

The Tryssh team · July 21, 2026 →

p95 vs p99 latency: what the percentiles hide

When interpreting tail latency without averaging away pain, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

The post-deployment monitoring window: what to watch and for how long

The search intent behind this problem is defining observation from workload cycles and delayed failures.

The Tryssh team · July 21, 2026 →

PostgreSQL autovacuum not keeping up: measure dead tuples and age

The search intent behind this problem is preventing bloat and transaction-ID risk without aggressive guessing.

The Tryssh team · July 21, 2026 →

PostgreSQL backup restore test: prove recovery, not file creation

The search intent behind this problem is validating logical or physical backups end to end.

The Tryssh team · July 21, 2026 →

PostgreSQL checkpoint latency spikes: WAL and storage diagnosis

The search intent behind this problem is correlating write bursts with checkpoint behavior.

The Tryssh team · July 21, 2026 →

PostgreSQL connection pool sizing without folklore

The search intent behind this problem is balancing concurrency against memory and contention.

The Tryssh team · July 21, 2026 →

PostgreSQL deadlock detected: read the graph, not the victim

When finding the conflicting transaction order, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

Postgres filled the disk: protect the database before cleanup

Find replication slots, archives, logs, table growth, and available recovery space first.

The Tryssh team · July 21, 2026 →

PostgreSQL idle in transaction: why it blocks cleanup

The search intent behind this problem is locating sessions holding snapshots and locks.

The Tryssh team · July 21, 2026 →

PostgreSQL index not used: statistics, casts, and selectivity

The search intent behind this problem is explaining why the planner chooses another path.

The Tryssh team · July 21, 2026 →

PostgreSQL lock timeout: fail predictably during deploys

The search intent behind this problem is preventing migrations from waiting indefinitely.

The Tryssh team · July 21, 2026 →

PostgreSQL major upgrade checklist for low-risk production

The search intent behind this problem is inventorying compatibility, extensions, space, and rollback.

The Tryssh team · July 21, 2026 →

PgBouncer session vs transaction pooling: compatibility tradeoffs

When choosing pooling behavior without breaking session state, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →