Старый 27.03.2008, 13:09   #1
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
Question Распределение нагрузки для Ajax приложений

Сабж.
Есть страница которая одномоментно(почти) генерит от 4х и более ajax запросов к серверу.
Время работы одного скрипта - от 30мсек до 1сек ( в зависимости от кешируемости)
Так как запросы идут к одному серверу - колличесво одномоментых запросов лимитированно.
Статистика показывается что след запрос начинается при начале получения данных по предедушему.
(график)

Вначале я решил схитрить и скриптом менять домен от dc1.myhost.ru до dc6.myhost.ru
все висят на 6ти разных IP на двух разных серверах..
Вот думаю круто будет работать..
Ан нет, запросы на "не мой домен" не шлются

Попробовал запрокрировать через Mod_proxy
теперя при обрашении myhost.ru/dc1/... просходило проксирование запроса на другой сервер...

Нагрузка и время работы скрипта уменьшились( но не много )
А вот время ожидания клиента - не именилось..
Браузер все также ждет окончания пред запроса.
Точнее как я понял это не браузер - это апача в один момент времени от одного клиента обрабатывает только один запрос( никто не знает как пофисить? )

В общем помогите люди добрые ускориться
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает

Последний раз редактировалось Kashey; 27.03.2008 в 13:12.
Kashey вне форума   Ответить с цитированием
Старый 27.03.2008, 17:12   #2
Вредина
 
Аватар для Jooz
 
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
Jooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущее
По умолчанию

memcached
__________________
Чтобы произошло чудо нужно обязательно дунуть. Если не дунуть - чуда не произойдет!
Jooz вне форума   Ответить с цитированием
Старый 27.03.2008, 20:00   #3
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию

Люблю людей пишущих глупые и короткие предложения.
Практически не кеширумые у меня запросы
Время работы скрипта - мизер.
Время ожидания - дохрена.
Склеивать запросы в один "огого" запрос.. мм не рентабельно однако.
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Старый 27.03.2008, 20:28   #4
Вредина
 
Аватар для Jooz
 
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
Jooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Kashey Посмотреть сообщение
Люблю людей пишущих глупые и короткие предложения.
Практически не кеширумые у меня запросы
Время работы скрипта - мизер.
Время ожидания - дохрена.
Склеивать запросы в один "огого" запрос.. мм не рентабельно однако.
Данные вычисляются где?
Да где бы они не вычислялись из памяти их достать быстрее чем вычислить, засунуть в память, прочитать из памяти, очистить память.

PS - Если просите о помощи, любому ответу должны быть рады. В следующий раз сразу на йух пошлю. Невежа.
__________________
Чтобы произошло чудо нужно обязательно дунуть. Если не дунуть - чуда не произойдет!
Jooz вне форума   Ответить с цитированием
Старый 27.03.2008, 21:33   #5
Новичок
 
Аватар для vvvvv
 
Регистрация: 08.05.2007
Сообщений: 60
Вес репутации: 214
vvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всем
По умолчанию

Цитата:
Сообщение от Kashey Посмотреть сообщение
Склеивать запросы в один "огого" запрос.. мм не рентабельно однако.
Сами пишете, что время выполнения скрипта не сопоставимо с временем ожидания. Вывод напрашивается один - уменьшить количество запросов, за счет их усложнения. На самом деле и усложнять ни чего не надо. Добавьте новые скрипты, которые будут обрабатывать "склеенные" запросы и обращайтесь по необходимости к ним.
vvvvv вне форума   Ответить с цитированием
Старый 27.03.2008, 22:03   #6
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию

К сожалению если изменить URL адрессацию то упадет вся система кеширования, в частности клиентского.
Так как урл есть ммм.. адресс ноды квадродереве.
Тут или длиинные предлинные урлы писать, либо както еще.
Но одно из ограничений времени рекции - это время скачивания файла.
В приципе распределись нагрузку можно очень просто отказавшить от "браузерного" ajax и вернувшись на старые добрые ифреймы( им обрашение на домен третьего левела не страшно).. но не красиво это както. Чисто програмерски.

2Jooz
Простите конечно, но ответ из одного слова( и не по теме) это не ответ. Или Вы имели в виду что-то более полное и интересное?
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Старый 27.03.2008, 22:17   #7
Вредина
 
