当前位置:   article > 正文

linux 调整shmmni,Linux中修改shmmax的方法

linux semmni修改

Red Hat and SUSE LinuxThe following information can be used to determine if there are any

necessary changes required for your system.

The following is the output

from the ipcs -l command. Comments have been added

following the // to show what the parameter names are.

# ipcs -l

------ Shared Memory Limits --------

max number of segments = 4096 // SHMMNI

max seg size (kbytes) = 32768 // SHMMAX

max total shared memory (kbytes) = 8388608 // SHMALL

min seg size (bytes) = 1

------ Semaphore Limits --------

max number of arrays = 1024 // SEMMNI

max semaphores per array = 250 // SEMMSL

max semaphores system wide = 256000 // SEMMNS

max ops per semop call = 32 // SEMOPM

semaphore max value = 32767

------ Messages: Limits --------

max queues system wide = 1024 // MSGMNI

max size of message (bytes) = 65536 // MSGMAX

default max size of queue (bytes) = 65536 // MSGMNB

Beginning

with the first section on Shared Memory Limits, SHMMAX and SHMALL are the

parameters that need to be looked at. SHMMAX is the maximum size of a shared

memory segment on a Linux system whereas SHMALL is the maximum allocation

of shared memory pages on a system.

For SHMMAX, the minimum required

on x86 systems would be 268435456 (256 MB) and for 64-bit systems, it would

be 1073741824 (1 GB).

SHMALL is set to 8 GB by default (8388608 KB =

8 GB). If you have more physical memory than this, and it is to be used

for DB2, then this parameter should be increased to approximately 90%

of the physical memory as specified for your computer. For instance, if

you have a computer system with 16 GB of memory to be used primarily for DB2,

then 90% of 16 GB is 14.4 GB divided by 4 KB (the base page size)

is 3774873. The ipcs output has converted SHMALL into kilobytes. The kernel

requires this value as a number of pages.

The next section covers the amount of semaphores available to the operating

system. The kernel parameter sem consists of 4 tokens, SEMMSL, SEMMNS, SEMOPM

and SEMMNI. SEMMNS is the result of SEMMSL multiplied by SEMMNI. The database

manager requires that the number of arrays (SEMMNI) be increased as necessary.

Typically, SEMMNI should be twice the maximum number of connections allowed

(MAXAGENTS) multiplied by the number of logical partitions on the database

server computer plus the number of local application connections on the database

server computer.

The third section covers messages on the system.

MSGMNI affects the number of agents that can be started, MSGMAX affects the

size of the message that can be sent in a queue, and MSGMNB affects the size

of the queue.

MSGMAX should be change to 64 KB (that is,

65535 bytes), and MSGMNB should be increased to 65535 on Server systems.

To modify these kernel parameters, we need to edit the /etc/sysctl.conf file. If this file does not exist, it should be created.

The following lines are examples of what should be placed into the file:

kernel.sem=250 256000 32 1024

#Example shmmax for a 64-bit system

kernel.shmmax=1073741824

#Example shmall for 90 percent of 16 GB memory

kernel.shmall=3774873

kernel.msgmax=65535

kernel.msgmnb=65535

Run sysctl with -p parameter to load in sysctl settings

from the default file /etc/sysctl.conf.

sysctl -p

To make the changes effective after every reboot, boot.sysctl needs to be active on SUSE Linux. On Red

Hat, the rc.sysinit initialization script will

read the /etc/sysctl.conf file automatically.

转自: %2Fcom.ibm.db2.udb.uprun.doc%2Fdoc%2Ft0008238.htm

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/221111?site
推荐阅读
相关标签
  

闽ICP备14008679号