ФорумПрограммированиеPHP для идиотов → php-скриптинг в условиях высокой нагрузки

php-скриптинг в условиях высокой нагрузки

  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 30 января 2011 г. 8:21

    Что могут сказать про по этому поводу?
    Я реализую это таким образом:
    1. Правильно отконфигурированный php, только с нужными модулями
    2. Своя функция контроля ошибок, которая бы хукала всю систему в нулдаун в случае чего-то серьезного
    3. База данных на отдельном сервере, который находится в одном ДЦ с основным сервером
    4. НИкаких PDO/Framework/ORM и прочей хуеты, всё руками и только
    5. Отключить все шапочные обработчики php по типу magic_quotes
    6. Распределить четко структуру файлов и проставлять кеширование файлов в заголовках
    7. По возможности кешировать результаты запросов в оперативную память
    8. Юзать по возможности memcache
    9. Максимально использовать возможности второго сервера с базой данных

    Кто не понял, тому пример

    $sql = "SELECT * FROM TEST WHERE TIME=$time;"; // в этом случае $time высчитывает php
    $sql = "SELECT * FROM TEST WHERE TIME=NOW();"; // в этом случае мы перебросили нагрузку на второй сервер


    10. Второй сервер должен быть заблочен с общего доступа извне, да и вообще ему прописать только два айпишника на доступ - свой и айпи первого сервера

    кто не согласен задавайте свои ответы
  • md5

    Сообщения: 11957 Репутация: N Группа: в ухо

    Spritz 30 января 2011 г. 8:25, спустя 4 минуты 8 секунд

    покажи на каком проекте ты это реализуешь
    все умрут, а я изумруд
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 30 января 2011 г. 8:34, спустя 8 минут 5 секунд


    покажи на каком проекте ты это реализуешь


    это не имеет значения
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 30 января 2011 г. 8:36, спустя 2 минуты 51 секунду

    А что ты хочешь этим сказать?
    Спустя 15 сек.
    fgets,
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 30 января 2011 г. 8:40, спустя 3 минуты 56 секунд


    А что ты хочешь этим сказать?
    Спустя 15 сек.
    fgets,


    про проконсультироваться, написал же Что могут сказать про по этому поводу?

    я где то читал, что так нельзя, запросы не кэшируются

    этот запрос я в качестве примера привел, в качестве примера перераспределения нагрузки с php на бд
  • md5

    Сообщения: 11957 Репутация: N Группа: в ухо

    Spritz 30 января 2011 г. 8:43, спустя 2 минуты 53 секунды

    перераспределения нагрузки с php на бд

    пиздец



    покажи на каком проекте ты это реализуешь


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

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 30 января 2011 г. 8:48, спустя 5 минут 1 секунду


    перераспределения нагрузки с php на бд

    пиздец



    покажи на каком проекте ты это реализуешь


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


    это подойдет к любому проекту высоконагруженному и под пхп, а про пиздец могу сказать что второй сервер чисто под бд, и нужно чтобы он оперативу жрал как мог у себя, т.е. чувствовал себя просторно и первый сервер как бы сбрасывал с себя бы лишний груз отыгрываясь на бд
  • md5

    Сообщения: 11957 Репутация: N Группа: в ухо

    Spritz 30 января 2011 г. 8:52, спустя 3 минуты 30 секунд

    т.е. на твоем "любом" проекте узкое место - пхп?
    а мускул сука такой будет простаивать!
    все умрут, а я изумруд
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 30 января 2011 г. 8:53, спустя 1 минуту 22 секунды


    т.е. на твоем "любом" проекте узкое место - пхп?
    а мускул сука такой будет простаивать!


    оператива на первом сервере засираетсмя кешем, а на втором чисто sql почему бы и нет
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 января 2011 г. 9:14, спустя 20 минут 57 секунд

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

    ага. вспомнилось


    public string getToday() {
    return JDBC.getConnection().execute("SELECT NOW()").scalar();
    }

    :D:D:D
    Сапожник без сапог
  • AlexB

    Сообщения: 4300 Репутация: N Группа: в ухо

    Spritz 30 января 2011 г. 9:35, спустя 20 минут 42 секунды


    $sql = "SELECT * FROM TEST WHERE TIME=NOW();"; // в этом случае мы перебросили нагрузку на второй сервер

    Крайне сомнительно, что такой запрос ваще чего-то вернет … ))))

    По существу могу сказать то, что говорил уже миллион раз. Прежде всего надо оптимизировать запросы и дрочить каждый до того состояния, когда rows в плане запроса будет порядка O(количество возвращаемых строк).
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 30 января 2011 г. 10:26, спустя 50 минут 51 секунду

    ололо
    11. писать модули на си
    12. использовать хранимые процедуры
    13. использовать реплицирование базы данных по типу мастер-слейвы. писать в мастер, читать из слейвов

    хуеты с update set timestamp_field=NOW() не надо, время надо вставлять в скрипте и желательно в UTC. почему в скрипте? потому что записывать время с одного сервера а потом читать на другом несколько неправильно
    Спустя 130 сек.
    НИкаких PDO

    ваще не понял.
    а как ты будешь препареды делать?
    Спустя 264 сек.
    это не имеет значения

    ололо жыржыржыр
    Спустя 22 сек.
    14. статику выносить на отдельные сервера
    не всё полезно, что в swap полезло
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 30 января 2011 г. 10:45, спустя 19 минут 35 секунд

    хуеты с update set timestamp_field=NOW() не надо, время надо вставлять в скрипте и желательно в UTC. почему в скрипте? потому что записывать время с одного сервера а потом читать на другом несколько неправильно

    Крайне сомнительно, что такой запрос ваще чего-то вернет … ))))

    ага. вспомнилось


    блять я же написал в первом посту это ПРИМЕР, тобишь время тут ваще не причем, я могу сделать и такйо пример

    SELECT PORN(x.id, EINT), PORN(x.firstname, ESTR), AVG(z.advanced) FROM x,z WHERE x.date < now()-INTERVAL '1 day' LIMIT 4;
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 30 января 2011 г. 10:50, спустя 4 минуты 58 секунд

    использовать хранимые процедуры

    есть мнение, что логику тяжелую лучше на пых переносить а не на базу, что б она не лочилась во время тяжелых вычислений
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 января 2011 г. 10:51, спустя 43 секунды

    что б она не лочилась во время тяжелых вычислений

    она лочится при использовании логики?)))
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!