Skip to content

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

htop

[15:06] Иван Васильевич: Дима, помоги пожалуйста переехать на новый сервер. Как это сделать максимально безболезненно? Наш простенький на Intel Atom уже загибается.

[15:08] Дима: привет

[15:08] Иван Васильевич: Добрый день! [15:09] Иван Васильевич: Можно ли сделать какое-нибудь клонирование?

[15:09] Дима: а он у Вас виртуальный?

[15:09] Иван Васильевич: Нет, физический

[15:10] Дима: а куда переезжаем?

[15:10] Иван Васильевич: Готовим чистый сервер Intel Pentium G6950/4GB/1TB + UNLIM 100 Mbit/s.
IP-KVM прошу запросить отдельно, как только будете готовы работать с оборудованием.
Пожалуйста, ожидайте уведомление от коллег из технической службы.
[15:10] Иван Васильевич: Да туда же. Просто был самый простенький конфиг в Дата-центре Ромашка
[15:10] Иван Васильевич: За (0000) грн.
[15:10] Иван Васильевич: Теперь берем вот этот.

(переписка о способах и методах переноса сервера пропущена)

[15:34] Дима: вопрос, а почему вы решили что Ваш сервер - не справляется?

[15:35] Иван Васильевич: очень сильно тормозит сайт
[15:35] Иван Васильевич: Когда на сайте было 30 человек все очень тормозило.
[15:36] Иван Васильевич: и загрузка процессора прыгала до 90%
[15:36] Иван Васильевич: Сейчас уже больше 3100 пользователей зарегистрировалось
[15:36] Иван Васильевич: Там интел Атом.

[15:36] Дима: и как долго держалась 90% ?
[15:36] Дима: ну и что что Атом...

[15:37] Иван Васильевич: Пока люди из-за тормозов не разбежались - держалось долго
[15:37] Иван Васильевич: Тормозит достаточно серьезно.

[15:39] Дима: (еще раз для себя ) термин "Тормозит" - вы чем для себе обосновываете?

[15:40] Иван Васильевич: Долго очень сайт открывается. Раньше моментально все было, а теперь по 3-4 секунды ждать надо
[15:41] Иван Васильевич: Он как бы лагает) Ну и отзывы от людей такие же.

[15:41] Дима: ок.. давайте по другому.
у вас текущем: 4СPU/4 GB
и будет 4СPU/4 GB

Где разница?
[15:43] Дима: Вот это например что за процесс:

[15:44] Иван Васильевич: Понятия не имею. Что то perl связано.

[15:44] Дима: Второй пример: image

[15:45] Дима: тут явно видно что mysql отожрал львиную долю.. вопрос - ПОЧЕМУ?
[15:45] Дима: у него 1.000.000 запросов ? а сколько?
[15:45] Дима: или тормозит дисковая система?
[15:45] Дима: а она у вас какая? а какую берете... ??? будет разница?

[15:46] Иван Васильевич: Cейчас там жесткий диск на 250 гигабайт, берем на 1 террабайт

[15:46] Дима: или может запросы без индексов прут ? смотрели сколько их?
[15:46] Дима: Размер диска НИКАК не связан со скоростью его работы

[15:46] Иван Васильевич: Intel Atom D510/4GB/250GB + UNLIM 100 Mbit/s
[15:47] Иван Васильевич: Вот сейчас на этом
[15:47] Иван Васильевич: Intel Pentium G6950/4GB/1TB + UNLIM 100 Mbit/s
[15:47] Иван Васильевич: Хотим на этот
[15:47] Иван Васильевич: Я понял

[15:47] Дима: И судя по количеству занятой - вам до предела долековато! image

[15:47] Иван Васильевич: У нас база данных дает лаг
[15:47] Иван Васильевич: да

[15:49] Дима: я не могу ответить при таком объеме информации на ваш вопрос.
отвечу так: я считаю вы не назвали факторов требующих смены данного железа на другое.

[15:50] Иван Васильевич: Я понял. Ну факторы следующие. Сайт работал быстро, когда набрали 3000 человек - сайт начал сильно тормозить. Когда на сайте онлайн было 30 человек - работа с сайтом практически уже была невозможна.
[15:50] Иван Васильевич: Я смотрел на загрузку процессора - она была максимальной

[15:51] Дима: Это не факты, это внешние симтомы.

[15:51] Иван Васильевич: Я так понял, что надо оптимизировать код, конкретно работу базы данных
[15:51] Иван Васильевич: видимо у нас огромное количество запросов идет

