Оптимизация под большие нагрузки

Тема в разделе "PHP", создана пользователем phillip, 14 дек 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    всем привет! попался мне проект на заказ, вот хочу спросить совета. Суть в том, что скрипт должен генерить в день много страниц. Допустим, по полляма в сутки. При этом одновременно может быть много запросов к серверу, и надо успевать по всем запросам доставать значения из БД и передавать как ответ. Какие подводные камни могут быть? Реально ли вообще по полляма в день обрабатывать одним сервером? Выдержит ли Mysql или мб лучше вообще без БД обойтись. Или может быть как-то в кеш записывать? :)
     
  2. _AlexSK_

    _AlexSK_ Постоялец

    Регистр.:
    30 окт 2008
    Сообщения:
    59
    Симпатии:
    8
    По-любому без кеширования тут не обойтись. Если грамотно сделать кеширование, то можно. Но все равно, есть еще много вопросов:
    Насколько тяжелые запросы предполагаются?
    На чем будет разрабатываться?
    Какой сервак?
     
    phillip нравится это.
  3. Ponochka

    Ponochka Постоялец

    Регистр.:
    21 фев 2008
    Сообщения:
    128
    Симпатии:
    13
    phillip нравится это.
  4. Ad1ce

    Ad1ce Постоялец

    Регистр.:
    18 авг 2009
    Сообщения:
    109
    Симпатии:
    25
    Получается что в среднем 6 запросов в секунду. В принципе нормально.
    Но данных мало, какая бд, сколько записей, тип записей, есть ли индексы. Если запросы к базе будут постоянно разные, то кеширование тут не поможет.
    В любом случае что мешает промоделировать ситуацию? Создайте бд с данными, создайте простейший скрипт и цикл. Работа на полчаса.
     
    phillip нравится это.
  5. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Всем спасибо за ответы!
    Окончательных данных я пока не знаю. Знаю что сервак будет линуксовый, мне настраивать его не надо будет- этим будут заниматься админы сервака. Мое дело- сказать им, какой модуль пхп установить, где какие настройки подкрутить.
    Насчет остального.
    Почитал и понял, что в БД хранить большие статьи и большие данные нельзя. А у меня есть 500тыщ статей, и юзерам их надо показывать, в зависимости от их запроса. И есть у меня порядка 20 крупных текстовых файлов, мегабайт по 10-30 которые будут задействованы основную часть времени. Они должны быть под рукой. Вообщем предполагаю что полмилиона страниц надо хранить на жестком диске. В итоге примерно так-
    Юзер запрашивает файл, мы из бд достаем ссылку на файл, а сам файл храним на жестком диске. Затем можно даже закешировать этот файл на машине юзера, который его запросил. Чтобы больше не возвращаться к этой процедуре. А те 20 файлов крупных, которые нужны постоянно, надо хранить в оперативной памяти сервака. Примерно так мне это представляется. Правильно я проектирую? Для кеширования нашел для пхп расширение APC, почитал вроде его выбрал как оптимальное. А мемкеш, и APC это вообще из разных областей?
     
  6. sw0rdf1sh

    sw0rdf1sh Создатель

    Регистр.:
    2 апр 2007
    Сообщения:
    41
    Симпатии:
    7
    APC позволяет ускорить исполнение скриптов за счет того что не надо каждый раз парсить php и выпонлять его. http://en.wikipedia.org/wiki/PHP_accelerator

    Memcached используется для кэширования данных полученных из БД в памяти. Дернули из базы запись, сохранили ее в кэше, следующий раз тянем из кэша а не из базы
     
    phillip нравится это.
  7. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    а допустим текстовый файл в оперативную память можно поместить? предположим я считываю текстовый файл в массив функцией file(); а текстовый файл большой, и каждый раз считывать- дело долгое. а нужен он постоянно
     
  8. Ad1ce

    Ad1ce Постоялец

    Регистр.:
    18 авг 2009
    Сообщения:
    109
    Симпатии:
    25
    В данном случае данные поместятся в файл только на период выполнения скрипта, и скорей всего будут доступны только этому скрипту.
    Чтобы поместить данные в память на долгое время - не слышал о таком.
     
  9. Rayan

    Rayan Писатель

    Регистр.:
    9 июн 2007
    Сообщения:
    3
    Симпатии:
    0
    мне так кажется что если вы контент храните в файлах то о больших нагрузках можно забыть
    у вас уже есть движок написан готовый или только собираетесь?
     
  10. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Ничего пока не написано, советуюсь с вами как лучше написать. А Если не хранить в файлах, то в чем хранить? В бд пишут тоже нельзя большие данные хранить. Я больше не знаю в чем еще хранят :D
     
Статус темы:
Закрыта.