[20191114]linux内存分配的讨论.txt
--//链接http://www.itpub.net/thread-2121531-1-1.html上的讨论.
# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4194304
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
--//kernel.shmall * kernel.shmmni = 4194304*4096 = 17179869184
--//17179869184/1024/1024/1024 = 16G
--//68719476736/1024/1024/1024 = 64
--//你前面提到2个实例1个8 ,1个6G,应该是这里不足了.要加大到4194304*2 = 8388608.或者设置更大一些.
--//另外的可能就是内存碎片,我有点乱猜,毕竟共享内存段需要很大一片内存,当然可以分成多段.你没有写出什么错误,应该是ora-27XXX的错误.
--//对于linux内存上许多概念还是不是很清晰,以后慢慢补充学习这方面内容.
--//我个人建议使用hugepages,现在的机器内存都很大.如果有缺点就是如果你分配hugepages,不使用就浪费了.
--//其实设置小了vm.nr_hugepages也没有什么问题.
--//use_large_pages支持auto参数.设置小了vm.nr_hugepages没关系.
SYS@book> alter system set use_large_pages=xxxxxxxxx scope=spfile ;
alter system set use_large_pages=xxxxxxxxx scope=spfile
*
ERROR at line 1:
ORA-00096: invalid value XXXXXXXXX for parameter use_large_pages, must be from among FALSE, ONLY, AUTO, TRUE
--//会启动oradism进程修改内核参数.参考链接 :http://blog.itpub.net/267265/viewspace-2135210/
--//这样的缺点是修改后不会返回给其它应用使用.你可以使用这样方式计算需要vm.nr_hugepages.
--//另外你也可以定义参数:vm.nr_overcommit_hugepages=XXXXXX.
--//这样vm.nr_hugepages定义小了,也没有关系.
--//参考链接:http://blog.itpub.net/267265/viewspace-2145481/
--//使用这个好处关闭数据库后,这部分内存可以返回给其它应用使用.
--//当然我也遇到1个问题,就是链接http://blog.itpub.net/267265/viewspace-2132921/
--//12c使用pdb,oracle设置pre_page_sga=true作为缺省参数.这样你不使用hugepages,浪费内存更大.
--//如果你使用11g不使用hugepages,设置pre_page_sga=true,遇到的问题启动缓慢连接缓慢,
--//链接:
http://blog.itpub.net/267265/viewspace-2295412/=>[20190103]设置pre_page_sga=true启动缓慢的问题.txt
http://blog.itpub.net/267265/viewspace-2640993/=>[20190409]pre_page_sga=true与连接缓慢的问题.txt
--//我贴一个12cR2版本的没有使用hugepages的情况:
SYS@orclcdb> show sga
Total System Global Area 30802965576 bytes
Fixed Size 12452936 bytes
Variable Size 2751463424 bytes
Database Buffers 17246978048 bytes
Redo Buffers 54652928 bytes
In-Memory Area 10737418240 bytes
# ipcs
------ Message Queues --------
key msqid owner perms used-bytes messages
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x56538844 720900 oracle 600 24576 26
0x00000000 753669 oracle 600 12455936 162
0x00000000 786438 oracle 600 7516192768 81
0x00000000 819207 oracle 600 23219666944 81
0x00000000 851976 oracle 600 54652928 81
0xd48cd3f0 884745 oracle 600 36864 81
------ Semaphore Arrays --------
key semid owner perms nsems
0xe448e67c 196608 oracle 600 250
0xe448e67d 229377 oracle 600 250
0x1ab7abe0 360450 oracle 600 250
0x1ab7abe1 393219 oracle 600 250
# grep -i page /proc/meminfo
AnonPages: 6133272 kB
PageTables: 1073376 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
--//基本没有用户连接的数据库,PageTables达到1G上下.