filebeat實踐-記憶體佔用-最大記憶體佔用
filebeat作為日誌採集agent, 是需要部署到生產伺服器上的.不理解filebeat的工作機制,不瞭解filebeat在實際生產使用中的記憶體使用將會給你帶來意想不到的麻煩.
有些文章說filebeat記憶體消耗很少,不會超過100M, 這簡直是不負責任的胡說,假如帶著這樣的認識把filebeat部署到生產伺服器上就等著哭吧.
filebeat在空載情況(沒有日誌可採集)下的確不會有大的記憶體開銷,但在有大量的日誌需要採集時,filebeat的記憶體佔用是沒有固定值的, 那有沒有理論值呢?答案是有, 為啥這麼說,看下面公式:
bytes_each_log * spool_size * M + a*N
其中, bytes_each_log是單條日誌大小, spool_size是配置檔案裡配置項, M是單條日誌在記憶體裡的溢價係數(>1), N表示採集的檔案個數,a為常數.
spool_size的預設值是2048, 好多人估計都不會配置這個項,也會因此埋下禍根(OOM):
假設忽略a*N部分的記憶體開銷, 單條日誌的記憶體溢價為3, 一旦出現單條日誌大於50KB且有瞬間爆發量的時候, filebeat的記憶體佔用將大於300MB,是不是有點嚇人!如果出現了極端情況,單條日誌>10M,即使filebeat會截斷到10M那也是20GB!!是不是腿都軟了!!!
filebeat在實際使用過程中記憶體>300M,甚至15GB的情況浣熊都遇到過, 記憶體超過300M幾乎經常遇到,基本都是因為客戶沒有按照吩咐的去做導致的; 15GB的那次有點意外和驚喜, 客戶在自己的日誌檔案裡打了大量的二進位制檔案(後來知道真相的我眼淚掉下來...), 大量的二進位制檔案觸發了10MB規則,還好吃掉15GB記憶體後filebeat因OOM退出了,沒有帶來嚴重的損失.
那怎麼樣才能避免以上記憶體災難呢?劃重點了,快快拿出小本本記錄:
(1)每個日誌生產環境生產的日誌大小,爆發量都不一樣, 要根據自己的日誌特點設定合適的spool_size值;什麼叫合適,至少能避免記憶體>200MB的災難;
(2)在不知道日誌實際情況(單條大小,爆發量), 務必把spool_size設定上,建議128或者256;
最後分享張實踐圖片:
單條日誌為45KB, spool_size為2048的記憶體開銷,陡坡下是spool_size調整為128的效果.
相關文章
- influxdb記憶體佔用剖析UX記憶體
- 資源記憶體佔用記憶體
- mariadb 記憶體佔用優化記憶體優化
- python物件的記憶體佔用Python物件記憶體
- node計算記憶體佔用記憶體
- 託管堆記憶體佔用記憶體
- MySQL記憶體佔用計算公式MySql記憶體公式
- DOTNET記憶體佔用最佳化記憶體
- Redis 實戰 —— 12. 降低記憶體佔用Redis記憶體
- 如何檢視MySQL資料庫佔多大記憶體,佔用太多記憶體怎麼辦?MySql資料庫記憶體
- Win10記憶體佔用過多怎麼辦 win10清理記憶體佔用的方法Win10記憶體
- 電腦記憶體佔用過高怎麼辦 電腦記憶體佔用過高解決方法記憶體
- win10如何查詢哪些應用記憶體佔用大 win10如何檢視軟體記憶體佔用Win10記憶體
- Windbg分析高記憶體佔用問題記憶體
- 分析並優化 Android 應用記憶體佔用優化Android記憶體
- 深度解讀昇騰CANN記憶體複用技術,降低網路記憶體佔用記憶體
- oracle RDBMS Kernel Executable 佔用記憶體過高Oracle記憶體
- 一個Java物件到底佔用多大記憶體?Java物件記憶體
- 利用Windbg分析高記憶體佔用問題記憶體
- win10如何降低chrome記憶體佔用_win10電腦chrome記憶體佔用過高怎麼辦Win10Chrome記憶體
- iOS底層原理(一):OC物件實際佔用記憶體與開闢記憶體關係iOS物件記憶體
- 如何讓手遊記憶體佔用更小?從記憶體消耗iOS實時統計開始記憶體iOS
- win10記憶體佔用高怎麼解決_win10系統記憶體佔用高解決步驟Win10記憶體
- win10 microsoft edge佔用記憶體高怎麼辦_win10 microsoft edge佔用記憶體高處理方法Win10ROS記憶體
- win10怎麼關閉佔用記憶體的服務_win10關掉佔用記憶體服務方法Win10記憶體
- 桌面視窗管理器佔用記憶體過高怎麼辦 電腦莫名其妙記憶體佔用很高記憶體
- win10記憶體佔用過高程式沒多少怎麼辦 win10記憶體佔用過高的方法Win10記憶體
- 實用乾貨,教你解決Chrome佔記憶體硬傷Chrome記憶體
- Chrome 再次最佳化記憶體佔用問題,新增記憶體釋放開關Chrome記憶體
- 谷歌Chrome瀏覽器引入省記憶體/省電模式:減少記憶體佔用谷歌Chrome瀏覽器記憶體模式
- 簡單實用的pandas技巧:如何將記憶體佔用降低90%記憶體
- [20191115]oracle例項佔用記憶體計算.txtOracle記憶體
- Redis Quicklist 竟讓記憶體佔用狂降50%?RedisUI記憶體
- Java逐層解析JSON的記憶體佔用分析JavaJSON記憶體
- 字串池化,減少1/3記憶體佔用字串記憶體
- Java中的CPU佔用高和記憶體佔用高的問題排查Java記憶體
- 簡單又實用的pandas技巧:如何將記憶體佔用降低90%記憶體
- win10 audiodg狂佔記憶體怎麼辦_win10 audiodg佔用記憶體過高的解決方法Win10記憶體
- ubuntu解決GPU視訊記憶體佔用問題UbuntuGPU記憶體