今天,在搭standby的时候,出现了这个错误
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device.
查了查,32G内存,64位的RHEL。原来是/etc/sysctl.conf里的shmall设置的太小了。默认的shmall足够大了,不知怎么被注释掉了,换成了shmall= 2097152。(因为这台机以前搭建过standby,所以没去检查参数,看来还是不能偷懒,应该花个几分钟扫一眼参数配置)
最后贴一些关于这几个参数的解释。
kernel.shmmax 共享内存段的最大大小,以字节为单位。默认为32M(32位吧)
kernel.shmmni 定义共享内存段的最大数量,缺省4096
kernel.shmall 一次能够使用的内存总量,以页为单位,I386平台,linux页大小4K
kernel.sem中的四个值分别 是指
1:SEMMSL(每个用户拥有信号量最大数量),
2:SEMMNS(系统信号量最大数量),
3:SEMOPM(每次semop系统调用操作数),
4:SEMMNI(系统信号量集最小数量)
fs.file-max = 65536 系统允许同时打开的最大文件数为65536
net.ipv4.ip_local_port_range = 1024 65000 本地主机在ipv4下可用端口范围net.core.rmem_default 接收网络数据时的一个window 的默认值
net.core.rmem_default = 1048576 接收网络数据时的一个window 的最大值
net.core.wmem_default = 262144 发送网络数据时一个window的默认值
net.core.wmem_max = 262144 发送网络数据时一个window的最大值
更多:
Enabling High Performance Data Transfers
http://hi.baidu.com/ptmx/blog/item/1ae6acca45147745f21fe79c.html
http://www.psc.edu/networking/projects/tcptune/
linux
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23650854/viewspace-684587/ ,如需转载,请注明出处,否则将追究法律责任。