YuriBtr 58 Опубликовано: 19 января 2017 Рассказать Опубликовано: 19 января 2017 Здравствуйте, на протяжении нескольких лет пользования сайтом нагрузка на хостинг выросла на порядок, причем особенно быстро за последние месяцы. VSU - виртуальные единицы нагрузки. Средние показатели сайта такие: конец 2012 года - кол-во статей 8000 (размер базы ~120 Мб), среднее кол-во просмотров 40 тыс/сутки, среднее потребление 16 VSU конец 2014 года - кол-во статей 20000 (размер базы ~400 Мб) среднее кол-во просмотров 100 тыс/сутки, среднее потребление 40 VSU конец 2016 года - кол-во статей 37000 (размер базы ~1000 Мб) среднее кол-во просмотров 130 тыс/сутки, среднее потребление > 160 VSU и постоянно растет, плюс появились непонятные пики на диаграмме нагрузки, достигающие 200 VSU и более. Причем за последние три месяца потребление выросло до 80, 120, 160 VSU соответственно. Налицо геометрическая прогрессия. Сейчас стоит версия DLE 10.3 (была обновлена с 10.1 полгода назад). Последний патч безопасности установлен. DDOS атака не зафиксирована. На сайте постоянно включены: календарь, мультикатегории, облако тегов, предмодерация комментариев, выборочный доступ к категориям для пользователей, публикация на дату, схожие новости, gzip, опросы и прочее . Отключено кеширование счетчика новостей. Но эти настройки были всегда включены - что могло послужить причиной резкого роста нагрузки? Сейчас даже иногда показывается окно ошибки соединения с сервером MySQL. Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 19 января 2017 Рассказать Опубликовано: 19 января 2017 (изменено) Растет база, растут просмотры, соответственно растут и потребляемые ресурсы. Включите всё кеширование, какое возможно. И переходите на VDS. И посмотрите самые медленные запросы, может чего можно оптимизировать Изменено 19 января 2017 пользователем webair Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 19 января 2017 Рассказать Опубликовано: 19 января 2017 (изменено) Автор Я пользую VPS - думаю тут разница небольшая, тем более что там есть плавный переход на разные тарифы, а с VDS сложно - какую машину оплатил такую и используешь, при смене тарифного плана надо менять железо. А насчет роста просмотров и ресурсов - зависимость нелинейная, тем более что в последнее время она резко начала расти - вот это и странно. Хотелось бы понять - какого уровня нужен комп для описываемого мной сайта (кол-во статей > 40 000, размер базы >1 000 Мб, среднее кол-во просмотров 150 тыс/сутки), потому как есть опасения что проблемы у хостера с железом - а я крайний. Изменено 19 января 2017 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 19 января 2017 Рассказать Опубликовано: 19 января 2017 (изменено) Автор Я бы не поднимал этот вопрос здесь - но вот графики, на них видно что начиная с 9 января идет резкий рост потребления ресурсов при достаточно невысокой посещаемости. В прошлом году посещаемость иногда доходила до 200 тыс в сутки, но такого зашкала нагрузки не было (считаем распределение нагрузки в течении суток одинаковым). Например в январе этого года 150 тысяч просмотров потребляют около 150 VSU. А вот графики с апреля 16 года. По состоянию на 11.04 просмотров 180 тысяч а потребление всего 50 VSU Изменено 19 января 2017 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
shvondersin 6 Опубликовано: 20 января 2017 Рассказать Опубликовано: 20 января 2017 может вас парсят или еще чего, поставьте защиту от множества соединений с одного адреса. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 20 января 2017 Рассказать Опубликовано: 20 января 2017 Автор 46 минут назад, shvondersin сказал: может вас парсят или еще чего, поставьте защиту от множества соединений с одного адреса. Да вроде нет. Кол-во запросов в логах находится пределах нормы. Тем более что с DDOS сталкивались раньше несколько раз - и их признаки мне известны. Хостер оперативно включает защиту в случае таких атак. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 20 января 2017 Рассказать Опубликовано: 20 января 2017 Гадать по всяким VSU абсолютно бесполезная затея. Потому как это не какая то реальная величина, а виртуальная. Некое значение придуманное хостингом. На нее могут влиять что угодно, вплоть до ваших соседей. Физический сервер, даже если он разделен на несколько независимых сайтов, все равно остается физическим сервером. Он выполняет все команды от всех в порядке очереди. Простой пример, у вашего соседа резко поднимается посещаемость, серверу поступают запросы от него и от вас. Его чаще, ваши запросы идут в очередь, и ждут, а свои VSU вы тратите, потому как проходит больше физического времени между генерацией запроса и его выполнением, т.е. считается что потрачено больше времени. Это такой очень очень упрощенный пример. Поэтому на серьезных сайтах нужно уходить от этой виртуальности, на отдельные физические сервера, чтобы никого кроме вас не было. Кстати размер базы ~400 Мб и размер базы ~1000 Мб это существенная разница. Начиная от 1 ГБ, в MySQL для MyISAM происходит серьезная деградация производительности. На таких БД настроятельно рекомендуется переходить на innodb Цитата Ссылка на сообщение Поделиться на других сайтах
shvondersin 6 Опубликовано: 20 января 2017 Рассказать Опубликовано: 20 января 2017 15 минут назад, celsoft сказал: Кстати размер базы ~400 Мб и размер базы ~1000 Мб это существенная разница. Начиная от 1 ГБ, в MySQL для MyISAM происходит серьезная деградация производительности. На таких БД настроятельно рекомендуется переходить на innodb хм, а как это можно переходить? типа конвертация какая то? я всегда использовал мускл. Но мне до 1гб еще очень далеко, но буду иметь ввиду, спасибо Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 20 января 2017 Рассказать Опубликовано: 20 января 2017 Обязательно нужно обновляться до актуальной версии, потом делать бекап БД, в файле бекапа меняете myisam на innodb и восстанавливаете бекап. MySQL должна быть не ниже 5.6.4 версии. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 20 января 2017 Рассказать Опубликовано: 20 января 2017 (изменено) Автор 1 час назад, celsoft сказал: Обязательно нужно обновляться до актуальной версии, потом делать бекап БД, в файле бекапа меняете myisam на innodb и восстанавливаете бекап. MySQL должна быть не ниже 5.6.4 версии. Спасибо за совет, это уже что-то. Буду обновляться, жаль только много времени уходит на перенос изменений. Было бы такое легкое обновление как в Wordpress - было бы просто супер. Еще бы неплохо быть уверенным в том, что обновление с 10.3 до 11.2 не нагрузит сайт еще больше чем сейчас есть. Изменено 20 января 2017 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 20 января 2017 Рассказать Опубликовано: 20 января 2017 18 минут назад, YuriBtr сказал: Спасибо за совет, это уже что-то. Буду обновляться, жаль только много времени уходит на перенос изменений. Было бы такое легкое обновление как в Wordpress - было бы просто супер. Еще бы неплохо быть уверенным в том, что обновление с 10.3 до 11.2 не нагрузит сайт еще больше чем сейчас есть. Тогда поддержите развитие идеи vqmod - все изменения вносятся виртуально, обновление DLE без заморочек ) Цитата Ссылка на сообщение Поделиться на других сайтах
Kolbaser 33 Опубликовано: 21 января 2017 Рассказать Опубликовано: 21 января 2017 На актуальную версию DLE в любом случае стоит перейти, а вместе с ней обновить серверное ПО, хотя бы PHP7 поставить, из-за него, говорят, на крупных проектах заметен прирост производительности. Цитата Ссылка на сообщение Поделиться на других сайтах
shvondersin 6 Опубликовано: 21 января 2017 Рассказать Опубликовано: 21 января 2017 1 час назад, Kolbaser сказал: На актуальную версию DLE в любом случае стоит перейти, а вместе с ней обновить серверное ПО, хотя бы PHP7 поставить, из-за него, говорят, на крупных проектах заметен прирост производительности. я прямо сейчас обновляю до 11.2 А на прошлой неделе обновил сервер до Ubuntu 16.04 там по умолчанию php7 судя по мониторингу обновление сервера уже улучшило производительность. Цитата Ссылка на сообщение Поделиться на других сайтах
Taganay 27 Опубликовано: 21 января 2017 Рассказать Опубликовано: 21 января 2017 Если включены мультикатегории, то отключите их. Нагрузка упадет в 10 раз, проверено. Цитата Ссылка на сообщение Поделиться на других сайтах
shvondersin 6 Опубликовано: 21 января 2017 Рассказать Опубликовано: 21 января 2017 В 20.01.2017 в 12:55, celsoft сказал: Обязательно нужно обновляться до актуальной версии, потом делать бекап БД, в файле бекапа меняете myisam на innodb и восстанавливаете бекап. MySQL должна быть не ниже 5.6.4 версии. Сделал, перезалил, вроде ничего не произошло, сайт по прежнему работает... спасибо Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 21 января 2017 Рассказать Опубликовано: 21 января 2017 Автор 3 часа назад, Taganay сказал: Если включены мультикатегории, то отключите их. Нагрузка упадет в 10 раз, проверено. Я DLE выбрал именно из за поддержки мультикатегорий. Тогда, 5 лет назад, серьезной альтернативы не было. 5 часов назад, Kolbaser сказал: На актуальную версию DLE в любом случае стоит перейти, а вместе с ней обновить серверное ПО, хотя бы PHP7 поставить, из-за него, говорят, на крупных проектах заметен прирост производительности. А вот за совет спасибо! Попробую перейти на PHP 7. Потому как надо сократить потребление ресурсов насколько возможно. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 21 января 2017 Рассказать Опубликовано: 21 января 2017 Автор В 20.01.2017 в 14:55, celsoft сказал: Обязательно нужно обновляться до актуальной версии, потом делать бекап БД, в файле бекапа меняете myisam на innodb и восстанавливаете бекап. MySQL должна быть не ниже 5.6.4 версии. 1. Как в файле руками заменить версию myisam на innodb ? 2. Можно ли без восстановления из бекапа сделать онлайн трансформацию базы? Я нашел такую команду: ALTER TABLE table_name ENGINE=InnoDB; Будет ли она работать? Спасибо заранее за ответ. Цитата Ссылка на сообщение Поделиться на других сайтах
shvondersin 6 Опубликовано: 22 января 2017 Рассказать Опубликовано: 22 января 2017 19 часов назад, YuriBtr сказал: 1. Как в файле руками заменить версию myisam на innodb ? я открыл в текстовом редакторе и сделал заменить все... сохранил и залил базу, все работает. Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 24 января 2017 Рассказать Опубликовано: 24 января 2017 В 21.01.2017 в 21:35, YuriBtr сказал: 1. Как в файле руками заменить версию myisam на innodb ? 2. Можно ли без восстановления из бекапа сделать онлайн трансформацию базы? Я нашел такую команду: ALTER TABLE table_name ENGINE=InnoDB; Будет ли она работать? Спасибо заранее за ответ. Лучше слить базу и в Notepad++ поменять движок базы, потом влить обратно, смена на боевом сервере может иметь не приятные последствия... Естественно сайт нужно потушить в этот момент. В 22.01.2017 в 17:05, shvondersin сказал: я открыл в текстовом редакторе и сделал заменить все... сохранил и залил базу, все работает. Нужно менять не всё, а по маске. Иначе можно все упоминания в тексте поменять. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.