taurus2790
@taurus2790
Я не программер я только учусъ

Как снизить нагрузку сервера?

Доброго всем времечка!

Имеется виртуальный сервер.
Память: 4 GB
Процессор: 1 core
Диск: 40 GB

Стоит ispmanager5 развёрнуто пару сайтов на YII2. И тут я решил перенести сайт на Joomla+VM (хостинг ругался всегда что убивает mysql из за нехватки памяти, было 2 гага.)

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

А оператива кушается на 94-97 процентов.

b504ae20eded482996b63f591b3b45bd.png05dcf0c584504b8db12dcf4975de1fd0.png

Собственно вопрос помогите, хоть немного сбросить нагрузку. Только прошу отвечать более развёрнута, какая команда, где лежат файлы и так далее))) а то я нубик)
  • Вопрос задан
  • 649 просмотров
Решения вопроса 2
romy4
@romy4
Exception handler
профилирование и ещё раз профилирование. Ищите отсутствие индексов в запросах, затем переделывайте запросы, затем агрегируйте данные.
Ответ написан
taurus2790
@taurus2790 Автор вопроса
Я не программер я только учусъ
Оказывается это хДебаг, жрал всю систему на сайте 1000 хостов, и вот они и генерировали нагрузку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@xtreme
Снимаю порчу по SSH :)
Единого совета тут дать нельзя.
Есть нечто общее для облегчения страданий.
1. (Тут я советую вообще всем направо и налево) Поставить nginx на отдачу статических файлов (не забыв включить сжатие), разгрузив апач. Этим немного снизится нагрузка при отдаче многочисленных JS и CSS-файлов. Т.е. общее самочувствие немного улучшится.
2. Включить slow-log в MySQL, чтобы увидеть медленно выполняющиеся запросы и запросы, которые не используют индексы. Люди часто забывают про составные индексы и в результате SELECT на пару полей, который должен в результате вернуть два значения, лопатит всю таблицу в несколько сотен тысяч записей.
3. Профилирование PHP. Поставить для PHP xdebug или XHProf. На примере xdebug - включил модуль, рестартнул/релоаднул апач, походил по самым тормозным ссылкам (или подождал несколько секунд, пока пользователи по ним походят), закомментил модуль, опять релоаднул апач, чтобы вернуть в нормальное состояние. Ну а затем QCacheGrind в руки, открываем самые жирные файлы дампов и смотрим, куда тратится время при выполнении...
Ответ написан
Комментировать
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
slow_query_log, потом EXPLAIN для медленных запросов, затем индексы.
следующий шаг - PROCEDURE ANALYSE. Нередко данные хранятся совсем не оптимально - и можно хорошо выиграть на оптимизации типов данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы