<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Docker on araisun.com</title><link>https://araisun.com/tags/docker/</link><description>Recent content in Docker on araisun.com</description><image><title>araisun.com</title><url>https://araisun.com/fishing-english-at-miyuki-beach/eyecatch.png</url><link>https://araisun.com/fishing-english-at-miyuki-beach/eyecatch.png</link></image><generator>Hugo</generator><language>ja</language><lastBuildDate>Thu, 23 Jul 2026 14:53:00 +0900</lastBuildDate><atom:link href="https://araisun.com/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>GCがあるのに、なぜTomcatは落ちるのか ── Dockerで4通りに壊して確かめた</title><link>https://araisun.com/tomcat-memory-leak/</link><pubDate>Thu, 23 Jul 2026 14:53:00 +0900</pubDate><guid>https://araisun.com/tomcat-memory-leak/</guid><description>iOSアプリではメモリリークを死ぬほど気にするのに、JavaのWebアプリではほとんど気にしない。GCがあるからだと説明されがちですが、それは半分しか正しくありません。Javaのリークは「解放し忘れ」ではなく「もう不要なのに参照が残っていて回収できない」型で、GCがどれだけ賢くても救えない。static なキャッシュ・閉じ忘れたファイル・止め忘れたスレッドを仕込んで、DockerのTomcatを4通りに落としました。ヒープ・Metaspace・スレッド数・ファイルディスクリプタという別々の天井があり、同じOutOfMemoryErrorでも中身が違う。GCログやAcceptorのエラーまで実出力つきで、しかも4つとも「プロセスは生きたまま」壊れます。</description></item></channel></rss>