[15:51] Дима: сначала надо понять причину загрузки CPU
[15:52] Дима: нет, "не видимо"... где видно?

[15:52] Иван Васильевич: Тогда сдаюсь)

[15:56] Дима: "пиф-паф... убит" :)

[15:56] Иван Васильевич: Дима, есть совет по выявлению проблемы? На данный момент работа сайта уже не комфортна.
[15:57] Иван Васильевич: Когда на сайте 30 человек, то практически невозможна
[15:57] Иван Васильевич: SSD подключить? Добавить оперативной памяти?)

[15:57] Дима: совет: найдите причину "торможения"

[15:58] Иван Васильевич: Я понял
[16:26] Иван Васильевич: mysql 85.3 % /usr/sbin/mysqld
[16:27] Иван Васильевич: У нас действительно база данных пожирает все ресурсы слабенького Атома

[16:28] Дима: да, это понятно, а чем ?
[16:29] Дима: Пример, который тоже начинался со слов "Сайт тормозит": https://note.wdm.net.ua/dovecot-gruzit-spu/
[16:29] Дима: Другой пример: https://note.wdm.net.ua/simpla-tormozit/

[16:31] Иван Васильевич: Уверен, что это наш случай
[16:31] Иван Васильевич: https://note.wdm.net.ua/simpla-tormozit/
[16:32] Иван Васильевич: Включен ли у нас кэш MYSQL?

[16:32] Дима: ни что не факт пока вы это не проверили и не увидили.

[16:32] Иван Васильевич: Проблема появилась после того, как мы сделали под 3 тысячи регистраций.
[16:33] Иван Васильевич: Дима, а где они смотрят статистику записей в БД?
[16:33] Иван Васильевич: Там такие красивые графики
[16:33] Иван Васильевич: Top показывает что все ресурсы отобрал MySQL. Смотрим, что он делает, видим запросы колосальным временем выполнения:
[16:33] Иван Васильевич: Как вот это все просмотреть и где?

[16:34] Дима: графики строит zabbix

[16:37] Иван Васильевич: Я понял. Учитывая, что лаги у нас начались после 3 тысяч регистраций
[16:37] Иван Васильевич: Я думаю наш случай похож на магазин Simpla

[16:38] Дима: в том случае на 90% тормоза создавали "идиотские" запросы к бд

[16:39] Иван Васильевич: на 90% уверен, что у нас та же самая ситуация.

[16:39] Дима: ну, раз вы знаете путь - остается только по нему пойти

[16:40] Иван Васильевич: Вопрос, как в режиме реального времени отмониторить эти запросы?

[16:40] Дима: утилита mytop
[16:41] Дима: или на клиенте mysql выполнять SHOW PROCESSLIST

[17:00] Разработчик: я тут почитал вашу беседу, прошелся по своим новім запросам и немного их оптимизировал - гляньте ушло тормозаи загрузка?
[17:00] Разработчик: вроде визуально бістрее стало работать

[17:00] Иван Васильевич: Стало гораздо быстрее!

[17:01] Заказчик: а что зделал?

[17:01] Разработчик: запросы были не оптимальные - вместо одного запроса делаолсь несколько
[17:02] Разработчик: это каждый раз при формировании страницы юзеру
[17:02] Разработчик: вот и тормоза - теперь их нет

[17:02] Заказчик: во даеш

[17:02] Разработчик: хотя пришлось немного раньше выкатить на мастер профиль работа - там еще языкковых меток нет
[17:02] Разработчик: но он ужеработает
[17:02] Разработчик: и не совмем коректно отображает в инфо но я счас допилу

[17:02] Иван Васильевич: Сайт начал летать как Шумахер
[17:03] Иван Васильевич: Мы тут уже не знали что делать

[17:03] Дима: читали объявление?
[17:04] Дима: "крупная международная финансовая корпорация возьмет в аренду степлер"...

[17:04] Иван Васильевич: Ахаххахах
[17:04] Иван Васильевич: Это про нас)
[17:06] Иван Васильевич: Дима, спасибо огромное за трезвую оценку ситуации.
[17:06] Иван Васильевич: Дело действительно было не в конфигурации
[17:06] Иван Васильевич: Ну и по твоей статье про интернет магазин я понял в принципе в чем дело

[21:32] Дима: Иван Васильевич, а как бы вы назвали свою позицию в данном проекте?

[21:55] Иван Васильевич: Руководитель стартапа)