<?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>JVM on Lin's Blog</title><link>https://coder.tw/tags/jvm/</link><description>Recent content in JVM on Lin's Blog</description><generator>Hugo</generator><language>zh-tw</language><lastBuildDate>Mon, 19 Oct 2026 22:19:33 +0800</lastBuildDate><atom:link href="https://coder.tw/tags/jvm/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenSearch Memory Alert 響了又恢復，是記憶體不夠嗎？</title><link>https://coder.tw/posts/opensearch-memory-alert-old-generation/</link><pubDate>Mon, 19 Oct 2026 22:19:33 +0800</pubDate><guid>https://coder.tw/posts/opensearch-memory-alert-old-generation/</guid><description>&lt;p&gt;我負責管理近百個 OpenSearch Cluster，前陣子發現 Heap 的 Alert 響了，但不是每一個 Cluster 都響，只有其中幾個。這個 Alert 的條件是 Heap 使用率超過 75%。響的那幾個，過幾分鐘會自己恢復，然後又響。&lt;/p&gt;
&lt;p&gt;一開始我很緊張，擔心是節點出了問題，所以先檢查 Cluster 有沒有異常：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cluster 狀態&lt;/strong&gt;：是 Green，沒有 Unassigned Shard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;寫入正常&lt;/strong&gt;：Fluentd 的 Buffer 沒有堆積，也沒有一直在 Retry&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pod 沒有被 OOM&lt;/strong&gt;：Restart 次數沒有增加，&lt;code&gt;Last State&lt;/code&gt; 也不是 OOMKilled&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;三項都正常，我才打開 Heap 的 Metric 看。結果發現 Heap 使用率是一條「一直往上爬、掉下來、再往上爬」的鋸齒，警報響的時候剛好爬到高點，過幾分鐘掉下來就恢復了。&lt;/p&gt;
&lt;p&gt;第一反應是把 75% 調高，但不是每個 Cluster 都響，似乎不只是閾值的問題。我更困惑的是：同樣是鋸齒，別的 Cluster 爬到 60% 就掉下來了，這個 Cluster 卻要爬到 80% 才掉。是它的設定跟別人不一樣嗎？還是它特別忙，記憶體給不夠？&lt;/p&gt;
&lt;p&gt;要回答這些問題，得先搞懂 JVM 是怎麼回收記憶體的，特別是 Young GC。&lt;/p&gt;</description></item></channel></rss>