OOM - Out of Mana,法力耗盡。人們通常用這句話提醒其他隊員他已經沒有法力不能再施放法術了,特別是治療魔法。
(Object-Oriented Method)JavaEE 開發:OOM - Out of Memory,記憶體溢出
OOM - Out of money,金錢耗盡。房奴通常用這句話提醒自己已經沒有金錢不能維持正常生活了,特別是不能進行精神文明消費。
OOM 來自英國Brighton,由主唱Debbie Clare,Ed Chivers負責採樣、beats兼吉他手,吉他Alex Hay和鼓手Darren Lindridge四人組成。主唱Debbie Clare曾在massive attack的專輯裡獻唱。Dead Analogue是他們首張專輯。OOM為幽暗冷酷的TRIPHOP電音注入了激情的搖滾肌理。歌曲編排多採用“平靜-爆發-平靜”的結構,不同於傳統triphop由頭到尾的詭秘低調和氛圍的營造,使得歌曲跌宕起伏,充滿張力和爆炸力。歌曲中加入大量的鏗鏘有力的吉他刷弦,層層鋪墊、瞬間爆發的吉他riff使得歌曲更具有搖滾味。
顯示方式:專輯列表|專輯詳情專輯
專輯名稱 | 發行時間 | 語言 | 詳情 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SECOND | 2006-09-23 | 日語 | ||||||||||||||||||||
專輯曲目(6)
|
Out Of Memory,一般是由於程式編寫者對記憶體使用不當,如對該釋放的記憶體資源沒有釋放,導致其一直不能被再次使用而使計算機記憶體被耗盡的現象。重啟計算機即可,但根本解決辦法還是對代碼進行最佳化。
Linux下有一種OOM KILLER 的機制,它會在系統記憶體耗盡的情況下,啟用自己算法有選擇性的kill 掉一些進程。
1. 為什麼會有OOM killer
當我們使用套用時,需要申請記憶體,即進行malloc的操作,進行malloc操作如果返回一個非NULL的操作表示申請到了可用的記憶體。事實上,這個地方是可能存在bug的。Linux有一種記憶體最佳化機制,即:允許程式申請比系統可用記憶體更多的記憶體,但是Linux並不保證這些記憶體馬上可用,如果湊巧你申請到的記憶體中在你需要使用的時候還沒有完全釋放出來,這個時候就會觸發OOM killer了。核心代碼為:mm/oom_kill.c,其調用順序為:
malloc - _alloc_pages - out_of_memory() - select_bad_process() - badness()
2. 如何選擇要kill掉的進程
分析badness代碼,其選擇過程如下:
1)計算該進程以及其子進程所占用的記憶體;
2)計算CPU時間和存活時間
3)做相應的權重調整
總結起來,就是占用記憶體越高,得分越高,cpu時間和存活時間越高,得分越低;進程優先權越高,得分越低
綜合上述因素後,會得到一個point的值,得分最高的會被選中,然後被kill掉。