08 共享記憶體

2021-07-10 12:43:12 字數 1156 閱讀 4907

作用

1) 用於通訊。使用共享記憶體通訊比其他通訊方式效率高

2) 儲存日誌等資訊。共享記憶體在程序退出後,可以記錄一些臨終遺言資訊

引數設定

kernel.shmmax 單個共享記憶體段的最大值,一般設定為物理記憶體的一半(記憶體小於4g,可設定為與物理記憶體一樣大;大於4g,可設定為物理記憶體的90%),單位byte

kernel.shmall 共享記憶體頁數

kernel.shmmni 共享記憶體段的最大數量,預設4096 bytes

64g 記憶體

kernel.shmmax = 34359738368 (34359738368 / 1024 / 1024 = 32768mb = 32gb)

kernel.shmall = 8388608 (34359738368 / 4096 = 8388608)

kernel.shmmni = 4096

oracle:

shmmax>=sga(32位系統 1.7g 以上sga 需要注意) 。64位系統,shmmax 設定為大於sga_max_size即可

shmmax(bytes) = shmmni(page size, default 4k) * shmall (page的個數)

修改系統引數

1) 實時生效

sysctl -w kernel.shmall=8388608

sysctl -w kernel.shmmax=34359738368

2) 永久生效

vi /etc/sysctl.conf

kernel.shmall = 8388608

kernel.shmmax = 34359738368

chkconfig -a boot.sysctl

sysctl -p

調整/dev/shm的大小 

1) 檢視大小 

df -h /dev/shm

2) 修改大小 

vi /etc/fstab 

tmpfs /dev/shm tmpfs defaults,size=4096m 0 0

3) 重新掛載 

umount /dev/shm 

mount /dev/shm

4) 檢視修改後的大小 

df -h /dev/shm

Linux共享記憶體及共享記憶體API

共享記憶體區是最快的ipc 程序間通訊 形式。用共享記憶體從伺服器拷貝檔案資料到客戶端 共享記憶體基本api include include 1.int shmget key t key,size t size,int shm 功能 用來建立共享記憶體 key 是這個共享記憶體段的名字 size 共...

mysql共享記憶體 MySQL全域性共享記憶體介紹

前言 全域性共享記憶體則主要是 mysql instance mysqld程序 以及底層儲存引擎用來暫存各種全域性運算及可共享的暫存資訊,如儲存查詢快取的 query cache,快取連線線程的 thread cache,快取表檔案控制代碼資訊的 table cache,快取二進位制日誌的 binl...

mysql共享記憶體 MySQL全域性共享記憶體介紹

前言 全域性共享記憶體則主要是 mysql instance mysqld程序 以及底層儲存引擎用來暫存各種全域性運算及可共享的暫存資訊,如儲存查詢快取的 query cache,快取連線線程的 thread cache,快取表檔案控制代碼資訊的 table cache,快取二進位制日誌的 binl...