[SAS] error: out of memory 記憶體不足

話說前幾天朋友問我關於SAS out of memory (OOM)該怎麼解

ERROR: The SAS System stopped processing this step because of insufficient memory.

第一步可以先判斷究竟是程式中的哪一段出現error

朋友丟了一段PROC MIXED給我

就一段,秒OOM

如果你的程式很長,建議一段段debug,找出瓶頸的段落點

在他無法改程式的情況下,先從系統著手

第二步檢查操作的該電腦記憶體RAM多少

朋友告訴我他的筆電RAM是4G,有借一台32G的跑也秒OOM,為什麼?

第三步檢查該SAS在資源分配上最高可使用的RAM多大?

16735182_10208418958859182_692664251_o

你一定會問我該怎麼檢查

proc options group=memory ; run;

可以從截圖log頁面看到基本上SAS使用的是2G

第四步,調整SAS自己可抓取最大的記憶體容量

  • 如果你是SAS9.4,可以到!SASROOT/sasv9.cfg檔案中調整,輸入「-memsize 6g」改成6G之類
  • 如果你是SAS9.3,也是一樣的解法
  • 或是在SAS啟動的程式改成「sas -memsize 0 yourprogram.sas」

如大家有機會遇到,建議可以這樣試試!

以前用SAS的經驗還沒碰過out of memory,或許跟資料已經先做過抽樣

或是資料量本身就不大,所以在計算上並沒有耗費超過SAS default所配給的2G memory

無論如何都是一個很好的問題啊!

實用

2017-02



迴響已關閉。


total of 2264556 visits