重啟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)的資訊
重啟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)的資訊