[20191114]linux記憶體分配的討論.txt

lfree發表於2019-11-14

[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部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2664040/,如需轉載,請註明出處,否則將追究法律責任。

相關文章