Re: Re: проблема с длинными сессиями

От: Vladimir A. Butenko <vladimir_butenko_at_mx_ru>
Дата: Fri 20 Sep 2002 - 22:29:15 MSD


On Fri, 20 Sep 2002 21:43:08 +0400 (MSD)   Andrew Kopeyko <kaa@rambler-co.ru> wrote:

> > > > > Добрый день.

> > > Пусть REFRESH = 15 минут = 900 сек
> > > Тогда при 60573 сессий (текущее значение) получаем
> > > лишних 60573 / 900 = 67.3 access/sec
> > > Это при нормальных 23 _максимум_ access/sec (540970 юзеров)
> > >
> > > Я бы не назвал это "решением по-умному" - поставленную задачу это,
> > > конечно, решит, но с возникшей нагрузкой бороться будет гораздо

> >тяжелее.
> >
> >
> > Э... А давайте по-другом посчитаем. Если узер действительно работает, то 
> >уж
> > раз в пять минут - В СРЕДНЕМ - он че-нить, да нажмет. У Вас же получается
> > (пересчитываем наоборот), что юзер жмет в среднем раз в 45 минут. Что
> > наводит на мысль, что:
> 
> Наверное, так он и работает - когда _читает_ письма.
> 
> А проблема возникает только тогда, когда юзер _пишет_ письмо, и пишет он
> его долго - эпистолярный жанр располагает к неторопливым размышлениям.
> Сколько таких тугодумов? 0.5%, от силы 2%. А предлагаемое решение "косит
> всех под одну гребенку" и приводит к перегрузке сервера.

Еще раз. В СРЕДНЕМ они стукают по линкам раз в 5 минут - МИНИММУМ. Поэтому добавка 15 минутного рефреша даст только 30% увеличение загрузки. Далее, те, кто стукают раз в 5 минут - от них вообще ничего идти не будет, будет идти только от тех, кто таки бросил открытым окно на 15 минут - это вообще снижает число раз в 50 - с тех 3000-6000, о которых говорили. То есть - остается всего ничего.

Наконец, никто не мешает сделать эти фреймы с перегрузкой ТОЛЬКО на Compose странице - что сведет число запросов, нужных на "поддержание сессии живой" к практически нулю.

Посмотрите сами - эти запросы будут выдаваться только тогда, когда сейчас сессия рвется и кастомер кричит благим матом. У Вас кастомеры, конечно, недовольны тем, что их ИНОГДА выбрасывает по тайм-ауту, но такие случаи происходят не с частотой 60 в секунду, правда?

То есть доп. нагрузка от этого - почти нулевая.   

> Впрочем, для небольших инсталляций это будет действенным решением. А для
> больших - неработоспособным, ибо сильно увеличит http-нагрузку на CGP.
> Граница, ИМХО, пролегает в районе 100-200 тысяч юзеров. И здесь решение
> проблемы должно быть уже другим...

см. выше.

> Вопрос: как получить список зарегистрированных сейчас юзеров / как > проверить зарегистрировался ли юзер XYZ ? Никак. Но можно сделать - только пока не видно, зачем.   

> Тогда писание писем можно было бы обрабатывать отдельно - с
> пере-регистрацией в случае тайм-аута и без потери с таким трудом
> написанного письма.
> 
> Может, уважаемые разработчики возьмутся и сделают сами такое "правильное"
> решение? Или предлагается нам самим изобретать?

Добавить фрейм в Compose.wssp - это и есть правильное решение. Давайте, мы его вставим в стандартный Compose.wssp - чтобы не возникало вопросов. Все остальное (из рассмотренных) - не "правильное" решение.

> > а) из указанных 60573 сессий 95% - это сессии, оставшиеся от юзеров, 
> >которые
> > просто закрыли окно браузера без логина. То есть реально активных сессий 
> >-
> > 3000 (что вполне совпадает с тем, что бывает на сайтах подобного размера 
> >-
> > плюс-минус 2-3 раза, "но никак не двадцать восэм" - никак не 60.000).
> 
> Это тоже проблема - как посчитать число _сейчас_ зарегистрированных
> юзеров. Есть только общее число сессий - 60573. Данные Rambler's Top100
> дают на этот же момент ок. 4200 посетителей - 7%.

Ну, то есть оценка оказалась верной.   

> Расследование показало, что действительно для многих юзеров есть несколько
> экземпляров сессий - до 10 для некоторых. Но мы никак не могли установить
> зависимость - можно зайти на сервер из офисной сети и через
> некоторое время получить несколько сессий, а можно провисеть на модеме и
> остаться при своей одной. Подскажите, господа авторы, от чего это зависит?
> Или может зависеть?

Каждый логин - это новая сессия.

У меня три подозрения:

а) у Вас клиенты на таких плохих линиях, что у них все время все падает, и они вынуждениы заходить в систему снова. Слабо верится, особенно видя 60,000 сессий (кстати, а каков размер CGServer VRAM при таком жутком количестве?)

б) Вы почему-то убрали кнопку Logout из Вашего дизайна - вот никто и не кончает сессии нормальным путем. Опять слабо верится, зачем бы Вам ее убирать.

в) Вы сделали интеграцию с другими частями своего Веб сайта, но не как рассчитано (передавая SessionID в другую часть, и "впрыгивая" обратно по этому же ID), в "впрыгивая" обратно через Login.wssp с передачей имени и пароля - тем самым, начиная каждый раз новую сессию.

Посмотрите, какое из подозрений близко к жизни - бо 60.000 сессий я не видел на сайтах, у которых более 1.000.000 аккаунтов, из которых все - WebMail.

> -- 
> Best regards,
> Andrew Kopeyko <kaa@rambler-co.ru>
> 
>    Rambler Co.	http://www.rambler.ru/
>    phone :	+7 095 745-3619
  

Sincerely,
Vladimir Получено Fri Sep 20 18:34:25 2002

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:12:13 MSK