linux
預設設定只適合小安裝(預設最大共享記憶體是 32 mb)。不過,其它的預設值都相當大, 通常不需要改變。最大的共享記憶體段設定可以用 sysctl 介面設定。 比如,要允許 128 mb,並且最大的總共享記憶體數為 2097152 頁(預設):
sysctl -w kernel.shmmax=134217728
sysctl -w kernel.shmall=2097152
你可以把這些設定放到 /etc/sysctl.conf 裡,在重啟後保持有效。
老版本裡可能沒有 sysctl 程式, 但是同樣的改變可以通過操作 /proc 檔案系統來做:
echo 134217728 >/proc/sys/kernel/shmmax
echo 2097152 >/proc/sys/kernel/shmall
另外可行的方法:
修改方法如下:修改/etc/rc.d/rc.local檔案。
在檔案的前面注釋的後面加入以下行:
#修改核心共享記憶體大小;
echo134217728>/proc/sys/kernel/shmmax;
#說明:這裡的值為記憶體的一半;
#如果系統記憶體是256m,則值為134217728;
#如果系統記憶體是512m,則值為268435456;
修改完成以後,重起機器就搞定。
Linux 共享記憶體
一 概念 共享記憶體是被多個程序共享的一部分物理記憶體,是程序間共享資料的最快的一種方法。二 實現 分為兩個步驟 1 建立共享記憶體。2 對映共享記憶體。1 建立 int shmget key t key,int size,int shm 當key的取值為 ipc private 時,將建立一塊新的...
linux共享記憶體
linux共享記憶體使用 標頭檔案 include 1 建立共享記憶體 int shmget key t key,size t size,int shm 建立成功以後會返回乙個共享記憶體id,建立失敗返回 1。2 獲取共享記憶體 void shmat int shmid,const void shm...
linux 共享記憶體
共享記憶體解決的問題是 任意兩個程序之間的通訊如果是有名管道,是沒有辦法對管道中間的資料獲取讀和寫操作的,只能是兩段的資料,那麼如何對所有的資料進行操作 共享記憶體 共享記憶體也是通過核心來完成 命令 ipcs m p s 共享記憶體的工作機制如下所示 首先linux系統執行的每乙個程式,都是乙個程...