shm_attach() 引起 No space left on device

来源:互联网 发布:linux取证命令 编辑:程序博客网 时间:2024/06/04 21:14

今天在调用shm_attach函数时返回No space left on device,查看官方文档说是共享内存已经被占光了。

用命令ipcs -mu查看已经分配的共享内存数和ipcs -ml查看最大共享内存数量,发现segments allocated和max number of segments大小相等。

[root@localhost ~]# ipcs -ml------ Shared Memory Limits --------max number of segments = 4096max seg size (kbytes) = 4194303max total shared memory (kbytes) = 1073741824min seg size (bytes) = 1[root@localhost ~]# ipcs -mu------ Shared Memory Status --------segments allocated 4096pages allocated 1440pages resident  684pages swapped   0Swap performance: 0 attempts     0 successes[root@localhost ~]#

用命令ipcs -m -p检查占用共享内存的进程

[root@localhost ~]# ipcs -m -p------ Shared Memory Creator/Last-op --------shmid      owner      cpid       lpid98304      root       1962       1984131073     root       1950       1709163842     root       1979       2271196611     root       1999       1709229380     root       2022       1709262149     root       2244       1709294918     root       1986       1709327687     root       2230       1709360456     root       2019       1709393225     root       1986       1709425994     root       1979       2271458763     root       1998       1709491532     root       2271       2273524301     root       1974       1709557070     root       1974       1709

返回格式为:

shmid      owner      cpid       lpid

一般cpid和lpid是一致的,在ps中查找,如果cpid和lpid都不存在,那么说明这块共享内存是没有被释放的


你可以重启服务器释放共享内存,也可以通过命令释放 ipcrm -m <shmid> 


原创粉丝点击