在Solaris10中為Oracle配置系統資源
文/呼必斯哈拉圖
摘要:
在 Solaris10 這個版本中的系統資源組態管理較之前的版本有較大的變化。諸如 Oracle 等, 在安裝、運行、最佳化等過程中需要對系統資源(核心參數,訊號量,記憶體空間, CPU 時間等)進行調整和設定後才能運行良好的的大型應用來說,熟悉 Solaris10 的這種新的資源管理方法和機制是非常有必要的。 本文將介紹在 Oracle 的安裝、使用過程中用到的一些資源配置的命令和方法。以便為更多的 Oracle 和其它類似情況的使用者提供參考。
一、
預備知識 A. 在 Solaris10 中仍然可以在 /etc/system 中設定需要的系統資源。但是有很多以前可以用在此檔案中進行設定的參數在 Solaris10 中已經廢止。如圖: 其中帶有 * 號的項目仍然可以在 /etc/system 中進行設定。但是其預設值有所變化。見下表:
| 資源控制標識 |
廢止選項 |
舊預設值 |
最大值 |
新預設值 |
| process.max-msg-qbytes |
msginfo_msgmnb |
4096 |
ULONG_MAX |
65536 |
| process.max-msg-messages |
msginfo_msgtq l |
40 |
UINT_MAX |
8192 |
| process.max-sem-ops |
seminfo_semopm |
10 |
INT_MAX |
512 |
| process.max-sem-nsems |
seminfo_semmsl |
25 |
SHRT_MAX |
512 |
| project.max-sem-ids |
seminfo_semmni |
10 |
224 |
128 |
| project.max-shm-memory |
shminfo_shmmax |
0x800000 |
UINT64_MAX |
1/4 實體記憶體 |
| project.max-shm-ids |
shminfo_shmmni |
100 |
2 24 |
128 |
| project.max-msg-ids |
msginfo_msgmni |
50 |
224 |
128 |
注意:寫在
/etc/system
檔案中的配置只有重新啟動後才會生效。 B. 可以用項目資料庫( project database )對單個進程或單個項目進行資源分派的設定。項目資料庫的檔案是 /etc/project 。其格式如下: projname:projid:comment:user-list:group-list:attributes 其中: projname------ 給定的項目名稱 Projid-------- 給定的項目標識符 Comment------- 項目說明 User-list----- 使用者列表(表明此使用者使用此設定) Group-list---- 組列表(表明此使用者組的使用者使用此設定) Attributes---- 設定屬性(是 key=value pair ) * 更多詳細資料請查閱參考資料 1 。 C. 用 projects,projadd,projmod,projdel,prctl 進行系統資源的配置。 其中: project 用於查看已經配置的 project 參數 projadd 用於建立 project projmod 用於修改 project 中的屬性值 projdel 用於刪除 project prctl 用於動態設定系統資源配置(增,刪,改)
注意:用
proj*
設定的值都會自動寫入到
/etc/project
檔案裡。而
prctl
設定的值在系統重新啟動後就會丟失(需要重新設定)。關於
proj*
命令的用法請看手冊
(
例如:
#man projadd).
二、
Oracle
中系統資源的調整 A. 用 proj 系列命令來對 Oracle 安裝時的參數進行設定管理 在 Oracle 安裝時下表中的這些參數是需要進行設定的。下面就具體的在 Solaris10 下面一步一步的設定這些值。這些值要 root 使用者或者有相同許可權的使用者進行設定。 ( 假設已經建好了一個 oracle 使用者 )
| semsys:seminfo_semmni |
project.max-sem-ids |
100 |
| semsys:seminfo_semmsl |
process.max-sem-nsems |
256 |
| shmsys:shminfo_shmmax |
project.max-shm-memory |
4294967295 |
| shmsys:shminfo_shmni |
project.max-shm-ids |
100 |
A