unix用ipcrm删掉内存为什么内存占用率没下降
发布网友
发布时间:2022-07-28 15:06
我来回答
共1个回答
热心网友
时间:2023-11-08 18:15
重启uwsgi时失败,遇到以下错误提示:
uwsgi_lock_ipcsem_init()/semget(): No space left on device [core/lock.c line 507]
uwsgi_ipcsem_clear()/semctl(): Invalid argument [core/lock.c line 631]
还以为是某个分区满了,仔细查看后才发现不是。
查资料后找到原因,要加载的文件对应的内存并没有释放,于是用了两个命令:ipcs命令和ipcrm命令
将共享的内存删除后,启动成功。
server:/home/xisxy$ ipcs -sa
Semaphores:
T ID KEY MODE OWNER GROUP CREATOR CGROUP NSEMS OTIME CTIME
s 65536 5432001 --rw------- _postgresql _postgresql _postgresql _postgresql 17 13:01:18 13:01:18
s 65537 5432002 --rw------- _postgresql _postgresql _postgresql _postgresql 17 13:01:18 13:01:18
s 65538 5432003 --rw------- _postgresql _postgresql _postgresql _postgresql 17 1:30:05 13:01:18
s 262147 0 --rw-rw-rw- www www www www 1 no-entry 0:00:52
s 262148 0 --rw-rw-rw- www www www www 1 no-entry 0:00:52
s 262149 0 --rw-rw-rw- www www www www 1 no-entry 0:00:52
s 1966086 0 --rw-rw-rw- www www www www 1 no-entry 19:18:32
s 1966087 0 --rw-rw-rw- www www www www 1 no-entry 19:18:32
s 1966088 0 --rw-rw-rw- www www www www 1 no-entry 19:18:32
server:/home/xisxy$ ipcrm -s 262147
也可以用如下方式,一次全部清理:
for i in `ipcs |grep www|awk '{print $2}'`
do
ipcrm -m $i
ipcrm -s $i
done
共享内存查看清除命令ipcs和ipcrm
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)的信息
删除ipc(清除共享内存信息)