could not create semaphores: No space left on device
阿新 • • 發佈:2021-08-31
在postgres中,當max_connect設定過大,啟動的時候會報錯:
FATAL: could not create semaphores: No space left on device
建立semaphores時空間引數不夠,查詢官網,有這麼一段解釋:
HINT: This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.
The PostgreSQL documentation contains more information about configuring your system for PostgreSQL.
解決的方法是改小max_connect,當業務不允許的情況下,修改核心引數,max_connect相關的核心引數有:
下面介紹如何修改核心引數
# ipcs -ls ------ Semaphore Limits -------- max number of arrays = 1280 max semaphores per array = 50100 max semaphores system wide = 64128000 max ops per semop call = 50100 semaphore max value = 32767 # cat /proc/sys/kernel/sem SEMMSL SEMMNS SEMOPM SEMMNI 50100 128256000 50100 2560