Смотрите логи ошибки соединения.
Проверьте кол-во одновременных соединений, если примерно в районе 1000, то вы скорее всего наткнулись на лимит файловых дескрипторов.
Дело в том, что php создает для каждого коннекта файл, лимит кол-ва файловых дескрипторов на один процесс по-умолчанию, чтото вроде 1024. Насколько помню, это лимит ОС и лимит php. Поэтому нужно увеличить лимит в Linux, и придется пересобрать php с большим кол-вом.
Либо использовать любой другой язык, без подобных заморочек. Во всяком случае, на python и go, подобных проблем нет, они не используют файловые дескрипторы для каждого соединения.