HP-UX 清理共享内存
????? ?在售票系统的自动售票系统中,存放一些结账的一些缓存信息,每天必须更新缓存中信息。在自动售票系统上线一段时间,有时候发现,售票的存根记错,造成严重的影响。经过一段讨论,决定采用HP-UX的crontab的定时更新缓存中共享的记账信息。采用两个基本的命令:ipcs 和ipcrm命令
?????? unix/linux下的共享内存、信号量、队列信息管理。在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。??? 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况;共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。在Linux系统下 ,常用的方式是通过shmXXX函数族来实现利用共享内存进行存储的。 如Shmget,类似于 malloc函数 ipcs:check the shared memory allocation on a systemipcrm: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|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系统中的共享内存段、信号量集、消息队列等的使用情况。
?????????? (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;
?
?
?