vi /etc/sysctl.conf
成都創(chuàng)新互聯(lián)公司專注于利川網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供利川營銷型網(wǎng)站建設(shè),利川網(wǎng)站制作、利川網(wǎng)頁設(shè)計、利川網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造利川網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供利川網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
其中有兩個參數(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)致當(dāng)時輕微的系統(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最大大小,當(dāng)然也可以是2G~14G等,還要協(xié)調(diào)PGA參數(shù)及OS等其他內(nèi)存使用,不能設(shè)置太滿,比如16G)
Oracle 11G 自動內(nèi)存管理如何分配內(nèi)存
在11g中oracle引入了自動化內(nèi)存管理(Automatic Memory Management)概念,僅用兩個參數(shù)就能完成oracle的內(nèi)存管理工作。
1 :MEMORY_TARGET:oracle所能使用的最大內(nèi)存,該參數(shù)可以動態(tài)調(diào)整。
2 :MEMORY_MAX_TARGET:MEMORY_TARGET參數(shù)所能動態(tài)設(shè)定的最大值,不能動態(tài)調(diào)整,需要重啟數(shù)據(jù)庫。
至于具體如何分配
正??磾?shù)據(jù)庫服務(wù)器一共有多少內(nèi)存,是否還有其他系統(tǒng)或程序在跑。
可以分配全部內(nèi)存的2/3 到 3/4 給oracle ;oracle自己分配 pga 和 sga 及其內(nèi)部的內(nèi)存結(jié)構(gòu)。
ORACLE 10g的話看你是否使用ASMM(自動共享內(nèi)存管理,11g就是AMM了),如果是的話,就設(shè)置參數(shù):sga_target、pga_aggregate_target兩個參數(shù)就O了,至于比例看系統(tǒng),OLTP系統(tǒng)前者設(shè)計大一點,占用整個INSTANCE百分之六七十比較正常,OLAP的時候SGA沒有必要要那么大了。
不過你要自己設(shè)置每一個細節(jié)參數(shù)的話,就將上述參數(shù)設(shè)置為0就會自動關(guān)閉ASMM(對應(yīng)進程MMAN,10g和11g沒有變化都是這個進程),然后一般設(shè)置一下參數(shù):
1、數(shù)據(jù)緩沖區(qū):
db_cache_size 數(shù)據(jù)緩沖區(qū)DEFAULT區(qū)域大小,也是默認的大小
db_keep_cache_size 數(shù)據(jù)緩沖區(qū)keep區(qū)域大小,幾乎不會被替換掉的內(nèi)存區(qū)
db_recycle_cache_siez 數(shù)據(jù)recycle區(qū)域大小,幾乎用完就回收掉的內(nèi)存區(qū)
2、共享池
shared_pool_size
內(nèi)部保存SQL信息、數(shù)據(jù)字典、控制信息,其實這部分最好不用自己去控制,它自己管理就行。里面有個參數(shù):shared_pool_reserved_size適當(dāng)?shù)臅r候也可以配置一下。
如果你要用rman相關(guān)的東西,要配置一下大池,如果沒有JAVA PROD在ORACLE內(nèi)部,JAVA池幾乎無用,做Stream復(fù)制,就設(shè)置一下stream池。
PGA一般設(shè)置一個最大值就行,內(nèi)部它一般自己去調(diào)節(jié)(PGA內(nèi)部一般有一段內(nèi)存和一些后臺進程組成),分專用模式還是共享模式的區(qū)別(MTS系統(tǒng)中),內(nèi)部有些細節(jié)參數(shù)會根據(jù)CPU去配置的(如DBWR最多可以20個,最少是1個,可根據(jù)CPU的個數(shù)設(shè)置,但是一個INSTANCE最多20個),另外可以設(shè)置內(nèi)部的SORT_AREA_SIZE、hash_area_size等等用于用戶進程查詢時產(chǎn)生的內(nèi)存開銷(超過這個值就會到臨時表空間去做了),
內(nèi)存是影響數(shù)據(jù)庫性能的重要因素,Oracle8i使用靜態(tài)內(nèi)存管理,Oracle 10g使用動態(tài)內(nèi)存管理。所謂靜態(tài)內(nèi)存管理,就是在數(shù)據(jù)庫系統(tǒng)中,無論是否有用戶連接,也無論并發(fā)用量大小,只要數(shù)據(jù)庫服務(wù)在運行,就會分配固定大小的內(nèi)存;動態(tài)內(nèi)存管理允許在數(shù)據(jù)庫服務(wù)運行時對內(nèi)存的大小進行修改,讀取大數(shù)據(jù)塊時使用大內(nèi)存,小數(shù)據(jù)塊時使用小內(nèi)存,讀取標(biāo)準(zhǔn)內(nèi)存塊時使用標(biāo)準(zhǔn)內(nèi)存設(shè)置。
假設(shè):oracle安裝目錄 D:\oracle
數(shù)據(jù)庫的實例名 XXX
內(nèi)存配置步驟:
1)打開dos,運行
D:\oracle sqlplus /nolog
SQL connect / as sysdba
SQL create pfile from spfile;
SQL shutdown immediate
SQL exit
2)打開文件D:\oracle\ora92\database\INITXXX.ORA
修改以下值并保存:
*.db_cache_size=819m
*.shared_pool_size=256m
*.pga_aggregate_target=256m
*.large_pool_size=64m
*.java_pool_size=64m
3)刪除文件D:\oracle\ora92\database\SPFILEXXX.ORA
4)打開dos,運行
D:\oracle sqlplus /nolog
SQL connect / as sysdba
SQL startup
SQL create spfile from pfile;
SQL exit
最近,對Linux大頁的調(diào)整,所以重溫了一些Linux內(nèi)存及SGA等相關(guān)概念、參數(shù)和配置,這里進行一下記錄,省的總Google.
limits.conf文件實際是Linux PAM(插入式認證模塊,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,突破系統(tǒng)的默認限制,對系統(tǒng)訪問資源有一定保護作用。 limits.conf 和sysctl.conf區(qū)別在於limits.conf是針對用戶,而sysctl.conf是針對整個系統(tǒng)參數(shù)配置。
limits.conf是 pam_limits.so的 配置文件,然後/etc/pam.d/下的應(yīng)用程序調(diào)用pam_***.so模塊。譬如說,當(dāng)用戶訪問服務(wù)器,服務(wù)程序?qū)⒄埱蟀l(fā)送到PAM模塊,PAM模塊根據(jù)服務(wù)名稱在/etc/pam.d目 錄下選擇一個對應(yīng)的服務(wù)文件,然後根據(jù)服務(wù)文件的內(nèi)容選擇具體的PAM模塊進行處理。
格式為:
-c 指定修改core文件的大小,1000指定了core文件大小。也可以對core文件的大小不做限制,如: ulimit -c unlimited
對於需要做許多套接字連接并使它們處於打開狀態(tài)的應(yīng)用程序而言,最好通過使用ulimit -n,或者通過設(shè)置nofile參數(shù),為用戶把文件描述符的數(shù)量設(shè)置得比默認值高一些
maxlogins - 此用戶允許登錄的最大數(shù)目
注意:要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so
詳細說明:
username|@groupname:設(shè)置需要被限制的用戶名,組名前面加@和用戶名區(qū)別。也可以用通配符*來做所有用戶的限制。
type:有 soft,hard 和 -,
soft 指的是當(dāng)前系統(tǒng)生效的設(shè)置值。
hard 表明系統(tǒng)中所能設(shè)定的最大值。
soft 的限制不能比har 限制高。
用 - 就表明同時設(shè)置了 soft 和 hard 的值。
resource:
示例,若機器上部署了ORACLE數(shù)據(jù)庫,我們需要對oracle用戶的資源做下調(diào)整,如下:
要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。查看 /etc/pam.d/login 文件中有:
--查看當(dāng)前系統(tǒng)配置文件ulimit的全局配置
ulimit -a
如果未進行具體設(shè)置的話,會使用默認配置,如下查看:
批注:當(dāng)使用*號讓全局用戶生效的時候,生效的nproc的值大小是受文件/etc/security/limits.d/90-nproc.conf中nproc值大小制約的,而如果僅僅是針對某個用戶,那麼就不受該文件nproc值大小的影響。
Linux系統(tǒng) /etc/security/limits.conf 配置
參考自
當(dāng)前名稱:oracle內(nèi)存如何設(shè)定 oracle內(nèi)存管理方式
當(dāng)前路徑:http://m.rwnh.cn/article16/hiigdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、手機網(wǎng)站建設(shè)、域名注冊、網(wǎng)頁設(shè)計公司、做網(wǎng)站、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)