溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solaris內存參數有哪些

發布時間:2021-11-10 15:41:49 來源:億速云 閱讀:181 作者:iii 欄目:關系型數據庫

這篇文章主要介紹“solaris內存參數有哪些”,在日常操作中,相信很多人在solaris內存參數有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”solaris內存參數有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、solaris 內存參數說明

shared memory:共享內存段: 
一個內存區域,可以被不同的進程讀取。Oracle使用它來構成SGA。Oracle使用以下三種方法來創建一個SGA區: 
1. 使用單個共享內存段。 
2. 使用連續多個共享內存段。 
3. 使用多個不連續共享內存段。 
Oracle優先使用第一種方法,如果成功,則繼續初始化,不成功則使用第二種方法,再不成功則使用第三種方法。如果再不成功,則初始化失敗,Oracle報告錯誤代碼。

Semaphore: 
可以看作一個標記??梢杂蠴n和Off兩種狀態。Oracle使用semaphores來實現服務器進程對SGA區的存取控制。 
Shared memory 和semaphore 是Oracle在Unix上運行的重要資源。如果Oracle 實例得不到所需要的資源,實例啟動就會失敗。

參數: 
對于運行一個Oracle實例的Solaris系統,改變/etc/system文件中的一些關于共享內存的參數,以使Oracle實例可以正常運行。如果有多個實例的話,還需根據下面方法重新計算某些值。

shmmax 
含義:這個設置并不決定究竟Oracle數據庫或者操作系統使用多少物理內存,只決定了最多可以使用的內存數目。這個設置也不影響操作系統的內核資源。 
設置方法:0.5*物理內存。如果物理內存為20G,則 0.5×20G×1024×1024=10485760 
例子: Set shmsys:shminfo_shmmax=10485760

shmmin 
含義:共享內存的最小大小。 
設置方法:一般都設置成為1。 
例子: Set shmsys:shminfo_shmmin=1

shmmni 
含義:系統中共享內存段的最大個數。 推薦值為100或者128。 
例子:Set shmsys:shminfo_shmmni=100

shmseg 
含義:每個用戶進程可以使用的最多的共享內存段的數目。 推薦值為20或者10。 
例子:Set shmsys:shminfo_shmseg=20

semmni 
含義:系統中semaphore identifierer的最大個數。推薦值為100或者128。 
設置方法:把這個變量的值設置為這個系統上的所有Oracle的實例的init.ora中的最大的那個processes的那個值加10。 
例子:Set semsys:seminfo_semmni=100

semmns 
含義:系統中semaphores的最大個數。 
設置方法:這個值可以通過以下方式計算得到:各個Oracle實例的initSID.ora里邊的processes的值的總和(除去最大的Processes參數)+最大的那個Processes×2+10×Oracle實例的個數。 詳見下面“(semmns計算實例)”。 
例子:Set semsys:seminfo_semmns=200

semmsl 
含義:一個set中semaphore的最大個數。

設置方法:設置成為10+所有Oracle實例的InitSID.ora中最大的Processes的值。詳見下面“(SEMMSL 計算實例)”  . 
例子:Set semsys:seminfo_semmsl=200

 
改變了/etc/system里邊以上參數以后,重新啟動計算機: 
 $reboot 
然后檢查當前的參數: 
 $sysdef -I 
如果系統參數仍舊沒有改變得話,使用以下命令: 
 $modload /kernel/sys/shmsys。

二、oracle在solaris下安裝時參數的計算

SHMMAX maximum size of a shared memory segment 
(共享內存段的最大字節數) 
SHMMIN minimum size of shared memory segment 
(共享內存段的最小尺寸) 
SHMMNI maximum number of shared memory identifiers in the system 
(系統中共享內存標識符的最大數目) 
SHMSEG maximum number of shared memory segments a user process can attach 
(每個用戶進程可分配的最大共享內存段數目) 
SEMMNI maximum number of semaphore identifiers in the system 
(系統中信號燈標識符的最大數目) 
SEMMSL maximum number of semaphores in a set 
(每個(信號燈)集合中的信號燈的最大數目) 
SEMMNS maximum number of semaphores in the system 
(系統中信號燈的最大數目) 
SEMOPM maximum number of operations per semop call 
(每個semop調用的信號燈的最大數目) 
SEMVMX semaphore maximum value 
(信號燈最大值)

set semsys:seminfo_semmni 100

set semsys:seminfo_semmns 1024(semmns計算實例)

系統中各個Oracle實例的"init[SID].ora"文件中PROCESSES值的總和(不包括最大的那個PROCESSES值)+ 最大的那個PROCESSES值 * 2 + 10 * Oracle實例的個數。 
注:[SID]即為具體的數據庫實例名 
例如,一個有三個 Oracle實例的系統,在各自的"initsid.ora"文件中的PROCESSES參數設置為下列值: 
ORACLE_SID=A, PROCESSES=100 
 ORACLE_SID=B, PROCESSES=100 
 ORACLE_SID=C, PROCESSES=200 
則 SEMMSL 值的計算方法如下(SEMMSL 計算實例): 
SEMMSL = [(c=200) + 10] = 210 
則 SEMMNS 值的計算方法如下: 
SEMMNS = [(A=100) + (B=100)] + [(C=200) * 2] + [(# of instances=3) * 10] = 630

set semsys:seminfo_semmsl 256

SEMMSL 的值可以通過以下方式計算得到: 
所有Oracle實例的"init[SID].ora"文件中最大的PROCESSES值 + 10 
 set semsys:seminfo_semvmx 32767 
 set semsys:seminfo_shmmax 12884901888    

24G *0.5 * 1024*1024 (24G是物理內存) 
set semsys:seminfo_shmmin 100


三、solaris11 對內存參數的設置

1、使用prctl調整
prctl -n project.max-shm-memory -v 10G -r -i project default 
prctl -n project.max-sem-ids -v 256 -r -i project default 
prctl -n project.max-shm-ids -v 256 -r -i project default 
這樣所作的修改系統重啟后就失效了

2、創建project,調整會記錄到/etc/project里

可以使用下面的方法為oracle用戶創建單獨的project,然后修改相應的值
projadd -U oracle user.oracle 
projmod -a-K "project.max-shm-memory=(priv,10g,deny)" user.oracle 
projmod -a-K "project.max-sem-ids=(priv,100,deny)" user.oracle 
projmod -a-K "process.max-sem-nsems=(priv,500,deny)" user.oracle 
projmod -a-K "project.max-shm-ids=(priv,100,deny)" user.oracle 
修改之后只要切換到oracle用戶設置就生效了,重啟之后也不會丟失。更加詳細的關于project的操作請查看solaris相應的手冊,以后修改/etc/system的方法應該會被這種方式逐步取代

到此,關于“solaris內存參數有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女