Linux系统中的ipcs命令使用详解
用途
报告进程间通信设施状态。
语法
-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出信号量(semaphore)的信息
# ipcs -m
ipc status from as of 2007年04月10日 星期二 18时32分18秒 cst
t id key mode owner group
shared memory:
m 0 0x50000d43 --rw-r--r-- root root
m 501 0x1e90c97c --rw-r----- oracle dba
ipcrm - 删除ipc(清除共享内存信息)
引用
它的语法:
-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出信号量(semaphore)的信息
shm_id 共享内存id
#ipcrm -m 501
描述
ipcs 命令往标准输出写入一些关于活动进程间通信设施的信息。如果没有指定任何标志,ipcs 命令用简短格式写入一些关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。
列标题和在 ipcs 命令中的列的含义列在下面。圆括号内的字母表示导致对应的报头出现的标志。all 设计符表示始终显示报头。这些标志仅仅确定提供给每个设备何种信息。但它们并不确定将列出哪些设备。
ipcs查看消息队列命令
isd_1_3_sles10_64:/usr/local/services/httpd/bin # ipcs -ql
------ messages: limits --------
max queues system wide =16
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536
------------------------------------
修改消息队列大小:
root:用户: /etc/sysctl.conf</p> <p>kernel.msgmnb =4203520
#kernel.msgmnb =3520
kernel.msgmni = 2878
保存后需要执行 sysctl -p ,然后重建所有消息队列
ipcs -q : 显示所有的消息队列
ipcs -qt : 显示消息队列的创建时间,发送和接收最后一条消息的时间
goosns@[192.168.99.90:/hai]$ ipcs -qt
------ message queues send/recv/change times --------
msqid owner send recv change
65536 mas not set not set may 15 15:56:39
98305 mas may 15 15:59:22 may 15 15:59:22 may 15 15:56:39
ipcs -qp: 显示往消息队列中放消息和从消息队列中取消息的进程id
goosns@[192.168.99.90:/hai]$ ipcs -qp
------ message queues pids --------
msqid owner lspid lrpid
65536 mas 0 0
98305 mas 21941 21941
ipcs -q -i msgid: 显示该消息队列结构体中的消息信息:
goosns@[192.168.99.90:/hai]$ ipcs -q -i 98305
message queue msqid=98305
uid=512 gid=500 cuid=512 cgid=500 mode=0600
cbytes=0 qbytes=4203520 qnum=0 lspid=21941 lrpid=21941
send_time=thu may 15 16:00:19 2008
rcv_time=thu may 15 16:00:19 2008
change_time=thu may 15 15:56:39 2008
ipcs -ql : 显示消息队列的限制信息:
goosns@[192.168.99.90:/hai]$ ipcs -ql
------ messages: limits --------
max queues system wide = 2878 //最大进程数
max size of message (bytes) = 8192 //队列中最大消息长度
default max size of queue (bytes) = 4203520