Плагин: защита от перегрузок

+72
71.51K

Привет, друзья!

Написал простенький плагин, который мониторит среднюю загрузку системы (число процессов в очереди системных процессов) при помощи функции sys_getloadavg() и в соответствии с конфигурационными параметрами выполняет:

— закрывает сайт, показывая страницу (шаблон) /templates/шаблон/special/temporary_unavailable.php
— не закрывает сайт, но отсылает сообщение на email, указанный в настройках плагина
— отсылает сообщение на email, указанный в настройках плагина и закрывает сайт, показывая страницу (шаблон) /templates/шаблон/special/temporary_unavailable.php

Имеется возможность указать порог от 0 до 100, какую нагрузку мониторить — минутную, пятиминутную или пятнадцатиминутную.
Обращаю внимание, что сообщение на email отправляется единожды, после чего в настройках плагина опция "Флаг блокировки отправления email (после исправлений ситуаций выставьте в 0)" устанавливается в значение 1. После снижения нагрузки значение этой опции нужно выставлять в 0 вручную.

Технические требования:
OS: UNIX-like
InstantCMS: 1.10+
Внести исправление в файл index.php, добавив перед
  1. $inDB = cmsDatabase::getInstance();
строку
  1. cmsCore::callEvent('GET_INDEX', '');
скачать плагин
+2
artscripts artscripts 12 лет назад #
Огромное спасибо. Было бы вообще прекрасно, если бы плагин отображал нагрузку еще и в life режиме с помощью графиков или чисел. ну это так рассуждения smile Спасибо за плагин.
-1
Алексей Т Алексей Т 12 лет назад #
Спасибо! нужная штука
+1
lezginka.ru lezginka.ru 12 лет назад #
+
у меня хостинг часто грешит нагрузкой
будет интересно отследить
+1
Роман Роман 12 лет назад #
Спасибо, пригодится!
0
tonkoglas tonkoglas 12 лет назад #
InstantCMS: 1.10+
Это где такое взять?!!!
+2
Fuze Fuze 12 лет назад #
Это где такое взять?!!!
тут
0
st.Puh st.Puh 12 лет назад #
У меня он сразу кричит "Извините, сайт временно не доступен. Пожалуйста, зайдите позже. Мы работаем над исправлением ситуации.
Sorry, the website is temporary unavailable. Please come back later!. We are working to improve the situation." как только включаю плагин
+1
Коля Коля 12 лет назад #
Fuze:
Имеется возможность указать порог от 0 до 100,
100 процентов от ресурсов или ноль процентов. Как предположение.
+1
artscripts artscripts 12 лет назад #
Странность тут заметил, поставил срабатывать при нагрузки в 50 для теста. Поставил датчик в 2, а при превышении поставил отправлять только письмо, тоесть цифру 1 поставил. В 00-00 начал срабатывать крон и естественно превысил значение в 50 и бац сайт заблокировало. Типо извиняемя но сайт временно недоступен. И так висело 45 минут пока плагин не отключил, и на почту не чего не пришло.
+1
Fuze Fuze 12 лет назад #
уверены, что почта с вашего сайта вообще уходит?
> Поставил датчик в 2
это пятнадцатиминутный - он после снижения нагрузки не сразу вниз уйдет, но не 45 минут точно.
0
artscripts artscripts 12 лет назад #
Да, почта уходит, может плагин у меня блокирует что-либо. Нужно все пересмотреть, я не говорю, что проблема в плагине, я просто описываю ситуацию. В понедельник попробую смоделировать несколько нагрузок, чтобы определить в чем у меня проблема, почему не отробатывается. А то может у меня ВПС неправильно настроен. Днем не более 20% нагрузки, а в 00-00 крон срабатывает до 90% прыгает нагрузка на 5 минут. Попробую все оптимизировать. Плагин в любом случае прекрасный, но пока не получилось у меня с ним. Попробую перенасроить свой ВПС. Еще грешу на то что у меня php 5.4 надо все проверять.
+3
Fuze Fuze 12 лет назад #
возможно стоит в плагине сделать опцию - интервал времени, в который не учитывается нагрузка.
да и построение графика не мешало бы) будет время сделаю.
0
artscripts artscripts 12 лет назад #
Врое бы доделал исправил у себя проблему phpmail и письма приходят вроде. Но возник вопрос, плагин смотрит общую нагрузку на процессор? Ну допустим у меня 5 различных доменов с различными движками и все они дают большую нагрузку и если там прыгнет нагрузка на сервер Instant я так понимаю тоже отключит. ну то-есть сработает плагин. Я правильно понял?
0
artscripts artscripts 12 лет назад #
Да и еще кто работает на пределе своей оперативной памяти на сервере тоже будет срабатывать скрипт даже если cpu не перегружено.
0
artscripts artscripts 11 лет назад #
Еще нашел одну неприятную вещь, тыкаю быстро по пагинации ленты активности, чтобы найти что было в ней когда-то и на 10 вкладке срабатывает защита. В настройках стоит срабатывать если используется 99%. Специально полез на сервер в статистику посмотреть в чем проблема там. Но статистика перегруза не показывает все плавно, в чем может быть проблема?
0
Батосай Батосай 11 лет назад #
Жаль, что скачать сей плагин нельзя без рейтинга... Но верю, что он однозначно хороший. Надеюсь и мне свезёт его поставить.
0
NA NA 11 лет назад #
По большому счету, ставить плагины безопасности на скачивание под рейтинг "100" - откровенный маразм.

