LEOnidUKG

LEOnidUKG
Рейтинг
1776
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование
suffix:

Но я не использую это ибо

а) Генерация на лету хоть и немного но замедляет отдачу контента
б) Для моего сайта неактуально - в тех статьях где у меня много фото также как минимум 3-4 видео суммарным весом в 10+Мб - так что экономить на весе картинок нет смысла просто.

На лету? Вы работали с сайтами, у которых посещалка больше 100 "калек" в сутки? :)

Это вообще не вариант.

-= Serafim =-:
Если быть на 7.0 версии, а не 7.4, то насколько отличается скорость и безопасность практически?

В основном 7.0 и 7.4 полностью совместимы, поэтому смысла сидеть на старой нет. За безопасность не скажу.

По скорости как-то так:

bruder:
Перфекционист, Если делать по уму, то они будут получать jpeg.

Хранить ДВЕ версии картинок это изврат, уж извините.

Следствие убирает обычный адблок.

80.0.3987.122 проблему с баннером решает

В смысле решает?! Ничего он не решает, просто баннеры не всегда отображаются.

Пришло время рассказать интересную историю оптимизации. А то все думаю, что это так просто, вот ошибка, исправь. И всё это занимает 10 минут. Увы, но это не так.

Дано: Выделенный сервер, достаточно мощный. 260 сайтов на WordPress.

Проблема: Каждые 3-4 часа нагрузка уходит «в космос», держится там около минут 30, и потом очень медленно на спад. Был переезд с другого сервера, это не помогло.

День 1

Действительно на графике в ISP5 отлично видны пики нагрузки. Начинаю изучать пока нет нагрузки. Все WP обновлены. Посмотрел конфиги сервера, вполне всё нормально. Был обновлён PHP 7.0 до версии 7.3, также развязаны лимиты nginx и MySQL т.к. памяти у нас 64 ГБ, чего уж там экономить для 260 сайтов то.

Немного подождав, пришла волна! Apache забивается весь, а увеличение лимита клиентов, не играет роли, хоть 250 хоть 500, всё забито. HDD «горит», SSD отдельный с MySQL спит спокойно.

Начинаю анализировать, кто же долбиться то в таком количество? Ба! Так это же боты в огромном количестве, всякие переборщики паролей, спамеры в комментарии и т.д. Плюс ко всему ещё поисковые роботы хотят индексировать сайты.

Всё ясно, устраивают серверу на HDD просто ДДОС атаку. 260 сайтов на WP и все кому не лень сканируют их на дырки.

Решение: блокируем плохие подсети, ставим на сайты кэш систему на всякий случай и блокируем REST-API

Нагрузка начинает спадать, оставляем на сутки

День 2

Ничего не изменилось. Опять нагрузка, возможно, график чуть изменился, но суть прежняя. Может быть остались боты? Да нет, ботов очень мало. Анализирую пакеты TCP, ничего такого нет. Но что-то сервер ожидает и не даёт клиентам информацию. Учитывая, что нагрузка спала, опять курим бамбук… Случайно выясняется, что все 260 сайтов работают под одним пользователем MySQL, ну для удобства было сделано, а в настройках лимиты выставлены 80 подключений на 1 пользователя! Всё ясно, приходят много подключений и пока они не отработают, MySQL не даст новых подключений, вот вам очередь. Увеличивая лимит Apache, мы только делаем хуже!

Решение: увеличиваем лимиты для 1 пользователя в MySQL.

Оставляем всё это на ночь.

День 3

Ничего не изменилось.

Да быть такого не может. Жду волну нагрузки и начинаю strace процессов Apache, что же они делают. Замечаю, что вызывается биржа Sape. ОУ! Действительно на всех сайтах стоит код биржи. Файл старый 2016 года, настройки там по умолчанию.

Так постойте-ка, там кэш на 1 час, запрос через обычный file_get_contents, который ожидает 60 секунд, и вся работа с 1 файлом (он же БД) идёт.

Теперь давайте представим алгоритм работы в данном случаи. В какой-то момент приходят боты, юзеры и т.д. и попадают в момент, когда нужно обновить кэш SAPE. Учитывая, что все сайты на 1 IP, биржа просто перестаёт отвечать на такое количество запросов. У нас timeout 60 секунд и +10 минут к времени НЕ обновления кэша в случаи timeout.

Очередь моментально вырастает, все бьются за 1 файл БД, чтобы сделать пометку на одном сайте, а в потом такая же очередь выстраивается к другому файлу на другом сайте.

Решение: берём новый файл sape.php, в нём реализовано многофайловое хранения ссылок (АГА, значит был такой баг у кого-то). Выставляем в нём кэш 12 часов и режим работы с CURL с 6 секундным timeout. Меняем на всех сайтах и ждём.

День 4

Никакой нагрузки. Всё работает штатно.

Вот такая вот история, спасибо, что дочитали.

sincera:
Пообщался с поддержкой РТ, пишут что я один такой дурак и что больше к ним никто не обращался с данной проблемой, писал им в ВК. Может стоит всем у кого проблема есть отписать им и скриншоты приложить сюда?

Дыг правильно, сегодняшней смене только про сбои орут т.к. сегодня РТ весь день умирает:

https://downdetector.ru/ne-rabotaet/rostelekom/

ISP там и там присутствует. есть SSH доступ

ну так выберите на новом хостере, импорт пользователя в ISP5. Всё само перенесётся.

Sitealert:
Да я не про то. Хотелось бы как-то у себя на компе это отловить. Я на Ростелекоме сижу уже не помню сколько лет, но ни разу такого не наблюдал. Вот мне и интересно было бы взглянуть, просто любопытно. Одно дело, когда кто-то скрины выкладывает, а другое дело – самому взглянуть.

На моей тестовой странице, не проявляется в консоле?

Sitealert:
Как бы мне посмотреть, что там Ростелеком подсовывает. Даже интересно стало. Мне почему-то ничего не показывает, зараза. :(

тут уже выкладывали код: /ru/forum/comment/16358494

---------- Добавлено 24.02.2020 в 17:56 ----------

ЛОЛ! http://joyreactor.cc/post/4246541

Реклама на весь экран!

Всего: 31516