Linux: Guides and Practical Know-how | Page 10 | mironsoft Blog
Linux
-
Oct 18, 2025
When the Linux kernel comes under memory pressure, the OOM killer decides within a split second which process must die, often the database or PHP-FPM pool instead of the actual memory hog. This article explains the oom_score calculation, shows how to trace OOM kills in dmesg and journalctl, and how to protect critical services through oom_score_adj and cgroup limits.
-
Oct 17, 2025
Load average shows three exponentially damped averages of the queue of runnable and blocked processes over one, five, and fifteen minutes. Anyone judging the number solely against the core count often confuses CPU-bound with I/O-bound load. This guide explains the calculation, shows how to correctly read uptime and top, and provides clear diagnostic steps for daily practice.
-
Oct 16, 2025
A container that suddenly dies with exit code 137, no panic, no log output, no visible error, is one of the most frustrating Docker problems there is. In the vast majority of cases the Linux OOM killer is behind it, and the actual problem is rarely the code, it is a poorly estimated memory limit.
-
Oct 11, 2025
OPcache is usually treated purely as a PHP setting, yet its effectiveness depends directly on the underlying Linux filesystem. Inode behavior, mount options and network filesystems such as NFS can make the exact same OPcache configuration reliable on one server and unusable on another.
-
Oct 11, 2025
On multi-core servers, network card interrupts without deliberate IRQ affinity often all land on the same CPU core, while the remaining cores stay uninvolved. Under high packet rates, that one core becomes a bottleneck long before the server's overall CPU utilization is anywhere near exhausted.
-
Oct 10, 2025
A server that sits in Berlin but is configured with an American time zone produces timestamps nobody can interpret without conversion. timedatectl sets and checks time zones centrally under systemd, and tzdata supplies the underlying rule database behind it. This article shows how to set time zones correctly, why servers should mostly run on UTC, and how tzdata updates work.
-
Oct 9, 2025
Starting a script in the background with & does not make it a daemon. A true daemon detaches completely from the terminal, prevents double starts through a PID file, reacts in a controlled way to signals like SIGTERM and SIGHUP, and writes its log somewhere that stays reachable even without a terminal.
-
Oct 8, 2025
fail2ban watches log files from SSH and web applications in real time, detects repeated failed logins using configurable patterns, and automatically bans the offending IP address at the firewall. This article shows how administrators can correctly configure jails for SSH and web logins, tune ban times sensibly, and monitor fail2ban activity on an ongoing basis without accidentally locking out legitimate users.
-
Oct 4, 2025
APT manages software packages on Debian and Ubuntu servers, yet most admins use only a fraction of its capabilities. This article explains how APT resolves dependencies, why apt, apt-get, and dpkg serve different purposes, how pinning prevents unwanted upgrades, how to safely add third-party repositories, and how to keep the package cache clean.
-
Sep 26, 2025
Too little swap leads to crashes from the out-of-memory killer during load spikes, too much swap hides a real memory shortage behind agonizing slowness. This article shows how much swap actually makes sense on a modern server, how the vm.swappiness kernel parameter controls swapping behavior, how to safely create a swapfile, and how to tell real memory pressure apart from normal caching.