修改
kernel.msgmni=1000
kernel.msgmax=81920
kernel.msgmnb=163840
MSGMNB
每个消息队列的最大字节限制。该文件指定一个消息队列的最大长度(bytes)。
MSGMNI
整个系统的最大数量的消息队列。该文件指定消息队列标识的最大数目,即系统范围内最大多少个消息队列。
MSGGSZ
消息片断的大小(字节)。大于该值的消息被分割成多个片断。
MSGSEG
在单个队列里能存在的最大数量的消息片断。
MSGTQL
整个系统的最大数量的消息。
MSGMAX
单个消息的最大size。在某些操作系统例如BSD中,你不必设置这个。BSD自动设置它为MSGSSZ * MSGSEG。其他操作系统中,你也许需要改变这个参数的默认值,你可以设置它与MSGMNB相同。该文件指定了从一个进程发送到另一个进程的消息的最大长度(bytes)。进程间的消息传递是在内核的内存中进行的,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。
SHMSEG
每个进程的最大数量的共享内存片断。
SHMMNI
共享内存片断数量的系统级的限制。
SHMMAX
单个共享内存片断的最大size。
SHMALL
可分配的共享内存数量的系统级限制。在某些系统上,SHMALL可能表示成页数量,而不是字节数量
[root@www ~]# ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 67108864
max total shared memory (kbytes) = 17179869184
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 = 900000 =========MSGMNI //整个系统的最大数量的消息队列。
max size of message (bytes) = 65536 =========msgmax //单个消息的最大size。
default max size of queue (bytes) = 655360000 =====msgmnb //每个消息队列的最大字节限制。
[root@www ~]# ipcs -u
------ Shared Memory Status --------
segments allocated 1
pages allocated 8192
pages resident 2
pages swapped 0
Swap performance: 0 attempts 0 successes
------ Semaphore Status --------
used arrays = 4
allocated semaphores = 4
------ Messages: Status --------
allocated queues = 3
used headers = 0
used space = 0 bytes