Skip to content

Истории из жизни "Сайт тормозит"

htop

Иван Васильевич 15:06
Дима, помоги пожалуйста переехать на новый сервер. Как это сделать максимально безболезненно? Наш простенький на Intel Atom уже загибается.
Дима 15:08
привет
Иван Васильевич 15:08
Добрый день! Можно ли сделать какое-нибудь клонирование?
Дима 15:09
а он у Вас виртуальный?
Иван Васильевич 15:09
Нет, физический
Дима 15:10
а куда переезжаем?
Иван Васильевич 15:10
Готовим чистый сервер Intel Pentium G6950/4GB/1TB + UNLIM 100 Mbit/s. IP-KVM прошу запросить отдельно, как только будете готовы работать с оборудованием. Пожалуйста, ожидайте уведомление от коллег из технической службы.
Иван Васильевич 15:10
Да туда же. Просто был самый простенький конфиг в Дата-центре Ромашка За (0000) грн. Теперь берем вот этот.
(переписка о способах и методах переноса сервера пропущена)
Дима 15:34
вопрос, а почему вы решили что Ваш сервер - не справляется?
Иван Васильевич 15:35
очень сильно тормозит сайт. Когда на сайте было 30 человек все очень тормозило.
Иван Васильевич 15:36
и загрузка процессора прыгала до 90%. Сейчас уже больше 3100 пользователей зарегистрировалось. Там интел Атом.
Дима 15:36
и как долго держалась 90%? ну и что что Атом...
Иван Васильевич 15:37
Пока люди из-за тормозов не разбежались - держалось долго. Тормозит достаточно серьезно.
Дима 15:39
(еще раз для себя) термин "Тормозит" - вы чем для себе обосновываете?
Иван Васильевич 15:40
Долго очень сайт открывается. Раньше моментально все было, а теперь по 3-4 секунды ждать надо. Он как бы лагает) Ну и отзывы от людей такие же.
Дима 15:41
ок.. давайте по другому. у вас текущем: 4СPU/4 GB и будет 4СPU/4 GB. Где разница?
Дима 15:43
Вот это например что за процесс?
Иван Васильевич 15:44
Понятия не имею. Что то perl связано.
Дима 15:44
Второй пример:
Дима 15:45
тут явно видно что mysql отожрал львиную долю.. вопрос - ПОЧЕМУ? у него 1.000.000 запросов? а сколько? или тормозит дисковая система? а она у вас какая? а какую берете... ??? будет разница?
Иван Васильевич 15:46
Cейчас там жесткий диск на 250 гигабайт, берем на 1 террабайт.
Дима 15:46
или может запросы без индексов прут? смотрели сколько их? Размер диска НИКАК не связан со скоростью его работы.
Иван Васильевич 15:47
Intel Atom D510/4GB/250GB -> Intel Pentium G6950/4GB/1TB. Я понял.
Дима 15:47
И судя по количеству занятой — вам до предела далековато!
Иван Васильевич 15:47
У нас база данных дает лаг. Да.
Дима 15:49
я не могу ответить при таком объеме информации на ваш вопрос. отвечу так: я считаю вы не назвали факторов требующих смены данного железа на другое.
Иван Васильевич 15:50
Я понял. Ну факторы следующие. Сайт работал быстро, когда набрали 3000 человек - сайт начал сильно тормозить. Когда на сайте онлайн было 30 человек - работа с сайтом практически уже была невозможна. Я смотрел на загрузку процессора - она была максимальной.
Дима 15:51
Это не факты, это внешние симптомы.
Иван Васильевич 15:51
Я так понял, что надо оптимизировать код, конкретно работу базы данных. Видимо у нас огромное количество запросов идет.
Дима 15:51
сначала надо понять причину загрузки CPU. нет, "не видимо"... где видно?
Иван Васильевич 15:52
Тогда сдаюсь)
Дима 15:56
"пиф-паф... убит" :)
Иван Васильевич 15:56
Дима, есть совет по выявлению проблемы? На данный момент работа сайта уже не комфортна. Когда на сайте 30 человек, то практически невозможна. SSD подключить? Добавить оперативной памяти?)
Дима 15:57
совет: найдите причину "торможения"
Иван Васильевич 16:26
mysql 85.3 % /usr/sbin/mysqld. У нас действительно база данных пожирает все ресурсы слабенького Атома.
Дима 16:28
да, это понятно, а чем?
Дима 16:29
Пример, который тоже начинался со слов "Сайт тормозит": https://note.wdm.net.ua/fromLife/dovecot-gruzit-cpu/
Иван Васильевич 16:31
Уверен, что это наш случай. Включен ли у нас кэш MYSQL?
Дима 16:32
ни что не факт пока вы это не проверили и не увидели.
Иван Васильевич 16:33
Дима, а где они смотрят статистику записей в БД? Там такие красивые графики. Top показывает что все ресурсы отобрал MySQL. Видим запросы с колоссальным временем выполнения. Как вот это все просмотреть и где?
Дима 16:34
графики строит zabbix
Дима 16:38
в том случае на 90% тормоза создавали "идиотские" запросы к бд
Дима 16:40
утилита mytop или на клиенте mysql выполнять SHOW PROCESSLIST
Разработчик 17:00
я тут почитал вашу беседу, прошелся по своим новым запросам и немного их оптимизировал — гляньте ушло тормоза и загрузка? Вроде визуально быстрее стало работать.
Иван Васильевич 17:00
Стало гораздо быстрее!
Заказчик 17:01
а что сделал?
Разработчик 17:01
запросы были не оптимальные — вместо одного запроса делалось несколько. Это каждый раз при формировании страницы юзеру. Вот и тормоза — теперь их нет.
Иван Васильевич 17:02
Сайт начал летать как Шумахер! Мы тут уже не знали что делать. Дима, спасибо огромное за трезвую оценку ситуации. Дело действительно было не в конфигурации.
Дима 21:32
Иван Васильевич, а как бы вы назвали свою позицию в данном проекте?
Иван Васильевич 21:55
Руководитель стартапа)