Потому что обладатель подобного опыта такой плагин и сам может накидать за полчасика. Пусть не в виде плагина, но работать будет. А малоопытные члены сообщества, которые в первую очередь и нуждаются в защите сайтов на InstantCMS, должны по задумке автора, видимо, испытать себя вторым сортом и срочно бежать накапливать 100 рейтинга.

Тем более плагин-то, мягко говоря, "полу"автомат. Нет даже сброса флага по снятию ситуации или таймлимиту, не говоря уже об отправке писем по каждому пику, например. Ну итд. Но за идею спасибо. Напишу себе, пожалуй.
0
Fuze Fuze 11 лет назад #
NA, что за претензии?
ставить плагины безопасности
где вы увидели тут плагин безопасности?
Напишу себе, пожалуй
напишите, сделайте одолжение.
должны по задумке автора, видимо, испытать себя вторым сортом
что за абсурд, комплексы?
Если проявить смекалку, архив можно скачать без проблем.
0
NA NA 11 лет назад #
Претензии и комплексы тут ни при чем, это простая констатация факта.

Прикиньте для себя, за какое время можно набрать 100 рейтинга. А потом подумайте, будет ли нужен Ваш плаг к тому моменту, когда неофит наберет нужный статус в сообществе.

А насчет смекалки... с этого места поподробнее )
0
Fuze Fuze 11 лет назад #
А насчет смекалки... с этого места поподробнее )
Здесь у каждого в профиле есть файловый архив, в том числе и у меня...
0
NA NA 11 лет назад #
да, вариант. Хотя могла быть и еще одна переадресация, и внешняя ссылка на ЯД\айфолдер с тем же успехом. Спасибо еще раз.
0
Def Def 11 лет назад #
еще бы он автоматом через минут 10 включал сайт, а то чтото даже в админку зайти не могу:(
0
NA NA 11 лет назад #
yury:
а то чтото даже в админку зайти не могу:(
шедеврально) и как удалось решить проблему?
0
RIf RIf 10 лет назад #
Добрый день! А для 1.10.5 будет работать? А то я вот это

Код PHP:
  1. Внести исправление в файл index.php, добавив перед
  2. Код PHP:
  3. $inDB = cmsDatabase::getInstance();
  4. строку
  5. Код PHP:
  6. cmsCore::callEvent('GET_INDEX', '');
не смог сделать

Еще от автора

InstantCMS 2.17.0 релиз-кандидат
Тестируем релиз-кандидат InstantCMS 2.17.0. От того, как мы с вами выявим баги в новой версии, зависит стабильность релиза.
Как собрать обновление и релиз InstantCMS
Небольшой экскурс в сборку дистрибутива установки и обновления InstantCMS с GitHub.
InstantCMS 2.14.0 release candidate
Здравствуйте Тестируем релиз-кандидат InstantCMS 2.14.0. От того, как мы с вами выявим баги в новой версии, зависит стабильность релиза.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.