上午闲着没有事情收集了一些关于linux系统消息队列的资料,整理了一下,做个记号

ipcs -u 可以查看当前消息队列的状况个数

ipcs -l 可以查看当前系统设置的消息队列参数

ipcs  可以显示当前消息队列的情况

ipcrm (ipcrm -q <msqid>) 可以结束某个消息队列

经常有看到报No space left on device 可以通过sysctl.conf调整内核参数来增加消息队列的长度

kernel.msgmnb   =   65536
kernel.msgmni   =   64
kernel.msgmax   =   8192

MSGMNB
每个消息队列的最大字节限制。
MSGMNI
整个系统的最大数量的消息队列。
MSGGSZ
消息片断的大小(字节)。大于该值的消息被分割成多个片断。
MSGSEG
在单个队列里能存在的最大数量的消息片断。
MSGTQL
整个系统的最大数量的消息。
MSGMAX
单个消息的最大size。在某些操作系统例如BSD中,你不必设置这个。BSD自动设置它为MSGSSZ * MSGSEG。其他操作系统中,你也许需要改变这个参数的默认值,你可以设置它与MSGMNB相同。
SHMSEG
每个进程的最大数量的共享内存片断。
SHMMNI
共享内存片断数量的系统级的限制。
SHMMAX
单个共享内存片断的最大size。
SHMALL
可分配的共享内存数量的系统级限制。在某些系统上,SHMALL可能表示成页数量,而不是字节数量。