Похоже, у вас утечка файлового дескриптора.
Некоторая часть вашего кода (или другой код, выполняющийся на компьютере) создает все больше и больше файловых дескрипторов, включая сокеты, и не закрывает их,Исходя из вашего описания, похоже, что это ваш код, который делает это.
Я подозреваю, что когда вы создаете сокет, вы не закрываете его чисто, когда выдается исключение.Если вы этого не сделаете, сокет останется открытым, и со временем у вас закончатся файлы.Любой ресурс, который должен быть закрыт после использования, должен всегда быть закрыт в блоке try-finally , чтобы обеспечить закрытие ресурса независимо от пути через метод.
Если вы не думаете, что у вас есть утечка файлов, воспользуйтесь утилитой lsof
на хосте, чтобы увидеть, какие дескрипторы файлов остаются открытыми вашим процессом, и убедитесь, что все они на законных основаниях нужны.Я считаю маловероятным, что у вас есть законная причина для превышения предела FD системы по умолчанию.