ipcs ipcrm命令詳解

2021-12-30 03:07:13 字數 1904 閱讀 9925

多程序間通訊常用的技術手段包括共享記憶體、訊息佇列、訊號量等等,linux系統下自帶的ipcs命令是乙個極好的工具,可以幫助我們檢視當前系統下以上三項的使用情況,從而利於定位多程序通訊**現的通訊問題。目前也有一些帖子介紹ipcs命令的使用方法,但是介紹較簡單不夠全面,下面我根據個人的使用經驗詳細介紹下ipcs命令的使用方法。

ipcs -h可以檢視該命令的使用幫助:

ipcs -a命令可以檢視當前使用的共享記憶體、訊息佇列及訊號量所有資訊,對於該選項對應的結果,介紹以下幾個部分:

1、訊號量在建立時分訊號量集和訊號量的概念,該命令的查詢結果中,semaphore arrays下面每一行代表乙個訊號量集,其中perms對應訊號量集的許可權,nsems對應訊號量集中訊號量的個數,對於訊號量集的建立方法可以查詢semctl相關的函式使用方法。

2、對於訊息佇列message queues而言,可以看到msqid對應建立佇列時得到的id值,從messages中可以看到當前佇列中存在的訊息個數,從used_bytes中可以看到當前所有訊息占用的位元組數,所以單個訊息的位元組數則為總位元組數除以訊息數,同時如果訊息個數不為零則說明訊息佇列中的訊息沒有得到及時處理,可以據此判斷是否存在佇列阻塞的風險。

ipcs -p命令可以得到與共享記憶體、訊息佇列相關程序之間的訊息。對於此選項,有如下介紹:

1、從該命令結果中可以看到message queues pids中的msqid既對應上條命令結果中的訊息佇列id,根據id則可以獲取到lspid、lrpid訊息,其中lspid代表最近一次向訊息佇列中傳送訊息的「程序號」,lrpid對應最近一次從訊息佇列中讀取訊息的「程序號」。但請注意:此處的程序號是弱程序號,既它有可能代表的是執行緒號,如果程序中是起的執行緒對訊息佇列傳送、接收訊息,則此處pid對應的均是執行緒號。可以採用ps -al | grep pid來查詢該執行緒對應的程序id。

ipcs -u命令可以檢視各個資源的使用總結資訊,其中可以看到使用的訊號量集的個數、訊號量的個數,以及訊息佇列中當前使用的訊息個數總數、占用的空間位元組數。

ipcs -l命令可以檢視各個資源的系統限制資訊,可以看到系統允許的最大訊號量集及訊號量個數限制、最大的訊息佇列中訊息個數等資訊。

1、從中可以看到以下訊號量的限制資訊,其中訊號量集最大個數為128、每個訊號量集中訊號量最大個數為250、所有訊號量最大個數為32000、每個訊號量可以被同時呼叫的次數為32,這些引數是linux系統下的預設引數,對於限制引數也可以做一定程度的優化,會有一定程度上效能的提公升,具體優化方法可以搜尋相關帖子。

ipcs命令常用的功能已經做了較為詳細的解釋,如果還有不明白的地方我們一起探索。

ipcrm 命令

移除乙個訊息物件。或者共享記憶體段,或者乙個訊號集,同時會將與ipc物件相關鏈的資料也一起移除。當然,只有超級管理員,或者ipc物件的建立者才有這項權利啦

ipcrm用法

ipcrm -m shmkey 移除用shmkey建立的共享記憶體段

ipcrm -m shmid 移除用shmid標識的共享記憶體段

ipcrm -q msgkey 移除用msqkey建立的訊息佇列

ipcrm -q msqid 移除用msqid標識的訊息佇列

ipcrm -s semkey 移除用semkey建立的訊號

ipcrm -s semid 移除用semid標識的訊號

iptable 詳解 iptable命令詳解1

p protocal protocol 協議 j jump target i in inte ce name 入口 o out inte ce name 出口 f,fragment 分片 指定 p tcp時 source port port port 原埠 也作 sport destionation...

UNIX crontab命令詳解

crontab命令的功能是在一定的時間間隔排程一些命令的執行。在 etc目錄下有乙個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。crontab命令有三種形式的命令列結構 crontab u user file crontab u user e l...

mount命令詳解

名稱 mount 使用許可權 系統管理者或 etc fstab中允許的使用者 使用方式 mount hv mount a ffnrsvw t vfstype mount fnrsvw o options device dir mount fnrsvw t vfstype o options devi...