OutOfMemoryError系列(8): Kill process or sacrifice child
Out of memory killer?在可用內(nèi)存極低的情況下會(huì)殺死某些進(jìn)程。只要達(dá)到觸發(fā)條件就會(huì)激活, 選中某個(gè)進(jìn)程并殺掉。 通常采用啟發(fā)式算法, 對(duì)所有進(jìn)程計(jì)算評(píng)分(heuristics scoring), 得分最低的進(jìn)程將被 kill 掉。因此?Out of memory: Kill process or sacrifice child?和前面所講的?OutOfMemoryError?都不同, 因?yàn)樗炔挥蒍VM觸發(fā),也不由JVM代理, 而是系統(tǒng)內(nèi)核內(nèi)置的一種安全保護(hù)措施。
如果可用內(nèi)存(含swap)不足, 就有可能會(huì)影響系統(tǒng)穩(wěn)定, 這時(shí)候?Out of memory killer?就會(huì)設(shè)法找出流氓進(jìn)程并殺死他, 也就是引起?Out of memory: kill process or sacrifice child?錯(cuò)誤。