3
  1. Мы используем экземпляр AWS EC2 (ubuntu-xenial-16.04-amd64-server) для запуска сервера PHP Websocket.
  2. Мы используем следующую команду для обеспечения непрерывного функционирования сервера WebSocket.Сервер веб-узлов на экземпляре AWS EC2 не отвечает после двух дней бездействия

    поЬир PHP -q server.php>/DEV/нуль 2>

  3. Это работает очень хорошо до двух days.but, если ни один клиент не подключен к WebSocket сервер в прошлом два дня, он автоматически останавливает .

  4. Я проверил состояние порта WebSocket с этой командой (Lsof -i: 9000) .Я получил следующий вывод (5 & 6)

  5. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE Имя

  6. PHP 1467 убунту 4u IPv4 17137 0t0 TCP *: 9000 (СЛУШАТЬ)

  7. кажется W Сервер ebSocket работает. Но клиент (т. е. мобильное приложение) не может подключиться.

    Есть ли какие-либо конкретные причины этой проблемы? Мы не можем точно определить проблему.

+0

Вы читали журналы? – zed

+0

может быть, вы исчерпали нет. открытых файлов. значение по умолчанию меньше. См. Http://unix.stackexchange.com/questions/36841/why-is-number-of-open-files-limited-in-linux – Sairam

ответ

1

Вам необходимо предоставить дополнительную информацию для сообщества SO, чтобы помочь вам.

Давайте посмотрим на слои вашей инфраструктуры, чтобы получить обоснованное предположение, где проблема может быть.

Мы имеем:

  • внешний разъем (мобильное приложение)
  • PHP скрипт работает в качестве сервера (ресивер).
  • ОС (Ubuntu)

ядро ​​ОС может убить запущенные процессы для различных плохо себя ведет. Наиболее распространенный OOM-killer (вне памяти).

Это не редкость, когда скрипты PHP становятся невосприимчивыми, особенно если задействовано программирование потока (сокетов), нам нужно будет увидеть этот код.

Вы говорите, что все в порядке в течение двух дней, поэтому мы можем исключить проблему внешнего соединителя и сконцентрироваться на неудобстве проблем с ресурсами: сбор мусора, утечки памяти, утечки потока и т. Д. Некоторые внешние процессы либо убивают вас PHP-скрипт или скрипт PHP не реагируют.

Расследование должно начинаться:

  1. Разделяя server.php, а затем перейти к
  2. анализа журнала.