無錫做網(wǎng)站優(yōu)化價格301313龍虎榜
死機定位(進程虛擬地址空間耗盡)
一、死機現(xiàn)象
內(nèi)存富裕,但內(nèi)存申請失敗。
死機時打?。?br>
懷疑是:
1、內(nèi)存碎片原因?qū)е隆?br> 2、進程虛擬地址空間耗盡導(dǎo)致。
3、進程資源限制導(dǎo)致。
二、內(nèi)存碎片分析
1、理論知識:如何分析內(nèi)存碎片化情況
使用 /proc/buddyinfo:
/proc/buddyinfo 文件提供了關(guān)于內(nèi)存碎片化的重要信息。這個文件顯示了每個內(nèi)存區(qū)域(zone)中的空閑頁面數(shù)量,按不同大小分類。較大的數(shù)字表示有更多的大塊連續(xù)內(nèi)存可用,而較小的數(shù)字則表明存在更多的小塊內(nèi)存,這是內(nèi)存碎片化的跡象。
內(nèi)容格式如下:
Node , zone …
Node : NUMA 節(jié)點編號;
zone : 內(nèi)存區(qū)域名稱;
… : 每個訂單(order)對應(yīng)的空閑內(nèi)存塊數(shù)量。每個訂單對應(yīng) 2^N 個頁面(通常是 4 KB 頁面)
例如:
Node 0, zone Normal 12 22 18 14 10 7 5 3 2 1 0
如果右邊的數(shù)字(大塊內(nèi)存)較少,而左邊的數(shù)字較多,說明內(nèi)存碎片化較為嚴(yán)重。
order 0: 12 個 4 KB 的內(nèi)存塊
order 1: 22 個 8 KB 的內(nèi)存塊
… …
order 9: 1 個 2 MB 的內(nèi)存塊
order 10: 0 個 4 MB 的內(nèi)存塊
實例說明內(nèi)存碎片化:
高階訂單(如 order 7、8、9、10)的值較低:這表明系統(tǒng)中大塊連續(xù)內(nèi)存不足。
低階訂單(如 order 0、1、2、3)的值較高:這表明系統(tǒng)中有大量的小塊內(nèi)存,也可能暗示內(nèi)存碎片化。
2、實例分析:內(nèi)存碎片化情況
結(jié)論:Top和buddyinfo計算的剩余內(nèi)存能夠匹配,Order 10為4M內(nèi)存塊都剩余48個,按道理申請40kB*8空間不會失敗才對。
====》產(chǎn)生問題:為