Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] Re: [apache-talk] пpавильное н аписание чатов



On Fri, 15 Oct 1999, Alex Tutubalin wrote:

Привет!
Сорри за нек. задержку с ответом - экзамен по философии в аспирантуру
сдавал. 8-)

> Вот тут мной пишется очеpедная поделка - www-chat (пожалуй, из массовых вещей я 
> только баннеpный обмен еще не писал :)

может, сразу и примешься? 8-) вполне серьезно. занятие, наверное, более
благодарное, чем написание чата..

> Возникает вопpос - как пpавильно обновлять содеpжимое окон клиентских 
> бpоузеpов?
> Есть подозpение, что meta refresh может дать кpайне непpиятные волны нагpузки
> за счет авто-синхpонизации всего хозяйства (если случайно получится так, что 
> pавномеpная нагpузка вдpуг пеpестанет быть таковой, то она сама может начать 
> собиpаться в волны). Что делать ? meta refresh with random delay ?

в принципе, может, но как показывает практика, такая ситуация возникает
только при 'make; apachectl restart' - загрузка машины увеличивается до
7-12, а потом спадает где-то до 1.5-2. В общем, ничего особо
криминального. Непрерывных волн нагрузки практически не
наблюдается - роль random delay с успехом выполняет разница в скорости
передачи данных клиентам (как раз 3-5 секунд при рефреше с частотой 10-15
секунд). Поэтому вполне приемлемым решением является <meta refresh=> с
периодом, регулируемым из настроек (~25% пользователей меняют себе
частоту, вместо принятой по умолчанию). С <meta refresh> будут некоторые
проблемы, если "опускать" окно разговоров вниз, а не писать фразы
снизу вверх, но это вполне решаемо. Кстати, безусловно, чат для
400-600 одновременных клиентов просто обязан быть апачевским модулем
(хотя, зная Алекса, это можно было и не упоминать 8-).

А для того, чтобы хоть немного снизить нагрузку (не столько на машину,
сколько на канал -- когда чатовский трафик начал зашкаливать за
10 Гб/сутки) я недавно на "Кроватке" ввел новую технологию обновления
окна: connection с клиентом не разрывается, и раз в секунду проверяется,
нет ли новых сообщений на вывод: есть - ap_rputs() и яваскриптовский
scroll()  нет - sleep процессу. "Рефреш", конечно, можно установить
из настроек, но это делают только 5-8% людей. А трафик уменьшается,
как не сложно догадаться, ровно во столько раз, сколько /в среднем/
рефрешей одна фраза "держится" на экране. Кроме того, скорость
общения практически стала, как в IRC.
Самый большой недостаток - естественно, 658 processes: 2 running, 656
sleeping, и ужасающий netstat -a  ('netstat -a | wc -l' == 1896)
впрочем, эти проблемы решаются установкой 512 Mb оперативки

> Особенно интеpесно мнение хозяина Кpоватки, благо он тут встpечается.

встретился 8-)

> p.s. Планиpуемая нагpузка - большая, железо слабое, канал быстpый :)

Васенинский? все равно чат сумеет забить. 8-)

P.S> а оно тебе очень надо - писать чат с нуля? Причем, не простой, как
я понимаю.. А например, только на составление словаря для "матотестера" в
чате у меня ушло около двух месяцев (зато он фильтрует мат по ~200
правилам его образования 8-), есть куча тонкостей, связанных с подстройкой
под конкретные броузеры и т.д. и т.п.
Я двумя руками за то, чтобы популярные сервера либо открывали "каналы"
на кроватке (примеры: Omen, gamecenter.ru), автоматически получая
некоторый приток посетителей к себе, либо ставили у себя "экспортную
копию" чата. И в том, и в другом случае дизайн чата делается в стиле
самого сайта. IMHO, приличнее, чем стандартные бесплатные чаты.

P.P.S> а железо все-таки потребуется не очень слабое 8-) PII-350/256
рекомендуется.

--
Art [Artem Podstreshny]   Radio-MSU Network Center
+7 (095)932-8880    http://www.radio-msu.net/~art/

=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.