カーネルのshmallとshmmaxパラメータ
2658 ワード
変更/etc/sysctl.confの場合、注意しなければならないことはいくつかあります.
名前
説明
合理的に値を取る.
SHMMAX
最大共有メモリセグメントサイズ(バイト)
250kB + 8.2 kB * shared_buffers + 14.2 kB * max_connections無限大まで
SHMMIN
最小共有メモリセグメントサイズ(バイト)
1
SHMALL
使用可能な共有メモリの合計数(バイトまたはページ)
バイトならSHMMAXと同じです.ページの場合、ceil(SHMMAX/PAGE_SIZE)
SHMSEG
プロセスあたりの最大共有メモリセグメント数
1つのセグメントしか必要ありませんが、デフォルトはこれよりずっと高いです.
SHMMNI
システム範囲の最大共有メモリセグメント数
SHMSEGのように他のアプリケーションのための空間を加えます
SEMMNI
信号識別子の最小数(すなわち、スリーブ)
少なくともceil(max_connections/16)
SEMMNS
システム範囲の最大信号数
Ceil(max_connections/16)*17に他のアプリケーション用のスペースを追加
SEMMSL
1セットあたりの最小信号数
少なくとも17
SEMMAP
信号マッピングのレコード数
参照テキスト
SEMVMX
信号の最大値
少なくとも1000(デフォルトは通常32767ですが、強制されない限り変更しないでください)
shmallはすべて使用可能な共有メモリサイズです.
shmmaxは、メモリの90%に設定できる単一セグメントで使用可能なサイズです.
例えば16 Gメモリ、16*1024*1024*1024*1024*90%=15461882265、
shmallの大きさは15461882265/4 k(getconf PAGESIZEが入手可能)=3774873であった.
変更
#vi /etc/sysctl.conf
結果はipcs-lで見ることができます.ipcs-uは実際に使用されている状況を見ることができます.
#ipcs -l
名前
説明
合理的に値を取る.
SHMMAX
最大共有メモリセグメントサイズ(バイト)
250kB + 8.2 kB * shared_buffers + 14.2 kB * max_connections無限大まで
SHMMIN
最小共有メモリセグメントサイズ(バイト)
1
SHMALL
使用可能な共有メモリの合計数(バイトまたはページ)
バイトならSHMMAXと同じです.ページの場合、ceil(SHMMAX/PAGE_SIZE)
SHMSEG
プロセスあたりの最大共有メモリセグメント数
1つのセグメントしか必要ありませんが、デフォルトはこれよりずっと高いです.
SHMMNI
システム範囲の最大共有メモリセグメント数
SHMSEGのように他のアプリケーションのための空間を加えます
SEMMNI
信号識別子の最小数(すなわち、スリーブ)
少なくともceil(max_connections/16)
SEMMNS
システム範囲の最大信号数
Ceil(max_connections/16)*17に他のアプリケーション用のスペースを追加
SEMMSL
1セットあたりの最小信号数
少なくとも17
SEMMAP
信号マッピングのレコード数
参照テキスト
SEMVMX
信号の最大値
少なくとも1000(デフォルトは通常32767ですが、強制されない限り変更しないでください)
shmallはすべて使用可能な共有メモリサイズです.
shmmaxは、メモリの90%に設定できる単一セグメントで使用可能なサイズです.
例えば16 Gメモリ、16*1024*1024*1024*1024*90%=15461882265、
shmallの大きさは15461882265/4 k(getconf PAGESIZEが入手可能)=3774873であった.
変更
#vi /etc/sysctl.conf
kernel.shmmax=15461882265
kernel.shmall=3774873
kernel.msgmax=65535
kernel.msgmnb=65535
#sudo sysctl -p
結果はipcs-lで見ることができます.ipcs-uは実際に使用されている状況を見ることができます.
#ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 15099494
max total shared memory (kbytes) = 15097856
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 8192
DEFAULT max size of queue (bytes) = 16384
kernel.shmmax ;kernel.shmall 。 32 , =4k, 4096 。
kernel.shmall = 2097152 2097152*4k/1024/1024 = 8G 8G。
kernel.shmall = 2097152 --- 8G
kernel.shmall = 4194304 --- 16G
kernel.shmall = 8388608 --- 32G
kernel.shmall = 16777216 --- 64G