powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Параллельное открытие станицы
25 сообщений из 32, страница 1 из 2
Параллельное открытие станицы
    #38338534
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня,

Необходима Ваша помощь.
Имеется несложный сайт на WIN2008R2 IIS7.5 , ASP.NET 4.0, данные берутся с ms sql express 2008 R2 сервера.
Имеется одна страничка, которая запускает процедуру на этом сервере, получает данные, выводит в грид.
Ничего сложного. Все работает, данные возвращаются быстро.
Но если пользователь запускает одновременно 10 окон/закладок в FF или опере с одной и той же страничкой, то закладки открываются последовательно.
1.2.3.....10.
Если в закладках для страницы указать разные параметры, то закладки откроются хаотично, какая то быстрее, какая-то медленнее.
Не знаю как правильно это назвать - получается что Web Server выполнил 10 запросов параллельно.

Т.е. 10 копий странички с разными параметрами - открываются параллельно, а вот 10 копий, с одним и тем же параметром, последовательно. Что необходимо сделать чтобы WEB Server позволял запускать параллельно несколько копий страницы с одинаковым параметром?

Спасибо.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38338813
Ponin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симптомы указывают, что сайт, похоже, реализован без асинхронных контроллеров.
Поэтому будет полезным здесь внедрить асинхронность(ключевые слова - async и await; их использование)
В качестве альтернативы - можно количество тредов, выделенных для этого сайта в IIS, увеличить.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38338841
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volochkova, возможно процедура делает блокировки во время своей работы так что каждая страница вынуждена ждать своей очереди. Попробуй выполнить процедуру из нескольких закладок в management studio. Если увидишь аналогичное выстраивание в очередь, то значит нужно процедуру исправлять.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38338858
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volochkova,

не спец но что то читал про кеширование, наверное этот механизм синхронный
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38338873
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PoninСимптомы указывают, что сайт, похоже, реализован без асинхронных контроллеров.
Поэтому будет полезным здесь внедрить асинхронность(ключевые слова - async и await; их использование)
Какой нах async и await, все 10 методов и так выполнятся в отдельных тредах. Изучай матчасть и асинхронную природу ASP.NET. Тут скорее причина в логике работы метода.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38339071
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volochkova, Session используется?
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38339474
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
хороший вопрос ++
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340441
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Скорее всего нет.
В коде ASP.NET
открыть SQLConnection
в DataTable получить результат, который показывается в gridView.


Были даже попытки сделать асинхронные запросы, но результат оказался таким же, 2-3 процесса стартуют, остальные ждут завершения.

В итоге "причина", кажется, нашлась.

Взяв в руки C#, были сделаны 20 потоков, которые генерируют WebClient и открывают странички. Результат аналогичный. - 2-3 процесса стартуют, остальные ждут завершения.

Стало грустно, а вот 20 потоков которые запускают отдельный IE и каждый 1 раз открывает страничку - показали, что процессы пошли все 20 почти одновременно. ( в профайлере MS SQL видно что все 20 потоков подключились, почти одновременно)
Видимо необходимо время на запуск IE.

Видимо это настройки какие то для WebClient, чтобы не убивали сайты одинаковыми запросами. Они и не дают более 2-3 одновременно тащить данные с сайта.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340674
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volochkova,

все дело в keep alive
правильно сказали, чтобы решить задачу используй async/await и не слушай бред про «асинхронную природу ASP.NET»
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340737
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttVolochkova,

все дело в keep alive
правильно сказали, чтобы решить задачу используй async/await и не слушай бред про «асинхронную природу ASP.NET»

Хватит нести дурь, возьми в руки

Код: c#
1.
HttpWebRequest.KeepAlive = false;



и проверь. Тоже самое будет у автора.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340828
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите блондинку, не поняла про KeepAlive = false.

Должно помочь открывать 20 закладок как 20 IE процессов?
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340898
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volochkova,

на сервере для обработки каждого запроса выделяется поток из пула, но обращаясь к одному и тому же ресурсу потоки могут ожидать освобождения этого ресурса.

вы бы дали больше информации о том, как получаете данные для грида, привели бы код странички, тогда можно было сказать точнее в чем причина.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340904
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

