Почему сервер зависает?

Регистрация доменов
Домен RU - 99 руб
Домен РФ - 99 руб
www.

Не успел я нарадоваться новому хостингу IHOR, целую неделю наслаждаясь его отличной работой, как начались проблемы, сервер начал зависать. Почему сервер зависает вдруг, на ровном месте? Ничего не изменилось, посещаемость та же... Сразу хочу сказать, что сам хостинг не при чем, VPS отличный, недорогой, отличная техподдержка, все удобно, бесплатная панель ISPmanager.

Но они тоже не волшебники, найти проблему не так просто, и в конечном счете я нашел ее сам. Я не великий системный администратор, просто любитель везде полазить и все узнать, и такие проблему часто становятся материалом для статей на этом блоге. Поэтому то, что я буду писать, нужно рассматривать с этой позиции - я многие вопросы пока решаю методом тыка. И знаете, хороший метод!

Почему сервер зависает?

Теперь к нашему вопросу. Два дня назад у меня стал падать сервер базы данных, я обратился в поддержу, они там что то подкрутили. И после это стал падать сам сервер.....

На этом этапе хочу рассказать вам об одной СУПЕР полезной консольной программе - htop. Если она у вас на сервере не установлена, то установите.

sudo apt-get htop

Это надстройка над программой top, есть ещё atop, но htop самая информативная из них. Что же я увидел два дня назад через эту программу?

А увидел я, что вся память (на тот момент 1 гигабайт), файл подкачки в 500 мегабайт и процессор  - всё на полную катушку! И понятно - сервер падает!

Основная нагрузка идет на apache, точь в точь, как показано на этом фото: (я что то не догадался заснять свой htop, когда была проблема  - кликабельно)

сервер зависает

Я пишу в поддержку, они советуют добавить памяти, ещё гигабайт. Ну а что они могут посоветовать? Для них это лучший вариант, да может и правда у меня такие ВЫСОКО ПОСЕЩАЕМЫЕ  сайты? Но ничего не менялось, проблема было в чем то другом.

Ну хорошо, купил я за 100 рублей ещё гигабайт. Стало немного лучше, но сервер все равно еле шевелился.

Я опять в тех поддержу - они мне: вам мало одного ядра, купите ещё одно. Хорошо, 100 рублей не деньги, купил ещё. Стало немного лучше, но вижу, что проблема не решена.

И тогда я поняв, что на том конце мне вряд ли помогут, решил действовать методом тыка. Что я начал делать?

1. Нужно определить, какой сайт грузит систему? У меня их три, и я стал переименовывать папки с сайтами, тем самым вырубая их, и смотрел htop. За пять минут я выяснил, что сервер грузил один сайт.

2. Нужно понять, что грузит сайт?

Я стал вырубать все плагины. Не помогло.

Я скачал новую тему и активировал ее. Не помогло.

Я оптимизировал базу данных. Не помогло.

Я проверил сайт на вирусы. Ничего не нашел.

Я заменил сам wordpress. Не помогло.

И тогда я стал переименовывать все папки сайта. Когда отрубал некоторые, нагрузка падала, но и сайт не работал. Голова уже болела, и нервы слабели.

Решил я посмотреть логи. Может с этого нужно было и начать, но как я писал, не спец я пока в этом. Но как то я заметил в логах фразу xml-rpc, и это было ключом к разгадке.

В корне WordPress есть файлик xmlrpc.php, который отвечает за удаленную публикацию, например, можно публиковать статьи отправляя их через электронную почту.XML-RPC (сокр. от англ. Extensible Markup Language Remote Procedure Call — XML-вызов удалённых процедур) — стандарт/протокол вызова удалённых процедур, использующий XML для кодирования своих сообщений. Подробнее в ВИКИПЕДИИ.

Я просто переименовал этот файл и ЧУДО, нагрузка резко снизилась. Мне стало понятно, что кто то атакует меня через этот протокол. Тут же я нашел простое решение, как более корректно отключить его совсем.

Для этого открываем файл function.php в нашей теме в самый конец файла вписываем:

add_filter('xmlrpc_enabled', '__return_false');
Все, хакеры нервно курят, думая, что это случилось, куда это пропал клиент с экранов их радара? Теперь полный штиль...

почему зависает сервер

Такая мелочь, но так подняла мне настроение! Тут же проделал все это на всех остальных сайтах, и вам советую, зачем вам удаленная публикация?

Только что нашел статью на Хабре по этому поводу (СМОТРИТЕ ТУТ), оказывается, что кто то использовал эту крутую уязвимость протокола XML-RPC. И хотя статье уже пол года, видимо это до сих пор актуально, так как все симптомы ОДИН В ОДИН мои.

Теперь можно отказаться от лишней памяти и одного ядра, зачем платить лишних 200 рублей в месяц, если и так все будет летать?

Вот так, надеюсь вам будут полезна эта история, особенно если у вас VPS: купил виртуальный сервер - начинай учиться на системного администратора! Кстати, очень рекомендую мой сегодняшний хостинг - лучше пока не встречал.

