За последние 24 часа нас посетили 15724 программиста и 1662 робота. Сейчас ищет 841 программист ...

Книги по написанию высоконагруженных проектов

Тема в разделе "Прочие вопросы по PHP", создана пользователем kiosuki, 24 июл 2010.

  1. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    любой хайлоад это прежде всего архитектура + расширяемость. выжимать соки из железок дело хорошее, но тупиковое. я делал 2 хайлоада. сейчас делаю третий. во втором расчетная нагрузка 10 лямов хитов в день. все построено на кластерном решении. не хватает мощи. втыкается нода (обычный сервак, не крутой). синкается с мастером и все. прирост мощи обеспечен.
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    это примерно на сколько уникальных посетителей?сколько по трафику выходит, какую бд использовали?
    DBM файлы приходилось применять для кеширования?
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    там немного не то. там система продажи трафика, т.е. на систему сливают траффик, а она его перераспределяет.


    когда я оттуда ушел, там было 4 сервера.

    1. фронт. балансер. админка. mysql управлялка кластера.
    2.3 MySQLCluster на 2-х нодах + ноды на обработку запросов.
    4. сервер статистки.

    работает все так.

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

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


    там статистика самое тяжелое место. принять хиты ваще не попрос.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    MySQL 5.0 что ли. точно не помню. собирал честный кластер.
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а они сразу такую систему захотели или была какая то попроще и перестала справляться?были оставлены места для "наворотов" имею ввиду с нуля пришлось писать?
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    да. все с нуля сразу. 2 месяца расчитывали только архитектуру.
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    там история немного прикольней. до меня так кто-то начинал. хотели поднять все на 1 сервере. когда я пришел я сказал. пишу с нуля как положено или нафиг. они выбрали с нуля. так все и завертелось.

    http://www.trafficshop.com/

    пысы. это траффик с CJ (порнуха). Было очень позновательно посмотреть на это дело изнутри.
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    часто в проектах куски php кода приходится переписывать на C?Вот сейчас читаю литературу как правильно все организовывать, анализ\построение диаграмм, вам приходится этим заниматься в больших проектах?
    на этом зарабатывать, по моему, можно только за бугром :)
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    статистка там отдавалась в jgraf
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ну так заказчик мерикосы. топы зарабатывают до 1000$ в день
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а в чем преимущество использования демона перед обычным скриптом?
    т.е. я просто не понимаю куда его засунуть :D
     
  12. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Padaboo
    демон уже стартанутый хотябы...
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    в моем понимании, демон это служба/сервис который постоянно доступен. как он запускается и на чем написан дело десятое.

    раньше я просто пуксал скрипт с while(true). теперь форкаюсь и сижу на событиях. зависит от задач и их реализации. если надо по крону выполнять то и не надо демонов мутить.

    просто как уже сказали выше. демон/служба уже запущена и всегда доступна как сервис.
     
  14. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    мне вот как раз интересно зачем написан, т.е. для каких задач приходилось их писать?
     
  15. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    демонов? ну сейчас в проекте (ММОРПГ) у нас висят демоны юзеров, локаций, боев и чата. это как бы промежуточная прослойка между фронтом и БД, которая (демоны) оперирует высокой абстракцией и сбрасывает ее в БД уже на низком уровне.
     
  16. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    на низком уровне, это т.е. объект юзера обходится итератором и рассовывается по БД к примеру? а почему не хранить объекты в базе? или я не правильно понял?
     
  17. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    при хайлоаде нужен быстрый доступ к данным. БД такого не обеспечивает. Так же нужно быстро уметь ее менять. В демоне все данные подготовлены и находятся в памяти. Отсюда и скорость. А из демона по таймеру в БД отдельным потоком сбрасываются данные в БД. Т.е. в этом случае мы имеем мгновенный доступ к данным + синхронизация с хранилищем.

    Как пример. У юзера около 160 различны параметров. в БД лежит сериализованный массив. Что бы изменить какой-то параметр (к примеру восстанавливается здоровье) классическим подходом надо:

    1. выбрать юзера из БД.
    2. развернуть.
    3. поменять.
    4. сохранить.

    с демонами я просто делаю $oUser->health += 10, к примеру, и не думаю что там куда. БД дергается не на каждый чих, а когда производиться сброс данных в БД.
     
  18. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    ничего не зафлудили. очень познавательная инфа относительно чрезмерно высоконагруженных проектов.

    упс! промахнулся чтоли? вот блин, здесь еще две страницы было оказывается )))