久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

oracle rac內(nèi)核參數(shù)的詳細介紹

177次閱讀
沒有評論

共計 7564 個字符,預(yù)計需要花費 19 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“oracle rac 內(nèi)核參數(shù)的詳細介紹”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

1. 在 /etc/sysctl.conf 文件中加入下列行

kernel.shmall = 2097152 
kernel.shmmax = 4294967295 
kernel.shmmni = 4096 
# semaphores: semmsl, semmns, semopm, semmni 
kernel.sem = 250 32000 100 128 
fs.file-max = 101365 
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

net.ipv4.ip_local_port_range = 1024 65000

for 11gR2

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 4294967295

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586 

注意:  如果已經(jīng)存在的值大于這個值,就不要修改!

– 然后運行下面命令,使上面的設(shè)置生效  
#/sbin/sysctl -p

參數(shù)說明:

 kernel.shmall 為物理內(nèi)存除以 pagesize;

 kernel.shmmax 為物理內(nèi)存的一半;

 fs.file-max 為 512  乘以  processes (如 128 個 process 則為  65536);

 net.ipv4.ip_local_port_range/net.core.rmem_default/net.core.rmem_max 三個參數(shù)設(shè)置和官方文檔不一樣,  這是根據(jù) metalink 343431.1  最新要求更改的;

 net.ipv4.tcp_rmem/net.ipv4.tcp_wmem 兩個參數(shù)一般情況下無需設(shè)置,  除非是在 Dataguard/Streams 等需很多網(wǎng)絡(luò)傳輸情況下;

其它參數(shù)根據(jù)官方文檔要求設(shè)置即可.

# Controls the maximum shared segment size, in bytes – 物理內(nèi)存的一般

kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages

kernel.shmall = 4294967296 – 物理內(nèi)存除以 pagesize

—  以上 2 個參數(shù),都已經(jīng)存在,  只需要調(diào)整一下參數(shù)大小

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 327679 

net.core.rmem_default = 1048576

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

net.ipv4.ip_local_port_range = 9000 65500 —  這個端口從 9000 開始

for 11gR2

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

注意:如果已經(jīng)存在的值,大于這里的設(shè)置,就不要修改。

2. kernel.shmmax  參數(shù)

