OpenSearch Memory Alert 響了又恢復,是記憶體不夠嗎?

我負責管理近百個 OpenSearch Cluster,前陣子發現 Heap 的 Alert 響了,但不是每一個 Cluster 都響,只有其中幾個。這個 Alert 的條件是 Heap 使用率超過 75%。響的那幾個,過幾分鐘會自己恢復,然後又響。 一開始我很緊張,擔心是節點出了問題,所以先檢查 Cluster 有沒有異常: Cluster 狀態:是 Green,沒有 Unassigned Shard 寫入正常:Fluentd 的 Buffer 沒有堆積,也沒有一直在 Retry Pod 沒有被 OOM:Restart 次數沒有增加,Last State 也不是 OOMKilled 三項都正常,我才打開 Heap 的 Metric 看。結果發現 Heap 使用率是一條「一直往上爬、掉下來、再往上爬」的鋸齒,警報響的時候剛好爬到高點,過幾分鐘掉下來就恢復了。 第一反應是把 75% 調高,但不是每個 Cluster 都響,似乎不只是閾值的問題。我更困惑的是:同樣是鋸齒,別的 Cluster 爬到 60% 就掉下來了,這個 Cluster 卻要爬到 80% 才掉。是它的設定跟別人不一樣嗎?還是它特別忙,記憶體給不夠? 要回答這些問題,得先搞懂 JVM 是怎麼回收記憶體的,特別是 Young GC。 ...

October 19, 2026 · 2 分鐘

bash: warning: setlocale: LC_ALL: cannot change locale

用 SSH 登入遠端伺服器時,看到「-bash: warning: setlocale: LC_ALL: cannot change locale」的錯誤訊息嗎? 會遇到它是因為 SSH 連線上遠端主機時,會自動將本機的 LC_* 變數(locale)傳送一份到遠端主機,如果伺服器上不支援你指定的語系,就會出現「-bash: warning: setlocale: LC_ALL: cannot change locale」錯誤啦! ...

February 22, 2017 · 1 分鐘

Google Cloud Platform 自動扣款餘額不足處理

因為我登記在 GCP 的信用卡是「VISA 金融卡」形式,所以每月自動扣款時有可能會遇到銀行餘額不足的問題,目前 GCP 針對該問題的做法,會再扣款失敗後寄信提醒你,並在一日後重試扣款,如果依舊失敗就會要求你在解決問題後自行登入 GCP 後台付款,過去在登入 GCP 後台付款都沒有遇到問題,但這次似乎動線有改變,按照他的連結引導會被帶到帳單頁面,但無法執行扣款動作,此外即使你找到正確的扣款按鍵,但使用 Chrome Canary 卻似乎會有前端的問題導致扣款對話框無限載入中,必須要切換到正常版 Chrome 才可以正常扣款,真好奇這個扣款對話框是用了什麼最新最潮的技術… ...

February 7, 2017 · 1 分鐘

當 GitLab 誤刪資料庫,我們該如何管好 rm 指令?

不小心把根目錄刪除這種慘劇,我們從小都當笑話聽,但可千萬別以為這只是個笑話! 光小弟自己就看過無數朋友的電腦發生這種慘劇,而今天 GitLab (類似 Github 的服務)的工程師也親身示範了 rm -rf 指令的莫大威力…… 他們把 Production Server 的 Database 砍掉了…… 過去一直覺得這種慘劇不會發生在自己身上,但現在連 GitLab 這種有上萬人在用的服務,都因為大意而發生這種事情,也讓我研究了一下該如何避免,這邊就來聊聊我們該如何把 rm 指令管好吧! ...

February 1, 2017 · 1 分鐘

UptimeRobot - 網站存活狀態檢查服務

UptimeRobot 是一個老牌子、穩定且功能完整的網站狀態檢查服務,當你設定完成後,UptimeRobot 會定時去檢查網站是否在線上,這對於網站管理者十分重要,試想如果你更新伺服器後網站壞掉 3 小時你才發現,這三小時的客戶就都流失了! UptimeRobot 的免費方案是 50 個觀測對象內、每五分鐘檢查一次,此外有支援 HTTP Status、Keyword、Ping、Port 等四種檢測方式,如果有狀況 UptimeRobot 支援簡訊、Email、Slack、WebHook 等多種通知方式,對我而言更重要的是 UptimeRobot 經營穩定,我從 2011 年使用至今。 ...

January 31, 2017 · 1 分鐘

Generate Large File on Linux/macOS

有時候為了測試網路速度、硬碟讀寫,或是程式的運作效能等等,我們會需要產生指定大小的檔案作為測試之用,這時大家肯定腦海都浮現出 dd 這傢伙對吧! 但使用 dd 產生檔案時,是否覺得很慢呢? 此外你知道除了 dd 之外,還有 truncate、fallocate 這兩個傢伙可以使用嗎? 這邊會簡單說明如果要產生大檔案,你有哪些方法可以使用、如何使用,以及他們之間的差異。要特別注意,這邊產生的檔案其內容都是無意義的。 ...

January 27, 2017 · 1 分鐘

如何在 Terminal 計算指令執行的時間?

你有想過幫你在 Terminal 執行的指令計算執行時間嗎? 前陣子因為工作上的需求,用各種指令兜了一個檔案分類工具出來,但因為對效能有嚴格的要求,需要在指定時間內完成,所以查到 time 這個好用的指令可以幫我們計算指令的執行時間。 ...

January 27, 2017 · 1 分鐘

Linux Grep Tips - 搜尋有指定字串的列

在 Linux 裡面有時我們會需要從檔案中快速的搜尋帶有關鍵字的「列」,例如在看 log 時可能會想找出某個時間發生的錯誤,打開檔案一行行找實在不怎麼經濟實惠,這時你就會需要 grep 的幫助啦! ...

January 20, 2017 · 1 分鐘

如何確認我的 Crontab 正常運作?

不知道大家是否都有同樣的煩惱? 剛學會 crontab 時,始終不確定自己的設定是否正確,每次設定完都不確定是否有照預期的跑,在這我分享兩招可以讓大家確定自己的 crontab 是否正確設定! ...

January 20, 2017 · 1 分鐘

Kibana Date Type Field Query

在 Kibana 裡面,想要搜尋某段時間內的資料,第一個一定是想到 Kibana 內建的 Time Picker,不得不說這真的是很好用的工具,但少數情況你的資料可能不只一個日期欄位,而你必須用 Query 的方式而非 Time Picker 處理,例如 Email 的資料,寄信、開信、點擊都會有 Log 傳到我的伺服器,這時候會有兩個時間,一個是信件寄出的,另一個則是事件發生的時間(例如開信、點擊),像這樣的情況就可能會需要在搜尋框裡面用日期欄位做搜尋。 ...

January 19, 2017 · 1 分鐘