Debian 8에서 Asterisk 13.11.2에 열린 파일 제한에 도달하면 충돌이 발생하는 문제가 있습니다.
bridge_channel.c: Can't create pipe! Try increasing max file descriptors with ulimit -n
다음 명령을 사용하여 제한을 65536에서 150000으로 성공적으로 늘렸습니다./etc/security/limits.conf
다음을 추가했습니다.
root soft nofile 150000
root hard nofile 150000
* soft nofile 150000
* hard nofile 150000
이제 결과 ulimit -n
는 150000입니다.
별표 처리의 한계를 확인하려고 할 때cat /proc/xxx/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 31945 31945 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 31945 31945 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
이 문제를 어떻게 해결하나요?
답변1
/usr/sbin/safe_asterisk에서 MAXFILES 값을 주석 해제하고 변경합니다.
예: 최대 파일 수 = 150000
파일을 저장하고 별표를 다시 시작하십시오.
완벽한
답변2
귀하의 시스템이 무시 를 사용하고 있는 것 같습니다 . 대신 /etc/security/limits.conf
별표 서비스 파일( /etc/systemd/system/asterisk.service
또는 /lib/systemd/system/asterisk.service
당신은 추가하고 싶을 수도 있습니다
LimitNOFILE=150000
다음 Asterisk 업데이트로 변경 사항을 덮어쓸 위험이 있으므로 Asterisk와 함께 제공되는 파일을 편집하지 않을 수도 있습니다. 대신 /etc/systemd/system/asterisk.d/10-file-descriptors.conf
위의 줄을 사용하여 파일을 만드는 것이 좋습니다 . 그러면 Systemd는 구성에 따라 공식 서비스 파일을 자동으로 보강합니다.