я не знаю о какой там асинхронной природе асп.нет постоянно идёт речь, но факт остаётся фактом: использование async/await вкупе с использованием async-методов EF 6 меняет ситуацию в корне, поток запросов обрабатывается быстрее на порядки. а если еще организовать грамотное кеширование, то все просто летает.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340919
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Код можно, но почему из браузера закладки открываются с ожиданием ресурсов,
а 20 IE открываются без ожидания этих ресурсов.

Раз так, точно проблема на сервере?
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340922
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volochkova,

keep alive
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340953
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, перестань вводить человека в заблуждение. Keep-alive используется чтобы сервер принудительно не закрывал соединение после ответа. Это дает возможость повторного использования уже открытого соединения для нового запроса. То что описывает Volochkova больше похоже на достижение лимита на подключения к одному домену. Все современные браузеры это делают чтобы не перегружать сервер слишком большим кол-во одновременных запросов. Но т.к. у нее запросы с одинаковыми параметрами ждут, а с разными выполняются, то значит проблема в серверном коде. Это нехватка рабочих потоков ASP.NET т.к. тогда поведение было бы одинаковым в обоих случаях. Следовательно проблема в коде страницы или в БД.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38340971
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ,

я не знаю о какой там асинхронной природе асп.нет постоянно идёт речь, но факт остаётся фактом: использование async/await вкупе с использованием async-методов EF 6 меняет ситуацию в корне, поток запросов обрабатывается быстрее на порядки. а если еще организовать грамотное кеширование, то все просто летает.
Жесть...

hVostt, сцуко, кончай хрень нести, какой них keep-alive, какой async, причем тут ef?
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341039
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

я про это и говорю. потоки нужно освобождать как можно быстрее. проблему можно решить, отдав поток сразу же, получив задачу.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341044
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

незнай. но твоё «причина в логике работы метода» всё равно, что сказать о влиянии на работу кода какой-нибудь солнечной бури, т.е. ниачом.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341048
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следовательно проблема в коде страницы или в БД.

вы как сговорились. человек спрашивает в чем проблема, а вы «да, у тебя там проблема». хотите занять место капитана очевидность?
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341057
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ,

незнай. но твоё «причина в логике работы метода» всё равно, что сказать о влиянии на работу кода какой-нибудь солнечной бури, т.е. ниачом.

Мля, я тебе дал пример реквеста: HttpWebRequest.KeepAlive

Попроси автора сэмулировать вызовы не через WebClient, а через HttpWebRequest: тоже самое. Будет результат такой же.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341073
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttя про это и говорю. потоки нужно освобождать как можно быстрее. проблему можно решить, отдав поток сразу же, получив задачу.
Ты говоришь о двух вещах. О keep-alive, который тут никаким боком не уперся. И о async методах. Я в своем ответе оговорился. Вместо "Это нехватка рабочих потоков ASP.NET" нужно читать "Это НЕ нехватка рабочих потоков ASP.NET" (отправил просьбу модераторам исправить). Использование async подхода при работе с БД вещь хорошая и нужная, но в данном случае не похоже что проблема в нехватке рабочих потоков ASP.NET так что их досрочное освобождение ничего принципиально не изменит. Больше похоже на ожидание какого-то другого общего серверного ресурса. Я продолжаю считать что проблема на стороне БД, но возможно это сессия, как считает skyANA, или что-то еще.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341075
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttвы как сговорились. человек спрашивает в чем проблема, а вы «да, у тебя там проблема». хотите занять место капитана очевидность?
Это подсказка куда смотреть и одновременно неявная просьба дать больше информации.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341077
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

хм.. ну может и так. хотя уместно было бы использовать фиддлер + браузер, а не вебклиент.
причина пока так и неизвестна, чтобы узнать, что там за «проблема в коде», нужен этот самый код.
...
Рейтинг: 0 / 0
Параллельное открытие станицы
    #38341085
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

есть подозрение, что один и тот же запрос к БД не может выполниться параллельно, а разные могут? или разные адреса QueryString позволяют обработать запрос параллельно, а одинаковые становятся в очередь (тогда это браузер виноват)?

у меня сэмулировать проблему не получилось.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Параллельное открытие станицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]