Я разработал TCP-сервер в соответствии с вашими советами: Высокопроизводительный TCP-сервер на C #
Он основан на асинхронном шаблоне.
Я также разработал приложение для стресс-тестирования, чтобы проверить его спектакль. Мой сервер может получать тысячи подключений параллельно из моего приложения для стресс-тестирования, может анализировать данные и сохранять их в моей базе данных.
Когда я нагружаю свой сервер, я могу получить "System.Net.Sockets.SocketException" Не удалось установить соединение потому что целевая машина активно отказалась от нее "ошибка моего сервера, поэтому мне нужно повторно подключиться к нему. Если я протестирую его с 5000 одновременных подключений, мне придется снова попытаться подключиться из-за этой проблемы 10-20% подключений, если я протестируйте его с 10K одновременных подключений, это может быть 30-40%. Иногда это может быть - очень редко - больше, чем 50%. Кажется, что он не может обрабатывать приемы подключения: я устанавливаю новые подключения из своего стресс-теста так же интенсивно, как и мой тестовая машина может - около 120 соединений / сек.
Итак, что может вызвать такого рода исключение? Как с этим справиться? Что делать при реализации на стороне сервера, чтобы избежать этой проблемы? Как настроить прием TCP-соединения?
Заранее благодарим!