- Мы используем экземпляр AWS EC2 (ubuntu-xenial-16.04-amd64-server) для запуска сервера PHP Websocket.
Мы используем следующую команду для обеспечения непрерывного функционирования сервера WebSocket.Сервер веб-узлов на экземпляре AWS EC2 не отвечает после двух дней бездействия
поЬир PHP -q server.php>/DEV/нуль 2>
Это работает очень хорошо до двух days.but, если ни один клиент не подключен к WebSocket сервер в прошлом два дня, он автоматически останавливает .
Я проверил состояние порта WebSocket с этой командой (Lsof -i: 9000) .Я получил следующий вывод (5 & 6)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE Имя
PHP 1467 убунту 4u IPv4 17137 0t0 TCP *: 9000 (СЛУШАТЬ)
кажется W Сервер ebSocket работает. Но клиент (т. е. мобильное приложение) не может подключиться.
Есть ли какие-либо конкретные причины этой проблемы? Мы не можем точно определить проблему.
ответ
Вам необходимо предоставить дополнительную информацию для сообщества SO, чтобы помочь вам.
Давайте посмотрим на слои вашей инфраструктуры, чтобы получить обоснованное предположение, где проблема может быть.
Мы имеем:
- внешний разъем (мобильное приложение)
- PHP скрипт работает в качестве сервера (ресивер).
- ОС (Ubuntu)
ядро ОС может убить запущенные процессы для различных плохо себя ведет. Наиболее распространенный OOM-killer (вне памяти).
Это не редкость, когда скрипты PHP становятся невосприимчивыми, особенно если задействовано программирование потока (сокетов), нам нужно будет увидеть этот код.
Вы говорите, что все в порядке в течение двух дней, поэтому мы можем исключить проблему внешнего соединителя и сконцентрироваться на неудобстве проблем с ресурсами: сбор мусора, утечки памяти, утечки потока и т. Д. Некоторые внешние процессы либо убивают вас PHP-скрипт или скрипт PHP не реагируют.
Расследование должно начинаться:
- Разделяя server.php, а затем перейти к
- анализа журнала.
Вы читали журналы? – zed
может быть, вы исчерпали нет. открытых файлов. значение по умолчанию меньше. См. Http://unix.stackexchange.com/questions/36841/why-is-number-of-open-files-limited-in-linux – Sairam