Linux
高 INACTIVE 記憶體
我在執行“top”時使用 Oracle Enterprise Linux 6.5 和 Oracle Database 11g 向我展示這個
top - 14:08:02 up 5 days, 18:34, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 340 total, 1 running, 331 sleeping, 8 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 132038392k total, 100871400k used, 31166992k free, 16912k buffers Swap: 32767996k total, 0k used, 32767996k free, 99462140k cached
我將 70GB 記憶體專用於我的數據庫,所以當我啟動我的數據庫時顯示以下錯誤
ORA-00845: MEMORY_TARGET not supported on this system
然後我執行“vmstat -s”顯示以下輸出
132038392 total memory 100928456 used memory 278536 active memory 99495304 inactive memory
我意識到我用過的記憶體中有 96GB 是 INACTIVE 記憶體,然後我使用以下命令來釋放我的 INACTIVE 記憶體
sync && echo 3 > /proc/sys/vm/drop_caches
什麼也沒發生,除非我重新啟動我的作業系統,否則我仍然無法啟動我的數據庫 我該如何解決這個問題?
我想用下面的命令字元串來解決這個問題:
首先,寫入此內容將導致核心刪除乾淨的記憶體一旦刪除,它們的記憶體就會空閒。
To free pagecache: echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches
如果這個問題沒有解決,那麼你應該這樣做:
Now change the value by modifying /etc/sysctl.conf kernel.shmmax kernel.shmall then force the system to activate this setting file without a reboot. $ sysctl -p