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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值