|
今天是2014-01-06,在没过春节之前重新复习一下2013年学习的内容,关于oracle内存段在我之前写的blog中有详细操作。在此记录一下ipcs命令的用法。 http://blog.iyunv.com/xiaohai20102010/article/details/9634099 ipcs 命令用途报告进程间通信设施状态。 语法ipcs [ -m] [ -q] [ -s] [ -S] [ -P] [ -l] [ -a | -b-c-o-p-t] [ -T] [ -C CoreFile] [ -N Kernel ] 描述ipcs 命令往标准输出写入一些关于活动进程间通信设施的信息。如果没有指定任何标志,ipcs 命令用简短格式写入一些关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。 列标题和在 ipcs 命令中的列的含义列在下面。圆括号内的字母表示导致对应的报头出现的标志。all 设计符表示始终显示报头。这些标志仅仅确定提供给每个设备何种信息。但它们并不确定将列出哪些设备。 | T | (all)设施的类型。共有三种设施类型:q消息队列m共享内存段s信号量 | | ID | (all)设施项的标识。 | | KEY | (all)用作 msgget 子例程、semget 子例程或者 shmget 子例程的参数的键构成了设施项。
注: 当删除内存段时,共享内存段的密钥改变为 IPC_PRIVATE,直到所有附加在段上的进程和它拆离。 | | MODE | (all)设施访问方式和标志。这种方式由 11 个字符组成,解释如下: 前两个字符如下所示: R如果进程在等待 msgrcv 系统调用。S如果进程在等待 msgsnd 系统调用。D如果有关的共享内存段被删除。当附加在段上的最后一个进程拆离后它就会消失。C当第一个附加进程运行时,如果有关的共享内存段被清空。-如果没有设置相应的特定标志。接下来的九个字符作为每三个一组解释。第一组是指拥有者有许可权;第二组是指在设施项的用户组中其他用户的许可权;最后一组指所有的用户。在每组中,第一个字符表示允许读,第二个字符表示可以写或者修改设施项,最后一个字符当前没有用过。 权限如下所示: r如果授予了读许可权。w如果授予了写许可权。a如果授予了修改许可权。-如果没有授予指定的许可权。 | | OWNER | (all)设施项所有者的登录名。 | | GROUP | (all)拥有设施项的组名。 | | CREATOR | (a、c)设施项创建者的登录名。 | | CGROUP | (a、c)设施项创建者的组名。
注: 对于 OWNER、GROUP、CREATOR 和 CGROUP,显示用户和组的标识而不显示登录名。 | | CBYTES | (a、o)当前停留在相关消息队列中的消息的字节数。 | | QNUM | (a、o)当前停留在相关消息队列中的消息的字节数。 | | QBYTES | (a、b)停留在相关消息队列中消息允许的最大字节数。 | | LSPID | (a、p)发送消息到相关队列的最后进程的标识。如果发送的最后一条消息是来自节点上的进程而不是保留该节点的队列,LSPID 是真正把消息放进队列的内核进程的 PID,而不是发送进程的 PID。 | | LRPID | (a、p)接收来自相关队列的消息的进程标识。如果接收的最后一条消息来自一个节点上的进程而不是保留该队列的节点,LRPID 是真正接收队列上消息的内核进程的 PID ,而不是接收进程的 PID。 | | STIME | (a、t)最后一条消息发送到相关队列的时间。对于远程队列,这是服务器时间。没有做任何措施来补偿本地时钟和服务器时钟之间的时区差异。 | | RTIME | (a、t)接受最后一条来自相关队列的消息的时间。对于远程队列来说,这是服务器时间。没有做任何措施来补偿本地时钟和服务器始终之间的时区差异。 | | CTIME | (a、t)创建和改变相关项的时间。对于远程队列,这是服务器时间。没有做任何措施来本地时钟和服务器时钟之间的任何时区差异。 | | NATTCH | (a、o)连接在关联的共享内存段的进程数。 | | SEGSZ | (a、b)关联的共享内存段的大小。 | | CPID | (a、p)共享内存项的创建程序的进程标识。 | | LPID | (a、p)连接或者拆离共享内存段的最后一个进程的标识。 | | ATIME | (a、t)最后一次与关联的共享内存段完成连接的时间。 | | DTIME | (a、t)最后一次与关联的共享内存段完成拆离的时间。 | | NSEMS | (a、b)在与信号项相关联的信号集中的信号量数量。 | | OTIME | (a、t)在关联的信号量中完成信号量操作的时间。 | | SID | (S)共享内存段的标识。SID 可以用作 svmon -S 命令的输入。 |
该命令支持多字节字符集。 标志
| -a | 使用 -b、-c、-o、-p 和 -t 标志。 | | -b | 写入消息队列的队列上消息的最大字节数、共享内存段的大小、每个信号量集中信号量的数量。 | | -c | 写入构建该设施的用户的登录名和组名称。 | | -CCoreFile | 用由 CoreFile 参数指定的文件来代替 /dev/mem 文件。CoreFile 参数是由 Ctrl-(left)Alt-Pad1 按键顺序创建的内存映像文件。 | | -l | 当和 -S 标志一起使用时,该标志写入未展开的 SID 列表。 | | -m | 写入一些关于活动共享内存段的信息。 | | -NKernel | 用指定的 Kernel( /usr/lib/boot/unix 文件是缺省的)。 | | -o | 写以下的使用信息:- 队列上的消息数
- 消息队列上消息的总字节数
- 连接在共享内存段上的进程数
| | -p | 写进程编号的信息:- 最后接收消息队列上消息的进程号
- 最后在消息队列上发送消息的进程号
- 创建进程的进程号
- 最后一个连接或拆离共享内存段的进程编号
| | -P | 写入与共享内存标识有关的 SID(段标识)列表,以及保留在那个段中的字节数,和段是否已启用大页的标志符。如果段支持大页面,就显示一个 'Y',否则显示一个 '-'。 | | -q | 写入一些关于活动消息队列的信息。 | | -s | 写入一些关于活动信号量集的信息。 | | -S | 写入连接在共享内存标识上的 SID 列表。 | | -t | 写入时间信息:- 最后一次更改所有设备访问许可权的控制操作的时间。
- 消息队列上最后一次执行 msgsnd 和 msgrcv 的时间。
- 共享内存上最后一次执行 shmat 和 shmdt 的时间。
- 在信号量集上最后一次执行 semop 的时间。
| | -T | 写入带有日期的 -t 标记的输出。 | 注:
- 如果用户指定 -C 或者 -N 标记,实型和有效的 UID/GID 设置为调用 ipcs 的用户的实型 UID/GID。
- 当运行 ipcs 时可以更改值;仅当检索它时它给出的信息才保证是正确的。
示例示例显示输入不带标志的 ipcs:的输出
IPC status from /dev/mem as of Mon Aug 14 15:03:46 1989T ID KEY MODE OWNER GROUPMessage Queues:q 0 0x00010381 -Rrw-rw-rw- root systemq 65537 0x00010307 -Rrw-rw-rw- root systemq 65538 0x00010311 -Rrw-rw-rw- root systemq 65539 0x0001032f -Rrw-rw-rw- root systemq 65540 0x0001031b -Rrw-rw-rw- root systemq 65541 0x00010339--rw-rw-rw- root systemq 6 0x0002fe03 -Rrw-rw-rw- root systemShared Memory:m 65537 0x00000000 DCrw------- root systemm 720898 0x00010300 -Crw-rw-rw- root systemm 65539 0x00000000 DCrw------- root systemSemaphores:s 131072 0x4d02086a --ra-ra---- root systems 65537 0x00000000 --ra------- root systems 1310722 0x000133d0 --ra------- 7003 30720文件
| /usr/lib/boot/unix | 指定系统内核映像。 | | /dev/mem | 指定内存。 | | /etc/passwd | 指定用户名。 | | /etc/group | 指定组名。 | | /usr/include/sys/ipc.h | 包含头文件。 |
|