<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Plainnotes</title><link>https://www.ysllsyysl.online/</link><description>notes on networks and systems</description><item><title>Out of inodes while the disk is half empty</title><link>https://www.ysllsyysl.online/en/posts/2026-11-05-inode-full.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-11-05-inode-full.html</guid><description>df -h says there is space; touch says No space left on device.</description></item><item><title>A restart loop hides the error that caused it</title><link>https://www.ysllsyysl.online/en/posts/2026-11-02-restart-loop.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-11-02-restart-loop.html</guid><description>Restart policies turn one failed start into an infinite loop and flush the logs.</description></item><item><title>An incomplete certificate chain that browsers hide</title><link>https://www.ysllsyysl.online/en/posts/2026-10-29-cert-chain.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-10-29-cert-chain.html</guid><description>Browsers fetch missing intermediates; curl and many clients do not.</description></item><item><title>Who killed the process: reading the OOM log</title><link>https://www.ysllsyysl.online/en/posts/2026-10-26-oom-killer.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-10-26-oom-killer.html</guid><description>No core, no exception — the kernel log has the answer.</description></item><item><title>Container logs filling the disk</title><link>https://www.ysllsyysl.online/en/posts/2026-10-20-docker-log.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-10-20-docker-log.html</guid><description>The default json-file driver does not rotate; one chatty container can eat the partition.</description></item><item><title>What to check in the first minute of a 502</title><link>https://www.ysllsyysl.online/en/posts/2026-10-15-nginx-502.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-10-15-nginx-502.html</guid><description>Separate nobody-listening from timeout from an upstream that died mid-request.</description></item><item><title>Eight hours off inside a container</title><link>https://www.ysllsyysl.online/en/posts/2026-10-09-tz-container.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-10-09-tz-container.html</guid><description>No tzdata in the image, so TZ points at a file that does not exist.</description></item><item><title>Packet capture beats ping for finding slowness</title><link>https://www.ysllsyysl.online/en/posts/2026-10-02-tcp-retrans.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-10-02-tcp-retrans.html</guid><description>A clean ping says nothing about retransmissions, and retransmissions are what hurt.</description></item><item><title>Long connections cut by something in the middle</title><link>https://www.ysllsyysl.online/en/posts/2026-09-26-keepalive.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-09-26-keepalive.html</guid><description>NAT entries expire in five minutes; keepalive was set to ten.</description></item><item><title>Slow DNS is often not DNS</title><link>https://www.ysllsyysl.online/en/posts/2026-09-19-slow-dns.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-09-19-slow-dns.html</guid><description>Separate lookup time from connect time before blaming the resolver.</description></item><item><title>Why some clients got slower after enabling HTTP/2</title><link>https://www.ysllsyysl.online/en/posts/2026-09-12-nginx-http2.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-09-12-nginx-http2.html</guid><description>On a six-request static site, h2 has little to give. Packet loss and a missing session cache were the real problems.</description></item><item><title>Too many open files: find the leak before raising the limit</title><link>https://www.ysllsyysl.online/en/posts/2026-09-05-too-many-files.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-09-05-too-many-files.html</guid><description>Raising nofile buys time; it does not close the descriptor nobody closed.</description></item><item><title>Logs that never rotate: two usual causes</title><link>https://www.ysllsyysl.online/en/posts/2026-08-29-logrotate.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-08-29-logrotate.html</guid><description>The config is never read, or the process keeps writing to the old inode.</description></item><item><title>Cron runs your script with a different environment</title><link>https://www.ysllsyysl.online/en/posts/2026-08-22-cron-env.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-08-22-cron-env.html</guid><description>Three entries in PATH, no profile, no LANG — and that is by design.</description></item><item><title>When the filesystem goes read-only</title><link>https://www.ysllsyysl.online/en/posts/2026-08-15-disk-readonly.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-08-15-disk-readonly.html</guid><description>After an I/O error the kernel remounts ext4 read-only to stop the damage spreading.</description></item><item><title>SSH takes ten seconds to reach a prompt</title><link>https://www.ysllsyysl.online/en/posts/2026-08-08-ssh-slow.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-08-08-ssh-slow.html</guid><description>Usually a reverse DNS lookup timing out, or GSSAPI looking for something absent.</description></item><item><title>Two surprises after moving from cron to systemd timers</title><link>https://www.ysllsyysl.online/en/posts/2026-08-03-systemd-timer.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-08-03-systemd-timer.html</guid><description>Persistent catch-up does not behave like a missed cron job, and a stale timer keeps running without a reload.</description></item><item><title>Lots of TIME_WAIT: usually not a problem</title><link>https://www.ysllsyysl.online/en/posts/2026-07-28-timewait.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-07-28-timewait.html</guid><description>It is the normal state of the side that closed first. Only port exhaustion matters.</description></item><item><title>High load, idle CPU</title><link>https://www.ysllsyysl.online/en/posts/2026-07-21-load-high.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-07-21-load-high.html</guid><description>Load counts uninterruptible sleep too, so blocked I/O shows up as load.</description></item><item><title>Port in use, but no process in sight</title><link>https://www.ysllsyysl.online/en/posts/2026-07-15-port-in-use.html</link><guid>https://www.ysllsyysl.online/en/posts/2026-07-15-port-in-use.html</guid><description>Wrong namespace, TIME_WAIT without SO_REUSEADDR, or the kernel using it as an ephemeral port.</description></item></channel></rss>
