оффтоп из «php программист»

alekciy

Новичок
Если не секрет, то сколько запросов в пике обрабатывается? И сколько под это приходится держать машин? И что отдают эти машины, чисто данные или же данные + разметка?

P.S. Почему битрикс?
P.S.S. То, что в СУБД бэкэнде 2 сервера, я уже понял.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Если не секрет, то сколько запросов в пике обрабатывается? И сколько под это приходится держать машин? И что отдают эти машины, чисто данные или же данные + разметка?

P.S. Почему битрикс?
P.S.S. То, что в СУБД бэкэнде 2 сервера, я уже понял.
Не вижу битрикса, вы имеете в виду postgres?
 

Dovg

Продвинутый новичок
Битрикса нет, вашими молитвами.

Далее рассказываю про plus1.wapstart.ru (у нас еще есть проекты, но они менее интересны):
Сейчас у нас около 50М динамических хитов в сутки, в пики приходится около 1000 rps. Сколько приходится на одну машинку, сложно посчитать, ибо у нас несколько проектов размазаны ровным слоем по ферме.
Машины отдают баннеры - это или кусок xhtml/xml, или json.
Субд - 1 мастер и 1 слейв.
На самом деле, база пока для нас не самое узкое место, т.к. мы познали дао кешей. :)
 

Dovg

Продвинутый новичок
Chusha Честно скажу - ни разу не считал. Да и ИМХО не нужно это, запросы слишком разные бывают. Нельзя плюсовать "select name from user where id = 42" и "select aggregate_daily_statistic();"

varan
Надо, и мы это делаем. Другой вопрос, что сырые данные не обязательно сразу писать в базу :)

ps. АП
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Надо, и мы это делаем. Другой вопрос, что сырые данные не обязательно сразу писать в базу :)
А если не писать сразу, то можно потерять. Хотя понятно, что все крутилки так делают.
 

Dovg

Продвинутый новичок
Спасибо за ответ, но я не об этом. Сколько кешированных запросов может выдать сервак в теории я знаю, надеюсь. Но это не то.
Меня интересует, сколько при 50М хитов в сутки идёт запросов к БД, реально. Сколько из них кешированы и сколько нет тоже хотелось бы знать.
Я же говорю - не считал, т.к. метрика "число запросов на страницу" мне нисколько не интересна. Кроме того, мы преднаполняем (прогреваем) кеши. Есть даже случаи, когда кроме как в кеше информации нет нигде.

Могу сказать, что для показа одного баннера в среднем делается от 6 до 20 запросов к memcached. Эту цифру мы сейчас стараемся уменьшать, ибо не Ъ.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Спасибо за ответ, но я не об этом. Сколько кешированных запросов может выдать сервак в теории я знаю, надеюсь. Но это не то.
Меня интересует, сколько при 50М хитов в сутки идёт запросов к БД, реально. Сколько из них кешированы и сколько нет тоже хотелось бы знать.
п.с.
У меня не было проектов с 50 миллионами запросов в сутки, поэтому интересуюсь реальными параметрами. "Знание - сила" (с) не помню чей :)
Если так уж нужны сферические цифры, то у нас где-то на каждый сервер (mysql) идет около 300 запросов в секунду, если я правильно сейчас посчитал. Запросы, разумеется, простейшие.
 

alekciy

Новичок
wapstart.ru - это 10 статичных страниц. Для этого и asp подошел бы :)
В таком контексте и nginx-а было бы за глаза :D

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

fixxxer

К.О.
Партнер клуба
А можно сразу пару вопросов ? :)

1) В мемкеше я не очень хорошо понимаю одну вещь - как там устроено динамическое распределение памяти между slab-ами - которые кучки для хранения блоков 2^N. Есть из общих соображений подозрения, что это как раз единственное место где могут возникнуть реаллокации и соответствующие тормоза. Из общих же соображений и простых ничего не доказывающих экспериментов и наблюдений более-менее ясно, что должно быть эффективно прогреть заранее соответствующими реальности по объему данными. Проводились ли на эту тему подробные исследования, и если так, то что показали?

2) Правильно ли я понимаю, что сырые данные вы храните в memcached? Как решаете проблему возможного вытеснения - запускаете memcached -M, или просто выделенный мемкеш с соображениями "должно хватить"? используете ли repcached, или если вдруг проблемы с питанием то и хрен с ним? :)
 

Dovg

Продвинутый новичок
1. А он разве не сразу всю память аллокейтит? Исследования не проводились, сразу скажу.
Прогреваем мы для другой цели - у нас есть кеши, где попадание близко к 100%, вот они преднаполняются.

2. Нет, сырые данные мы храним в файлах. Файлы записываются на тех же машинках, что и обрабатывают реквест. Потом ротируются, аггрегируются ну и так далее.
Репликацию мемкешей не используем.
За все время работы Проблем с питанием у нас не было ни разу (тьфу-тьфу-тьфу). Два или три раза мемкеш зависал. Похоже мы ловили крайне специфичный баг, могу поискать ссылки, если интересно.
Если умрет один из критичных кешей, то для нас это чревато деградацией производительности некоторое время, да.
 

fixxxer

К.О.
Партнер клуба
1) Ну у меня есть основанные на косвенных наблюдениях подозрения, что если вчера было куча 2^5 а сегодня куча 2^6 то там что-то перераспределяется (ну понятное дело теми же кирпичиками 2^n, переходящими между slab'ами, иначе бы вообще все легло). Могло показаться.

2) А, в файликах это ок )

зависал - а мемкеш какой 1.2 или 1.4?
 

Dovg

Продвинутый новичок
Зависал 1.4.
Симптомы такие: начинает отжирать 100% одного ядра и крайне медленно реагирует на запросы извне. Там что-то было связано с libevent. Деталей уже не помню, к сожалению, давно это было.
 

fixxxer

К.О.
Партнер клуба
Я почему-то так и подумал, наверняка дедлок с этими тредами. Я вообще до сих пор 1.2 юзаю :)
 
Сверху