2010-08-13 5 views
3

Я пишу небольшой программный компонент для загрузки ресурсов с веб-сервера (IIS).Могу ли я открыть несколько соединений с HTTP-сервером?

Но похоже, что производительность этой системы неприемлема. Теперь я планирую увеличить количество подключений к веб-серверу, создав несколько потоков.

Мой вопрос: могу ли я повысить производительность с помощью нескольких потоков? Веб-сервер с более высокой дозой позволяет мне создавать несколько одновременных соединений?

Благодаря

Upul

+0

вопрос непонятен: когда вы говорите, что «производительность системы неприемлема ...», вы имеете в виду клиентскую машину, на которой запущен ваш компонент или веб-сервер? – deostroll

+0

Прошу прощения. Я имел в виду производительность моего программного обеспечения (количество загружаемых документов в секунду). Он работает на четырехъядерном процессоре. Поэтому я не думаю, что клиентская машина является узким местом. –

+1

Сервер, очевидно, должен обрабатывать несколько соединений. Вот для чего это. Ваша производительность будет расти, если на сервере будет какая-то работа. Если на сервере есть только статический контент или простые сценарии, то ваша Bottelneck - это либо серверная машина, либо соединение. (нормально, или глупая ошибка в вашем программном обеспечении: P) – naugtur

ответ

3

Все правильно настроенные веб-серверы должны иметь возможность обрабатывать несколько соединений из одного источника. Это позволяет, например, браузеру загружать сразу два изображения с одной страницы.

Некоторые серверы могут устанавливать верхний предел количества одновременных подключений, которые он будет принимать от одного клиента, но обычно это будет большое число. Использование до 6 подключений обычно безопасно.

Что касается повышения эффективности, это зависит от вашей ситуации. Если вы очень быстро подключаетесь к магистрали Интернета и обнаруживаете, что скорость, которую вы получаете с удаленного сервера, не использует скорость вашего соединения, то во многих ситуациях многопоточность может повысить скорость. Если скорость уже превышает скорость вашего подключения к Интернету или подключение удаленного сервера, то он ничего не может сделать.

2

Веб-серверы являются допускаем одновременных соединений. Не должно быть никаких проблем при открытии, если логика приложения не позволяет открывать несколько соединений для одного и того же клиента. Чтобы прояснить мою точку зрения, если вы требуете входа в систему перед загрузкой ресурсов, и ваше приложение не разрешает несколько одновременных входов в систему, вы застрянете там. Есть приложения, которые не позволяют много подключений из одного источника из соображений безопасности.