Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1450000
  • 博文数量: 263
  • 博客积分: 10851
  • 博客等级: 上将
  • 技术积分: 2627
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-26 22:40
文章分类

全部博文(263)

文章存档

2013年(4)

2012年(25)

2011年(33)

2010年(50)

2009年(138)

2008年(13)

分类: LINUX

2009-05-24 23:49:43

ipcs / ipcrm 的用法
 
今天突然收到某到机器的swap为0 的告警, 登录服务器后发现, 这个服务器上并没有服务对外提供,使用free -m发现剩余的swap的确为0, 这会是什么原因呢?
使用top , 发现正在运行的进程的内存占用情况都很低, 继续困惑。 突然想起之前的几例swap用光的案例, 好像都是因为共享内存开的太大且没有使用造成的,
故ipcs一看, 我的亲, 发现共享内存开的多而大, 且nattach的数目都为0, ipcs -mp , ps -ewwf | grep $cpid 发现进程也都不存在。
估计是使用共享内存的进程已经退出, 但是这些共享内存又没有清除, 所以这些共享内存占用的内存页面长时间没有处于活动状态, 所以都交换到swap分区里去了
然后造成swap分区用光。

ipcs 打印出目前正在使用的共享内存, 消息队列,还有 Semaphore Arrays 的信息
ipcs -mt 查看共享内存的时间 
ipcs -mp 查看使用过共享内存的pid
ipcs -m   nattach的意思是 now attach, 表示目前正在使用共享内存的进程数目
shmid   ipcrm -m $shmid
shmkey  ipcrm -M $shmkey
ipcs -m | grep $user | awk '$6>0{ print $2 }' | xargs -n 1 ipcrm -m

swap跟某个进程没有直接的关系
 

man shmctl  发现通过这个系统调用, 还可以知道这些共享内存有多少使用的物理内存, 有多少使用的swap
阅读(3303) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~