Почему падает база данных?

Решил дописать статью, так как в последнее время стал сталкиваться с другой проблемой - стала часто падать база данных. Раньше этого не было, но я перенес на сервер другие свои сайты и прилепил еще на старые несколько сервисов. В итоге сервер начал падать почти каждый день. Очень помогала ЭТА программа на смартфоне, очень рекомендую.

Последней каплей стало вчерашнее падение, при чем падал он несколько раз за вечер. Я написал в тех поддержку и мне выписали диагноз - не хватает оперативной памяти. Вот как было у меня при загрузке сервера:

обычный

Обратите внимание, что SWAP сразу же заполнялся, а это значит, что памяти не хватает. А когда на сервер начинается нагрузка, то память переполняется и сервер базы данных падает, а иногда и падает сервер ngnix. Я добавил еще 1 гигабайт памяти и что я вижу:

почему падает база данных

Файл подкачки почти пустой, хотя сервер работает так уже много часов. Другой вопрос - а что больше всего грузит сервер, или какой сайт? Это можно узнать просто переименовывая папки сайтов на хостинге и наблюдая, как это скажется на нагрузке на сервер.

Вот такие дополнительные мысли, может кому будет полезно. Если у вас обычный шаред хостинг, то очень рекомендую приобрети VPS сервер и не жалеть деньги на ресурсы, 100 рублей - это не деньги, а вот регулярное падение сайта может очень сильно сказать на его ранжировании, это уже проверено....


Понравилась ИГРА? Возьми КОД, поставь себе на сайт и улучши поведенческие факторы!


7 комментариев
  1. статейка как-раз вовремя. та же проблема случилась 2 дня назад. решил проверить свой сайт командой nikto -h и показало вот такое Uncommon header 'x-pingback' found, with contents: _http://site.ru/xmlrpc.php меня это насторожило. Увидел ваш пост. Сейчас буду отключать

  2. Какое то время назад сервер падал из за переполнения логов, отключил их вообще.

  3. Было нечто подобное на виртуальном хосте. Хостер мне показывает скрин панели, и сайт 100% грузил БД. Пришлось пересобирать сайт уже на новой версии движка, выдергивать статьи из БД поштeчно и переливать на новый сайт, т к хостер вырубил сайт.

    INCMS

    • Я вот опять боролся с падениями и решил проблему, добавив просто 1 гиг памяти, дописал немного статью и вставил фото.

  4. В целом все эти проблемы с переполнением логов, загрузкой памяти и т.п. должен решать хостинг провайдер. Это всё вполне автоматизируется – заполнилось сбросили, поставили лими и т.п.

    Проблема блогов на WordPress в том, что его изучили вдоль и поперёк и многие ищут лазейки через тот же xmlrpc.php и иже. Так что у меня этот файл удален и доступ к многим папкам закрыт через htaccess. Я даже как-то писал об этом: http://www.wmascat.ru/2012/05/zashchita-saitov-na-wordpress.html (если что ссылку можете удалить).

    На счёт нагрузки на базу данных – это старый мозоль WordPress. Тут ничего сделать нельзя. Система построена так, что она будет делать много запросов. Даже если подчистить лишнее, всё равно много. Тут только одной спасение – кэширование.

    • Хостинг провайдер не обязан как раз решать мои проблемы, так как у меня куплен виртуальный сервер. Но на этом хостинге мне помогают, и поэтому я его всем с чистой совестью рекомендую. Я так и сделал, добавил памяти и все, а в отношении кеширования, то не все так просто в моем случае, так как у меня стоит плагин мобильной версии сайта, и если включить кеширование страниц с сохранением их в html, то сохраняются часто мобильные версии страниц.

      Решить проблему можно адаптивным дизайном, но это нужно переделывать весь шаблон, а это стоит денег.

Написать комментарий

Опубликовано © Блокнот вебмастера

СОВЕТ ВЕБМАСТЕРУ: Умение зарабатывать в интернете - это только пол дела, вторая половина - это умение ВЫГОДНО обналичивать электронные деньги. Вот список офшорных банковских карт, на которые можно выводить средства и потом снимать с них хрустящие купюры:

1. Epayments - можно открыть счет в долларах, евро и рублях. Формально банка нет, юридический адрес в Лондоне, но можно получить реквизиты банка в Латвии.

2. AdvCash - Офшорный банк находится в Белизе, можно открыть счет в долларах, евро, фунтах и рублях.

3. OkPay - Офшорная компания зарегистрирована на Британских Виргинских островах, можно открыть счет в долларах, евро и рублях.

4. Payeer - Штаб квартира этой платежной системы находится в Грузии, тут так же можно открыть счет в долларах, евро и рублях.

Во всех случаях можно заказать банковскую карту, которую пришлют вам по обычной почте. Активируете ее и идете снимать деньги банкомат! Тарифы смотрите на сайтах платежных систем.