linux 檢視程式掛掉資訊

lydawen發表於2014-06-26

正常執行的java程式莫名其妙消失了,在tomcat日誌中未找到OOM或其它異常資訊。

檢視系統日誌配置情況: /etc/syslog.conf

 

預設系統日誌在/var/log/messages裡,在這個檔案中以程式名或程式ID查詢,一般都能找到程式生死歷史資訊


 

===========

以下內容來自:http://www.wy182000.com/2013/07/16/out-of-memory-kill-process-%E9%85%8D%E7%BD%AE/

Out of memory: Kill process 配置

最近阿里雲的伺服器因為開著http服務,經常因為沒有記憶體出現 Out of memory: Kill process,運氣不好kill掉了sshd之後, 伺服器就只能重啟了。
上google研究了一下, 找到了一些配置方法。記錄一下,備忘。

sysctl vm.panic_on_oom=1
sysctl kernel.panic=X
echo "vm.panic_on_oom=1" >> /etc/sysctl.conf
echo "kernel.panic=X" >> /etc/sysctl.conf
上面配置可以讓linux在出現 Out of memory之後重啟。

echo -15 > /proc/2592/oom_adj
這會讓 oom 在出現 Out of memory後,儘量不去kill這個程式。

echo 10 > /proc/2592/oom_adjoom
會優先考慮kill這個程式。

echo -17 > /proc/2592/oom_adj
oom在Out of memory時, 不會kill該程式。

oom_adj的值在-16 到 +15之間,值越高被kill的優先度越高,如果設為 -17, 這程式不會被kill掉。

sysctl vm.overcommit_memory=2
echo "vm.overcommit_memory=2" >> /etc/sysctl.conf
可以完全關掉oom, 不過這並不建議,關掉後可能會出現未知的情況。

相關文章