Ответы пользователя по тегу PHP
  • Из-за большого количество посетителей сайт поплыл, что делать?

    @andreyvlru
    менеджер-программист
    1500 / 10 / 60 = 2.5 запроса в секунду это очень мало

    локализуйте проблему
    Вам нужно узнать сколько по времени генерируются страницы
    за какое время выполняются запросы к базе
    и после этого вам станет понятно что улучшать
    Ответ написан
    1 комментарий
  • Оптимизация nginx, php-fpm, postgresql под высокую нагрузку?

    @andreyvlru
    менеджер-программист
    Каждый компонент вашей системы требует отдельного анализа.
    В целом при простой грамотной настройке у вас более чем достаточно ресурсов для обслуживания указанного трафика, если только вы на ходу не будете сложные группировки или вложенные запросы делать.

    Тот сервер что вы привели он скорее всего даже избыточен, зачем вам столько памяти если БД совсем небольшая?

    Выделяйте достаточное количество памяти на mysql, redis.
    Проверьте сетевые настройки чтобы они были настроены на высокое количество подключений
    nginx, php-fpm - там все стандартно достаточно для вашей нагрузки.
    В процессе работы вы сами увидите узкие места, но вообще железо у вас мощное и может простить довольно много ошибок
    Ответ написан
    Комментировать
  • Как записать данные, приходящие по TCP/IP в MySQL (желательно на PHP)?

    @andreyvlru
    менеджер-программист
    Вам надо организовать работу с сокетами на уровне php.
    Здесь можно посмотреть пример tcp/ip cервера.
    Если нужно записывать в БД то подключайте mysql и пишите туда.
    Если вы используйте какой-то стандартный протокол то лучше поискать среди готовых решений, очень вероятно что найдется то что вам подойдет или может быть донастроено под ваши нужды.
    Ответ написан
    Комментировать
  • Почему nginx долго отдает сайт?

    @andreyvlru
    менеджер-программист
    Очень вероятно что проблема в долгом ресолве localhost в ip адрес.

    У меня было очень похоже. Php коннектился к бд несколько секунд.
    Простое решение - подключаться к 127.0.0.1 (не использовать localhost)

    Другой вариант - можно попробовать добавить в hosts следующие записи
    127.0.0.1 localhost
    ::1 localhost

    У меня это сработало и все стало открываться моментально.
    Ответ написан
  • Как пресечение дублирование результатов запросов?

    @andreyvlru
    менеджер-программист
    Проиндексируйте свой контент сфинксом, при составлении индекса он туда записывает слова без окончания
    то есть "машина" и "машины" будут для него одинаковыми. Если вы будете искать по таким словам, то результаты будут одинаковыми. На выходе сфинкс даст вам набор идентификаторов из БД, его можете сохранить как вам удобно.
    Ответ написан
    Комментировать
  • Как найти причину нагрузки на процессор?

    @andreyvlru Автор вопроса
    менеджер-программист
    похоже что проблема в банальной нехватке памяти
    Сервер 16Gb памяти
    redis 7 Gb
    php-fpm 5-8 Gb

    Думаю малейшие перегрузки по памяти приводили к свопу или отказам. Подтверждений правда пока не увидел. Расгрузил сервер, убрал часть нагрузки на запасной, посмотрим как сегодня на пике нагрузки будет.

    P.S. Спасибо за наводку на newrelic - штука офигенная, но и дорогая собака
    Ответ написан
    Комментировать