/etc/sysctl.conf
修改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 //每個訊息佇列的最大位元組限制。
訊息佇列 訊息佇列
輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...
訊息佇列 訊息佇列 kafka
kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...
IPC通訊 Posix訊息佇列的屬性設定
posix訊息佇列的屬性使用如下結構存放 struct mq attr 佇列可以在建立時由mq open 函式的第四個引數指定mq maxmsg,mq msgsize。如建立時沒有指定則使用預設值,一旦建立,則不可再改變。佇列可以在建立後由mq setattr 函式設定mq flags includ...