當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

Linux中BI进程异常关闭

1、問題描述

在 Linux 中使用 FineBI,系統使用過程中 FineBI 的進程異常關閉,查看 BI 的日誌並沒有任何的異常資訊。

2、問題原因及解決方案

2.1 可能原因

針對上述的現象,問題原因可能為 FineBI 的進程是被系統 Kill 掉的,可去檢查 Linux 系統日誌/var/log/messages,查看進程被異常關閉的時間點日誌。

若該時間點存在對應 Kill 掉 FineBI 進程的日誌,說明 FineBI 進程是被系統 Kill 掉的。

2.2 解決方案

Linux 系統 Kill 掉 FineBI 的進程,可能是由於自身的 OOM KILLER 機製造成的,查看自身 Linux 系統的/etc/sysctl.conf檔案(核心參數配置),若其中的vm.overcommit_memory=2,即表示系統不允許 overcommit 操作。

該 OOM KILLER 機制會在 linux 記憶體緊張的時候,依次 Kill 記憶體佔用較高的進程,並在/var/log/message中進行記錄,裏面會記錄一些如 pid,process name,cpu mask,trace 等資訊,透過監

控可以發現類似問題。

針對此類問題,我們可以調整系統的 vm.overcommit_memory 核心參數值,將其設定 0/1,分別表示:

0 – Heuristic overcommit handling. 這是預設值,它允許 overcommit,但過於明目張膽的 overcommit 會被拒絕,比如 malloc 一次性申請的記憶體大小就超過了系統總記憶體。Heuristic 的意思是“試探式的”,核心利用某種算法(對該算法的詳細解譯請看文末)猜測你的記憶體申請是否合理,它認為不合理就會拒絕 overcommit。

1 – Always overcommit. 允許 overcommit,對記憶體申請來者不拒。

根據需要調整核心參數值,或者增加系統的記憶體來解決。調整核心參數值後需要輸入命令 sysctl -p,使配置檔案生效。

sysctl -p

詳細原理可參考 理解LINUX的MEMORY OVERCOMMIT

附件列表


主題: 部署集成
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!