高非活动内存

高非活动内存

我使用 Oracle Enterprise Linux 6.5 和 Oracle Database 11g,当我执行“top”时,会显示此信息

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 内存是非活动内存,然后我使用以下命令释放我的非活动内存

sync && echo 3 > /proc/sys/vm/drop_caches 

什么都没有发生,我仍然无法启动数据库,除非我重新启动操作系统我该如何解决这个问题?

答案1

我认为使用下面的命令串来解决这个问题:

首先,写入此内容将导致内核删除干净的缓存,一旦删除,它们的内存就会被释放。

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

答案2

你能试试这个吗?

[1]下面的命令是手动挂载

安装-t tmpfs shmfs-o 大小=70g /dev/shm

[2] 然后尝试

SQL> startup nomount 如果一切正常,请将以下行添加到 fstab 以使其持久。

“tmpfs /dev/shm tmpfs大小=72g 0 0”

我希望服务器有足够的资源用于数据库和其他进程。

相关内容