Привет, ребята. Есть PHP-приложение, вроде не тяжелое, сервер мощный, но работает медленно. Начал копать — что можно реально сделать без обновления железа?
Первое, на что смотрю — профилирование через Xdebug или что-то похожее, чтобы понять, где узкие места. Обычно топятся запросы к базе и тяжелые функции. Кэширование — APCu или OPcache подключил? Бывают случаи, когда OPcache отключен, а с ним прирост в скорости 2-3 раза.
Еще сессии — если они хранятся в файлах и много одновременных пользователей, то могут возникать блокировки. Redis или memcached для хранения сессий — очень советую.
Проверял ли кто оптимизацию SQL-запросов? Иногда проблема именно там, а не в PHP. Можно подгрузить ORM или написать свои более простые запросы.
И да, иногда помогает разбить большую логику на несколько шагов или использовать долгоживущие процессы (ReactPHP, Swoole) — но это уже доработка кода.
Что еще обычно спасает без замены сервера? У кого есть проверенные фишки?
Если OPcache не включен — его надо срочно юзать, реально меняет картину. И с сессиями — держать их в Redis гораздо быстрее, чем в файлах, особенно при нагрузке. Еще глянь, может кто-то постоянно дергает базу с тяжелыми JOINами, иногда проще кеш на уровне запросов поставить.
OPcache — мастхэв, реально ускоряет. Сессии в файлах при высокой нагрузке — тормозят однозначно, redis сильно помогает. SQL посмотри внимательно, иногда базу грузят тяжелыми запросами без нужды. Часто помогает просто разбить логику, если много всего подряд происходит за один запрос. Профилировщик — штука полезная, иногда сразу видно, где косяк.