回覆列表
  • 1 # 使用者9538035845626

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

  • 中秋節和大豐收的關聯?
  • 蘇德戰爭中,蘇聯為何損失2000多萬平民?