Аватар для Jooz
 
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
Jooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущее
По умолчанию

Именно, кэшируйте данные на ajax в memcached и дальше уже дергайте сформированное из памяти не напрягая БД да и в целом файловую систему. Получите значительное повышение производительности.
Отклик моментальный.
Какую библиотеку ajax используете? Или что-то самописанное?
Я раньше сам не пользовался, но с недавнего времени (по совету одного хорошего человека) все свои проекты перевожу именно на memcached результат нагрузка на cpu упала в 70! раз, нагрузка на диски в 190! раз, нагрузка на память в 30 раз. Суммарная генерация страничек упала с 0.5 - 0.03 до 0.003 т.е. в 10 раз минимум.
Попробуйте, можно поставить на freebsd из портов + для php нужно будет скачать библиотеку.
PS - такие проекты как лайфджорнал и одноклассники юзают именно эту фитчу, судите сами. Да и вообще мемкеш был заказан и разработан именно по инициативе лайфджорнала.
Особенно он выручает именно в уменьшении запросов к базе (читать + к диску). Например, у меня один не большой сайт 5-6К человек в сутки и порядка 10-15К просмотров, генирит в час не более 200 запрос select хотя база очень наворочена и построена на много под уровневой реляции. В том числе и с использованием ajax (JsHttpRequest)
__________________
Чтобы произошло чудо нужно обязательно дунуть. Если не дунуть - чуда не произойдет!

Последний раз редактировалось Jooz; 27.03.2008 в 22:19.
Jooz вне форума   Ответить с цитированием
Старый 27.03.2008, 22:23   #8
Вредина
 
Аватар для Jooz
 
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
Jooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущее
По умолчанию

PS - для общего представления
http://ru.wikipedia.org/wiki/Memcached
Для perl можно почитать тут
http://www.opennet.ru/base/dev/perl_memcached.txt.html
Для php читаем ман или гуглим
__________________
Чтобы произошло чудо нужно обязательно дунуть. Если не дунуть - чуда не произойдет!
Jooz вне форума   Ответить с цитированием
Старый 27.03.2008, 22:46   #9
Новичок
 
Аватар для vvvvv
 
Регистрация: 08.05.2007
Сообщений: 60
Вес репутации: 214
vvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всем
По умолчанию

Цитата:
Сообщение от Kashey Посмотреть сообщение
К сожалению если изменить URL адрессацию
Можно не менять URL. Если у Вас запросы одномоментные, то можно их собрать в массив и передать в качестве параметра этот массив. А потом уже в пхп-скрипте разложить массив и сделать нужные запросы.
Если вызов запросов осуществляется параллельно, но из разных мест, то можно их кэшировать на стороне клиента, а потом через определенные интервалы собирать в массив и отправлять на сервер.

Цитата:
Сообщение от Kashey Посмотреть сообщение
отказавшить от "браузерного" ajax и вернувшись на старые добрые ифреймы
JsHttpRequest использует ифреймы, если отключены активх. Так что нет в этом ни чего зазорного. Другое дело, что настройки многих клиентов будут убивать ифреймы.
vvvvv вне форума   Ответить с цитированием
Старый 27.03.2008, 22:48   #10
Новичок
 
Аватар для vvvvv
 
Регистрация: 08.05.2007
Сообщений: 60
Вес репутации: 214
vvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всемvvvvv - это имя известно всем
По умолчанию

Цитата:
Сообщение от Jooz Посмотреть сообщение
Именно, кэшируйте данные на ajax в memcached
Так проблема на сколько я понял не в скорости выполнения скриптов на стороне сервера, а в последовательном характере выполнения нескольких одновременных запросов. memcached не даст здесь ощутимого прироста скорости.
vvvvv вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распределение страниц при продаже ссылок shadx Ошибки при работе с системой 5 26.06.2008 16:06
Что за распределение между ПС? Или бан? Александр Блохин Яндекс 6 11.04.2008 20:49
Даёшь равномерное распределение ссылок по местам! stanbert Пожелания пользователей системы 1 10.12.2007 20:09
Не равномерное распределение текстов alexhhh Ошибки при работе с системой 1 10.12.2007 18:42
Распределение ссылок на движках Manager Вопросы по работе системы 11 03.10.2007 15:54


Часовой пояс GMT +3, время: 12:43.