HP-UX 清理共享内存

       在售票系统的自动售票系统中,存放一些结账的一些缓存信息,每天必须更新缓存中信息。在自动售票系统上线一段时间,有时候发现,售票的存根记错,造成严重的影响。经过一段讨论,决定采用HP-UX的crontab的定时更新缓存中共享的记账信息。采用两个基本的命令:ipcs 和ipcrm命令

       unix/linux下的共享内存、信号量、队列信息管理。在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。
    信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况;共享内存是运行在同一台机器上的间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。在Linux系统下 常用的方式是通过shmXXX函数族来实现利用共享内存进行存储的。 Shmget,类似于 malloc函数
ipcs:check the shared memory allocation on a system
ipcrm:manually deallocate shared memory on a system
取得ipc信息:
ipcs [-m|-q|-s]
    -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
#ipcs |grep oracle|awk '{print $2}
501
删除ipc(清除共享内存信息)
ipcrm -m|-q|-s shm_id
%ipcrm -m 501
for i in `ipcs |grep oracle|awk '{print $2}'`
do
ipcrm -m $i
ipcrm -s $i
done
命令示例:
ipcs -aipc
显示当前系统中共享内存段、信号量集、消息队列的使用情况;
ipcs -m
显示共享内存段的使用情况;
ipcs -s
显示信号量集的使用情况;
ipcs -q
显示消息队列的使用情况;
ipcrm
可用来删除对应的共享内存段、信号量、消息队列;
命令示例:
ipcrm -s semid
删除对应的信号量集
ipcrm -m shmid
删除对应的共享内存段
ipcrm -q msqid
删除对应的消息队列
ipcrm本身只能实现单个资源的删除,利用以下命令可实现批量删除(zhangsj
版权所有,呵呵):
1.ipcs -s|grep 用户名
|cut -d" " -f2|xargs -n1 ipcrm -s
2.ipcs -s|awk '/用户名
/{print $2}'|xargs -n1 ipcrm -s
3.ipcs -s|awk '/用户名
/{system("ipcrm -s "$2)}'
4.for i in echo `ipcs|grep 用户名|cut -d" " -f2`; do ipcrm -s $i; done

查看共享信息的内存的命令是ipcs [-m|-s|-q]。
默认会列出共享内存、信号量,队列信息,-m列出共享内存,-s列出共享信号量,-q列出共享队列
清除命令是ipcrm [-m|-s|-q] id。
-m 删除共享内存,-s删除共享信号量,-q删除共享队列。

ipcs可用来显示当前Linux系统中的共享内存段、信号量集、消息队列等的使用情况。

ipcs 命令

用途

报告进程间通信设施状态。

语法

ipcs [ -m ] [ -q ] [ -s ] [ -S ] [ -P ] [ -l ] [ -a | -b -c -o -p -t ] [ -T ] [ -C CoreFile] [ -N Kernel ]

描述

ipcs 命令往标准输出写入一些关于活动进程间通信设施的信息。如果没有指定任何标志,ipcs 命令用简短格式写入一些关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。
列标题和在 ipcs 命令中的列的含义列在下面。圆括号内的字母表示导致对应的报头出现的标志。all 设计符表示始终显示报头。这些标志仅仅确定提供给每个设备何种信息。

NAME   
      ipcs - report status of interprocess communication facilities

SYNOPSIS   
      ipcs [-mqs] [-abcopt] [-C core] [-N namelist]

DESCRIPTION   

      ipcs displays certain information about active interprocess
      communication facilities.  With no options, ipcs displays information
      in short format for the message queues, shared memory segments, and
      semaphores that are currently active in the system.

   
Options   
      The following options restrict the display to the corresponding
      facilities.

           (none)         This is equivalent to -mqs.

           -m             Display information about active shared memory
                          segments.

           -q             Display information about active message queues.

           -s             Display information about active semaphores.

      The following options add columns of data to the display.  See "Column
      Description" below.

           (none)         Display default columns: for all facilities: T,
                          ID, KEY, MODE, OWNER, GROUP.

           -a             Display all columns, as appropriate.  This is
                          equivalent to -bcopt.

           -b             Display largest-allowable-size information: for
                          message queues: QBYTES; for shared memory
                          segments: SEGSZ; for semaphores: NSEMS.

           -c             Display creator's login name and group name: for
                          all facilities: CREATOR, CGROUP.

           -o             Display information on outstanding usage: for
                          message queues: CBYTES, QNUM; for shared memory
                          segments: NATTCH.

           -p             Display process number information: for message
                          queues: LSPID, LRPID; for shared memory segments:
                          CPID, LPID.

           -t             Display time information: for all facilities:
                          CTIME; for message queues: STIME, RTIME;

猜你喜欢

转载自topmanopensource.iteye.com/blog/912179