2.1  說明

 SHMMAX Available physical memory Defines the maximum allowable size of one shared memory segment. The SHMMAX setting should be large enough to hold the entire SGA in one shared memory segment. A low setting can cause creation of multiple shared memory segments which may lead to performance degradation.

 Shmmax  是核心參數(shù)中最重要的參數(shù)之一,用于定義單個共享內(nèi)存段的最大值,shmmax  設(shè)置應(yīng)該足夠大,能在一個共享內(nèi)存段下容納下整個的 SGA , 設(shè)置的過低可能會導(dǎo)致需要創(chuàng)建多個共享內(nèi)存段,這樣可能導(dǎo)致系統(tǒng)性能的下降  。

 SHMMAX  僅僅是在共享內(nèi)存段被創(chuàng)建的時候用來比較的一個數(shù)字,當共享內(nèi)存段被一個進程 (Process) 創(chuàng)建,操作系統(tǒng)檢查是否被要求的共享內(nèi)存段的值大于 shmmax  的值  ,如果是,那么將會拋出一個錯誤。這個時候系統(tǒng)會創(chuàng)建另外的一個或多個共享內(nèi)存段滿足進程的需求  。一般來說,共享內(nèi)存段個數(shù)和系統(tǒng)性能沒有太直接的關(guān)系,也不會對性能產(chǎn)生太大的影響。

  在實例啟動以及 Server Process  創(chuàng)建的時候,多個小的共享內(nèi)存段可能會導(dǎo)致當時輕微的系統(tǒng)性能的降低(在啟動的時候   需要去創(chuàng)建多個虛擬地址段,在進程創(chuàng)建的時候要讓進程對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。這意味著如果你的程序不是經(jīng)常 Create Processes(以及 Destroy Them), 性能方面就不是考慮的問題。 

 Oralce  建議  SHMMAX SGA(SGA_MAX_SIZE),這樣在任何時候都不會有甚至輕微的性能下降的隱患。 

2.2  示例

  在上節(jié)說了,如果 shmmax  小與 SGA,Oracle  會創(chuàng)建多個共享內(nèi)存段,我們可以使用 Ipcs -sa  查看看到共享內(nèi)存段個數(shù)。 

(1)查看

[root@rac01 ~]# cat /etc/sysctl.conf | grep kernel.shmmax
kernel.shmmax = 20971520
[root@rac01 ~]# ipcs -sa

—— Shared Memory Segments ——–
key shmid owner perms bytes nattch status 
0x00000000 65537 oracle 640 4194304 27 
0x00000000 98306 oracle 640 20971520 27 
0x00000000 131075 oracle 640 20971520 27 
0x00000000 163844 oracle 640 20971520 27 
0x00000000 196613 oracle 640 20971520 27 
0x00000000 229382 oracle 640 20971520 27 
0x00000000 262151 oracle 640 20971520 27 
0x00000000 294920 oracle 640 20971520 27 
0xd2776b04 327689 oracle 640 20971520 27 

—— Semaphore Arrays ——–
key semid owner perms nsems 
0xfafd7074 360449 oracle 640 104 

—— Message Queues ——–
key msqid owner perms used-bytes messages

因為 kernel.shmmax 設(shè)置過小, 導(dǎo)致分配了多個共享內(nèi)存段。

下邊改大一些:
[root@rac01 ~]# cat /etc/sysctl.conf | grep kernel.shmmax
kernel.shmmax = 2147483648
[root@rac01 ~]# sysctl -p
[root@rac01 ~]# su – oracle
[oracle@rac01 ~]$ sqlplus /as sysdba

SQL*Plus: Release 10.2.0.1.0 – Production on Mon Nov 16 05:50:00 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, Real Application Clusters, Oracle Label Security, OLAP
and Data Mining Scoring Engine options

SQL startup force
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 104859892 bytes
Database Buffers 58720256 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, Real Application Clusters, Oracle Label Security, OLAP
and Data Mining Scoring Engine options

再看一下:
[root@rac01 ~]# ipcs -sa

—— Shared Memory Segments ——–
key shmid owner perms bytes nattch status 
0xd2776b04 360449 oracle 640 171966464 27 

—— Semaphore Arrays ——–
key semid owner perms nsems 
0xfafd7074 491521 oracle 640 104 

—— Message Queues ——–
key msqid owner perms used-bytes messages
只有一個內(nèi)存段分配了

3. kernel.shmall

 kernel.shmall  參數(shù)是控制共享內(nèi)存頁數(shù)。該參數(shù)大小為物理內(nèi)存除以 pagesize;

查看 os 系統(tǒng)頁的大小

#getconf PAGESIZE

4096

  這里顯示的 pagesize  是 4k,假設(shè)一個共享內(nèi)存段的最大大小是 16G,那么需要共享內(nèi)存頁數(shù)是  16GB/4KB=16777216KB/4KB=4194304 (頁),也就是 64Bit  系統(tǒng)下 16GB  物理內(nèi)存,設(shè)置  kernel.shmall = 4194304  才符合要求,幾乎是原來設(shè)置 2097152 的兩倍。

4. kernel.shmmni  參數(shù)

 shmmni  內(nèi)核參數(shù)是共享內(nèi)存段的最大數(shù)量(注意這個參數(shù)不是  shmmin, 是

shmmni, shmmin  表示內(nèi)存段最小大小  )。shmmni  缺省值  4096 ,一般肯定是夠用了。

5. fs.file-max  參數(shù)

 fs.file-max 為 512  乘以  processes。

  如 128 個 process,則 file-max=512*128=65536。

6. Oracle  下需要做調(diào)整的參數(shù)

  在 Oracle 10g  中引入了一個非常重要的參數(shù):SGA_TARGET,這也是 Oracle 10g 的一個新特性。自動共享內(nèi)存管理(Automatic Shared Memory Management ASMM),控制這一特性的,就僅僅是這個參數(shù) SGA_TARGE。設(shè)置這個參數(shù)后,你就不需要為每個內(nèi)存區(qū)來指定大小了。SGA_TARGET  指定了 SGA  可以使用的最大內(nèi)存大小,而 SGA  中各個內(nèi)存的大小由 Oracle  自行控制,不需要人為指定。

 Oracle  可以隨時調(diào)節(jié)各個區(qū)域的大小,使之達到系統(tǒng)性能最佳狀態(tài)的個最合理大小,并且控制他們之和在 SGA_TARGET  指定的值之內(nèi)。一旦給 SGA_TARGET  指定值后(默認為 0,即沒有啟動 ASMM),就自動啟動了 ASMM

特性。

 10g  下設(shè)置  SGA_TARGET  之后啟動 ASSM  特性之后,  只有以下的這些區(qū)的內(nèi)存大小動態(tài)共享起來:

* Buffer cache (DB_CACHE_SIZE)

* Shared pool (SHARED_POOL_SIZE)

* Large pool (LARGE_POOL_SIZE)

* Java pool (JAVA_POOL_SIZE)

* Streams pool (STREAMS_POOL_SIZE)

  而 SGA  中的其他區(qū)域的內(nèi)存大小仍然是固定不共享的。它的含義和 SGA_MAX_SIZE  的一樣,也表示 SGA  最大的大小,于是它也就有了一個限制,那就是它的大小不能大于 SGA_MAX_SIZE  的大小。

 Oracle10g  下, SGA_MAX_SIZE  仍然表示 SGA  的大小的上限值,而 SGA_TARGET  是 SGA  的所有組件的大小的最大值之和,即當 SGA_TARGET SGA_MAX_SIZE 的時候,oracle  就會忽略 SGA_MAX_SIZE  的值,SGA_TARGET  也就成了 SGA  的在此實例中的上限制,它能動態(tài)改變大小,但是不能夠大于 SGA_MAX_SIZE  的值。

  當 SGA_TARGET SGA_MAX_SIZE  時,實例重啟以后 SGA_MAX_SIZE  就變成 SGA_TARGET  的大小了。

  在 11g  中,這個 SGA_TARGET  只能設(shè)置是等于 SGA_MAX_SIZE  的大小了,設(shè)置比它小,oracle  會自動幫你調(diào)整,設(shè)置比它大,那還是出錯。現(xiàn)在可以自己想想,oracle 對 SGA_TARGET  的大小處理在往正確的簡單的方向前進中。

 SGA_TARGET  帶來一個重要的好處就是,能使 SGA  的利用率達到最佳,從而節(jié)省內(nèi)存成本。因為 ASMM  啟動后,Oracle  會自動根據(jù)需要調(diào)整各個區(qū)域的大小,大大減少了某些區(qū)域內(nèi)存緊張,而某些區(qū)域又有內(nèi)存空閑的矛盾情況出現(xiàn)。

各參數(shù)詳解:

kernel.shmmax:

是核心參數(shù)中最重要的參數(shù)之一,用于定義單個共享內(nèi)存段的最大值。設(shè)置應(yīng)該足夠大,能在一個共享內(nèi)存段下容納下整個的 SGA , 設(shè)置的過低可能會導(dǎo)致需要創(chuàng)建多個共享內(nèi)存段,這樣可能導(dǎo)致系統(tǒng)性能的下降。至于導(dǎo)致系統(tǒng)下降的主要原因為在實例啟動以及 ServerProcess 創(chuàng)建的時候,多個小的共享內(nèi)存段可能會導(dǎo)致當時輕微的系統(tǒng)性能的降低(在啟動的時候需要去創(chuàng)建多個虛擬地址段,在進程創(chuàng)建的時候要讓進程對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。

官方建議值:

32 位 linux 系統(tǒng):可取最大值為 4GB(4294967296bytes)-1byte,即 4294967295。建議值為多于內(nèi)存的一半,所以如果是 32 為系統(tǒng),一般可取值為 4294967295。32 位系統(tǒng)對 SGA 大小有限制,所以 SGA 肯定可以包含在單個共享內(nèi)存段中。

64 位 linux 系統(tǒng):可取的最大值為物理內(nèi)存值 -1byte,建議值為多于物理內(nèi)存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理內(nèi)存 -1byte。例如,如果為 12GB 物理內(nèi)存,可取 12*1024*1024*1024-1=12884901887,SGA 肯定會包含在單個共享內(nèi)存段中。 

kernel.shmall:

  該參數(shù)控制可以使用的共享內(nèi)存的總頁數(shù)。Linux 共享內(nèi)存頁大小為 4KB, 共享內(nèi)存段的大小都是共享內(nèi)存頁大小的整數(shù)倍。一個共享內(nèi)存段的最大大小是 16G,那么需要共享內(nèi)存頁數(shù)是 16GB/4KB=16777216KB /4KB=4194304(頁),也就是 64Bit 系統(tǒng)下 16GB 物理內(nèi)存,設(shè)置 kernel.shmall = 4194304 才符合要求(幾乎是原來設(shè)置 2097152 的兩倍)。這時可以將 shmmax 參數(shù)調(diào)整到 16G 了,同時可以修改 SGA_MAX_SIZE 和 SGA_TARGET 為 12G(您想設(shè)置的 SGA 最大大小,當然也可以是 2G~14G 等,還要協(xié)調(diào) PGA 參數(shù)及 OS 等其他內(nèi)存使用,不能設(shè)置太滿,比如 16G)

kernel.shmmni:

該參數(shù)是共享內(nèi)存段的最大數(shù)量。shmmni 缺省值 4096,一般肯定是夠用了。

fs.file-max:

該參數(shù)決定了系統(tǒng)中所允許的文件句柄最大數(shù)目,文件句柄設(shè)置代表 linux 系統(tǒng)中可以打開的文件的數(shù)量。

fs.aio-max-nr:

  此參數(shù)限制并發(fā)未完成的請求,應(yīng)該設(shè)置避免 I / O 子系統(tǒng)故障。

kernel.sem:

以 kernel.sem = 250 32000 100 128 為例:

  250 是參數(shù) semmsl 的值,表示一個信號量集合中能夠包含的信號量最大數(shù)目。

  32000 是參數(shù) semmns 的值,表示系統(tǒng)內(nèi)可允許的信號量最大數(shù)目。

  100 是參數(shù) semopm 的值,表示單個 semopm()調(diào)用在一個信號量集合上可以執(zhí)行的操作數(shù)量。

  128 是參數(shù) semmni 的值,表示系統(tǒng)信號量集合總數(shù)。

net.ipv4.ip_local_port_range:

  表示應(yīng)用程序可使用的 IPv4 端口范圍。

net.core.rmem_default:

表示套接字接收緩沖區(qū)大小的缺省值。

net.core.rmem_max:

表示套接字接收緩沖區(qū)大小的最大值。

net.core.wmem_default:

表示套接字發(fā)送緩沖區(qū)大小的缺省值。

net.core.wmem_max:

表示套接字發(fā)送緩沖區(qū)大小的最大值。

“oracle rac 內(nèi)核參數(shù)的詳細介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-28發(fā)表,共計7564字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 随州市| 平阴县| 长丰县| 徐汇区| 噶尔县| 疏勒县| 澜沧| 岫岩| 年辖:市辖区| 扬中市| 凤凰县| 望奎县| 澜沧| 灵宝市| 河北区| 枞阳县| 太和县| 沁阳市| 麦盖提县| 桓台县| 太湖县| 明光市| 太和县| 海阳市| 余庆县| 营口市| 清河县| 绥滨县| 洮南市| 兴安盟| 固阳县| 策勒县| 聂拉木县| 韩城市| 剑川县| 遵义市| 莱芜市| 泽普县| 肇庆市| 滦南县| 丹凤县|