Назад | Перейти на главную страницу

Пользовательский сервер Ubuntu через некоторое время: сброс соединения одноранговым узлом

У меня есть программа linux server. Я замечаю, что после 2 или 3 дня некоторое время сервер перестает отвечать. Когда я заглядываю в журнал сервера, я нахожу сообщения «сброс соединения одноранговым узлом».

Мне нужно перезапустить сервер. Все работает нормально а то после 2 или 3 дня иногда возникает та же проблема.

Любая помощь будет оценена.

Изменить: извините за небольшое описание.

Это простой сервер, который я написал, который принимает TCP-соединения. Он написан на C #, и я использую моно. Я запускаю сервер следующим образом: nohup mono StartServer.exe &

Файл с именем nohup.out создается в том же каталоге, который действует как журнал. После 2-3 дня какое-то время я обнаруживаю, что монопроцесс все еще жив. Но клиенты (клиенты Silverlight) не могут подключиться к серверу: они получают сообщение «доступ запрещен». Фактически, даже когда сервер не работает, получаются сообщения «доступ запрещен». Полагаю, сервер не отвечает.

Когда я просматриваю файл nohup.out, я нахожу сообщения об ошибках «сброс соединения одноранговым узлом».

На самом деле, я изначально планировал разместить его на сервере Windows, но обнаружил, что он отлично работает и на сервере Linux. Поскольку я не очень разбираюсь в Linux, я подумал, не пропустил ли я очевидную конфигурацию.

Что меня озадачивает, так это то, что все работает нормально примерно до 3 дней.

Я проводил нагрузочное тестирование, когда у одного клиента было несколько подключений к серверу, и обнаружил, что получаю ту же ошибку в течение одного дня. Количество подключений - около 30.

Я бы сбежал

# netstat -anp

и

# lsof -n

Чтобы узнать, происходит ли утечка соединения или дескриптора файла. Я подозреваю, что соединения или файлы не закрываются должным образом, и что через некоторое время он передал 1024 открытых файла (это ограничение по умолчанию для открытых файлов сразу, если не было изменено с помощью ulimit) - что снова помешало бы ему создать новые связи.