sfw
nsfw

Результаты поиска потегуадминские истории

Дополнительные фильтры
Теги:
админские историиновый тег
Автор поста
Рейтинг поста:
-∞050100200300400+
Найдено: 23
Сортировка:
следующая история про неудавшийся ддос.

В рамках подготовки к задаче по переносу обработки картинок на другой сервер (см предыдущий пост), надо было стереть кэш memcached. Раньше это было достаточно болезненно, ибо mysql захлёбывался от количества запросов. Но сейчас мемкэшов стало два и можно было перегружать их по одному - удаляя по половине кэша. Таким образом нагрузка была меньше.

Ну встал пораньше и в 10 утра перегрузил по очереди кэши. Вроде всё хорошо с первым пиком сервера успешно справились. Дальше нагрузка всё равно немного больше - процентов на 20%. Они пару дней будут наполняться менее популярными страницами, куда заходят, но не часто.

Через пару часов проверяю нагрузку. Обнаруживаю что она выше, чем должна быть. Первая мысть - где-то напортачил с кэшами и они не подцепились. Тогда ещё через час сервера умрут по естественной нагрузкой. Смотрю запросы в мускуле - и вправду, идёт много запросов, которые должны быть жёстко закэшированны. И тут же понимаю, что если бы кэши полностью не подцепились, то сервера бы уже умерли. А тут скоро уже пиковая нагрузка, а им вполне нормально, хоть и выше нормы.

Долго размышляю и изучаю данную проблему. На всякий случай, перегружаю апачи. Ничего не меняется. Иду мыться в душ и там меня осеняет. Симфони (да и большниство серверов) не кэшируют POST-запросы. Наверное где-то есть страница, которая грузится через POST. Возвращаюсь и обнаруживаю в логах примерно такое:

85.26.241.3 - - [30/Jan/2013:05:09:14 +0100] "POST /tag/mass%2Beffect/new/11?count=&1359518948806.76 HTTP/1.1" 499 0 "http://ads.heias.com/x/heias_sc.swf" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17" "-"
85.26.241.3 - - [30/Jan/2013:05:13:38 +0100] "POST /post/204783?count=&1359519213127.96 HTTP/1.1" 499 0 "http://ads.heias.com/x/heias_sc.swf" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17" "-"

В гугле находит, что heias - это какая-то адвара. Похоже ещё и система управление ддосом. Они слали специально запросы, которые пробиывают кэш. Проверка на тип запроса у меня не везде проводилась и в некоторых местах оно пробивалось. Правда результат был всё равно плачевный для них - если бы я не мониторил специально нагрузку, то никто бы и не заметил этого ддоса. Им надо было создать хотя бы 20% от естественной посещалки реактора, чтобы пробивка кэша дала результаты.

Сейчас погрепал в логах - они нашли ещё пару мест, где не проверяется GET/POST. Надо будет поправить для чистоты кода.
Буду писать тут интересные случае из работы.

Для начала - почему вчера весь день тормозил реактор. Уже давно основной фронтэнд сдыхал. На нём же обрабатывались картинок и он не справлялся с отдачей картинок на скорости 2Гбит и обработкой их. Поэтому я начал потихоньку обработку картинок переносить в другое место.

И вдруг произошло что-то. Симптомы:
1) на сата дисках чтение 5Mb/s
2) на ссд диске запись только 0.5Mb/s. Хотя должна быть те же 5Mb/s, ибо всё что читается с сата потом сразу кладётся в кэш ссд.
3) запросы время от времени подвисают на 5-10-15 секунд. Причём в них нет никакого криминала - обычная отдача малоиспользующейся картинки размеров в 500Кб.

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

Во время rsync понял в чём проблема была - все картинки у меня складываются в одну директорию. И теперь она выглядит так:
drwxrwxrwx 2 root root 59M Jan 30 19:58 pics
Можно заметить, что размер директории - 59Мб. Похоже из-за возросшей нагрузки она вытеснялась из файлового кэша и очередной запрос на 500Кб хотел открыть эту директорию, что заставляло его читать все 59Мб и тормозить всю систему.
а вам знакомо чувство, когда запускаешь на рабочей базе биллинга c сотней тысяч клиентов запрос
UPDATE users SET money=money+100

и вдруг понимаешь, что забыл добавить WHERE id=... ?
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме (+23 постов - )