[英]How to increase open file descriptors for Asterisk running on Ubuntu
我遇到了這個,我發現只有一篇關於這個的帖子有修復,但不是那么清楚,而且已經有幾年了。
Ubuntu 20.04 星號 16.9
錯誤信息:
[Jul 20 21:37:16] WARNING[1742] alertpipe.c: Failed to create alert pipe with eventfd(), falling back to pipe(): Too many open files
[Jul 20 21:37:16] WARNING[1742] alertpipe.c: Failed to create alert pipe: Too many open files
星號 PID:1130
檢查進程的限制。 最大打開文件軟限制為 1024
root@trueringless-asterisk:/home/esundberg# cat /proc/1130/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 64057 64057 processes
Max open files 1024 4096 files
Max locked memory 16777216 16777216 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 64057 64057 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
編輯 /etc/asterisk/asterisk.conf
[options]
maxfiles = 4096 ; Maximum amount of openfiles.
停止星號進程
# systemctl stop asterisk
確保星號已停止
# ps -ef | grep asterisk
啟動星號進程
# systemctl start asterisk
獲取新的星號 PID
# ps -ef | grep asterisk
root 4925* 1 16 05:07 ? 00:00:00 /usr/sbin/asterisk
檢查他們現在在 4096 的文件限制的進程
# cat /proc/4925/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 64057 64057 processes
Max open files 4096 4096 files
Max locked memory 16777216 16777216 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 64057 64057 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
最簡單的解決方案是重寫您用於啟動星號或 /usr/sbin/safe_asterisk.sh 腳本的 systemd 或 init.d 腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.