設置linux 共享內存

我們可以修改shmmax內核參數,使SGA存在於一個共享內存段中。
通過修改/proc/sys/kernel/shmmax參數可以達到此目的。

[root@neirong root]# echo 1073741824 > /proc/sys/kernel/shmmax
[root@neirong root]# more /proc/sys/kernel/shmmax
1073741824

這裏設爲1G。
對於shmmax文件的修改,系統重新啓動後會復位。可以通過修改 /etc/sysctl.conf 使更改永久化。
在該文件內添加以下一行 kernel.shmmax = 1073741824 這個更改在系統重新啓動後生效.

1、設置 SHMMAX

SHMMAX 參數定義共享內存段的最大尺寸(以字節爲單位)。在設置 SHMMAX 時,切記 SGA 的大小應該適合於一個共享內存段。 SHMMAX 設置不足可能會導致以下問題:

ORA-27123:unable to attach to shared memory segment

您可以通過執行以下命令來確定 SHMMAX 的值:

# cat /proc/sys/kernel/shmmax

33554432

SHMMAX 的默認值是 32MB 。我一般使用下列方法之一種將 SHMMAX 參數設爲 2GB :

通過直接更改 /proc 文件系統,你不需重新啓動機器就可以改變 SHMMAX 的默認設置。我使用的方法是將以下命令放入 /etc/rc.local 啓動文件中:
# >echo "2147483648" > /proc/sys/kernel/shmmax

您還可以使用 sysctl 命令來更改 SHMMAX 的值:
# sysctl -w kernel.shmmax=2147483648

最後,通過將該內核參數插入到 /etc/sysctl.conf 啓動文件中,您可以使這種更改永久有效:
# echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf

2、設置 SHMMNI

我們現在來看 SHMMNI 參數。這個內核參數用於設置系統範圍內共享內存段的最大數量。該參數的默認值是 4096 。這一數值已經足夠,通常不需要更改。

您可以通過執行以下命令來確定 SHMMNI 的值:

# cat /proc/sys/kernel/shmmni

4096

3、設置 SHMALL

最後,我們來看 SHMALL 共享內存內核參數。該參數控制着系統一次可以使用的共享內存總量(以頁爲單位)。簡言之,該參數的值始終應該至少爲:

ceil(SHMMAX/PAGE_SIZE)

SHMALL 的默認大小爲 2097152 ,可以使用以下命令進行查詢:

# cat /proc/sys/kernel/shmall

2097152

SHMALL 的默認設置對於我們的 Oracle9 i RAC 安裝來說應該足夠使用。

注意: 在 i386 平臺上 Red Hat Linux 的 頁面大小 爲 4096 字節。但是,您可以使用 bigpages ,它支持配置更大的內存頁面尺寸

 

http://blogold.chinaunix.net/u2/65667/showart_518459.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章