Как стать автором
Обновить

Комментарии 43

А какой фреймворк вы использовали, если не секрет?
Просто странно — я удивляюсь, как сайт может работать быстро с такими бешеными нагрузками. У вас первоначально пользователи по ajax обращались к таблице в 72 миллиона записей каждые 10 секунд?
Без фреймворков и библиотек (кроме php-memcached) — чистый php, даже без абстракции базы данных — только mysql_query/mysql_real_escape_string.

Нет, к 72 миллионой обращение идет только раз — при первоначальной загрузке страницы и потом еще 400 обращений к 17 миллионной базе отдельных слов (хотя фактически эти все обращения сейчас идут к memcached).

Было бы быстрее, если бы боты не обращались 100-200 тысяч раз в день.
Я в третьей части подробнее расскажу об этом всем (если доберусь до нее когда-нибудь :) )
А хотя бы сейчас — можно поинтересоваться кол-вом генерируемых страниц или даже скорее — обработываемых запросов в сутки — при пиковых нагрузках и среднестатистических )))

циферки — оченя люблю, соревновательный дух поддерживает — люблю посоревноваться )))

зы. гугл — к соревнованию не предлагать, я до него попозжя дойду, пока времени на него нет ))
Ну так я ж говорю 100-200к в сутки, из них около 4000 от реальных людей.
Как планируете развитие? в какую сторону?
в сторону RarestNews :) это другой проект, он мне куда более интересен сейчас, но с ним я в тупике. а этот просто висит, народ развлекает. а про этот еще дорасскажу, наверное, если интерес будет — это далекоооо не все, что там надо было оптимизировать.
в чем тупик заключается?
В категоризации новостей.
«Turkey» — это страна или индейка? Python — язык программирования или monty python? Полисемия меня уже бесит, я уже даже выучил как это называется.

Как вычислить автоматически вычислять семантическое ядро для категорий типа «Atlanta Falcons», если во всех страницах про них, в основном пишется про них и какую-нибудь еще команду, например «Denver Broncos»?

Как автоматически сделать иерархичность, что Denver Broncos — это NFL?
И т.п. т.п. т.п. короче, автоматизированная лингвистика загнала меня уже. Получается процентах в 50 случаев процентов на 90 угадать тематику, в 10 процентах случаев угадываемость около 30-40 процентов, но если считать, что тема обобщена, то есть по запросу «спартак» — мы просто интересуемся «футболом». В остальных 40% категоризации вообще нет или неправильна )
hint: вероятностная модель языка
просмотрел в общих чертах — тестировал я что-то подобное и даже сейчас что-то подобное работает — вот эти ВЕРОЯТНОСТИ выше и получаются ) не знаю правда что будет при тех моделях — я свои придумывал.
я извиняюсь, а ссылочку на проект не подбросите?
rarestnews.com
а я имел в виду тот который с 72 миллионами зписей ) или этот этот?
therarestwords.com
warning: ссылка на английском
я думаю вы меня не так поняли. когда такие нагрузки — нужно стремиться к двум вещам:
1) выборки только по primary key
2) как можно меньше join, order, group
именно к этому сейчас фактически проект и пришел, к сожалению, экспериментальным путем поломок и убитых винчестеров.

unbuffered дал бы выигрыш, если бы я все 72 млн записей выбирал ) в моем случае из этой базы выбирается только 1 (денормализованная) строка по праймари ключу — я писал об этом подробно в первой части.
Хроника боевых действий прямо.
НЛО прилетело и опубликовало эту надпись здесь
еще бы я посоветовал использовать mysqli — оно быстрее — либо если получится модуль от самого мускла — он еще быстрее

еще можно использовать mysqli_pconnect

+ заменить апачи на nginx — он быстрее
поставить fast-cgi — тоже + к производительности
да он уже терпимо вполне работает и врядли это 200к запросов превысит скоро, не летает, конечно, но дождаться загрузки можно )
я с вами не согласен…
нельзя подходить к проекту — работает и хорошо…
работать должно так, что если к вам придут 2 миллиона юзеров, то вы им скажите — а у меня все работает :) а не будете 18 часов кодить :)
«Преждевременная оптимизация — корень всех зол»
хорошо продуманная архитектура под высокие нагрузки — счастье на всю жизнь ;)
Да, Кнут всегда был и будет прав! )
Это Хоар сказал =)
1) я не уверен, что это достижимо без шардинга
2) если шардинг (кластеризация) — это нужны процессы следящие за состоянием серверов и т.п. и т.п. и т.п.
3) платить за несколько серверов сразу

так вот — это долгая и очень серьезная работа (недели, а может и месяцы), а теперь ответьте на вопрос: «а если НЕ придут 2 миллиона?» )) и в принципе я более чем уверен, что на этот проект — не придут. это игрушечный проект, там им делать нечего — миллионам.
но миллион же пришел :)
да и конечно же прогнать скрипты под xdebug или аналогичной тулзой на предмет профайлинга…
посмотреть что занимает основное время выполнения
Подскажите адресок сервиса? Можно быть плохо искал, но ссылку не нашел.
ради бога, переименуйте функцию uptime() в loadavg()
Так исторически сложилось — просто у меня есть библиотека функций, которыми много лет пользуюсь и она uptime назвалась по названию команды, так и осталось, хотя и Вы правы — меряет она loadavg :)
надо, надо делать рефакторинг
прямо как в хитчхайкере Дугласа Адамса

с ответом — сорок два

Главный Вопрос Жизни, Вселенной,
Вопрос. Почему memcache, а не shared memory cache (тот же eaccelerator)?
Даааа! Интересно!!! ОЧЕНЬ даже! Спасибо, за серию статей!

p.s.: хотел, спросить, а что кроме интереса вы преследуете? (можно в приват)
кстати, запуск процесса uptime, а также preg_match — сами по себе достаточно тяжелые функции.
лучше юзайте
$a=split(" ",readfile("/proc/loadavg"),2); return $a[0];
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации