ITPub博客

首页 > 数据库 > Oracle > [20191114]linux内存分配的讨论.txt

[20191114]linux内存分配的讨论.txt

原创 Oracle 作者:lfree 时间:2019-11-14 09:08:55 0 删除 编辑

[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上下.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2664040/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4017
  • 访问量
    7994100