Сервер с архивом стримов умирал по вечерам. Спас SSD-кэш за 7 000 в месяц
Пару недель назад я выкладывал сюда сайт с записями стримов, где Зубарев смотрит фильмы. Пост вы, мягко говоря, не оценили. Но сайт живёт, посетителей за неделю стало втрое больше, и сервер начал помирать. Расскажу, как чинил, — вдруг кому пригодится.
Что сломалось
Архив — 5,7 ТБ видео на обычном жёстком диске на 12 ТБ. Канал вывозил, а диск нет: каждый смотрит свою запись со своей минуты, и диск мечется между десятками файлов. Вечером одно чтение занимало до секунды вместо привычных 10 мс. Для зрителя это бесконечный кружок загрузки. А 5 ноября сервер завис целиком на 17 минут.
Смотрят правда вразброс: за сутки открыли 527 разных файлов, а десятка самых популярных — всего 15% трафика.
Что не помогло
— Держать популярное в оперативной памяти. 10 ГБ при таком разбросе — капля в море.
— Перекодировать записи в 720p днём. Это добивало диск, перенёс на ночь.
Сторож
Сделал скрипт-сторож. Раз в 2 минуты он проверяет сайт и службы: если что-то зависло, перезапускает и пишет мне в Telegram. Если сервер молчит 10 минут, сам перезагружает его через API хостинга.
В первый раз он перезагрузил сервер и тут же написал мне, что не получилось. Хостинг ответил «201 — принято», а сторож ждал «200». Классика.
Что сработало
Перенести весь архив на SSD — дорого. Но смотрят в основном пару сотен файлов, поэтому я взял отдельный сервер с двумя SSD, вместе 958 ГБ, за 7 000 ₽ в месяц и поставил его перед архивом как кэш.
— видео режется на куски по 8 МБ, популярные куски лежат на SSD;
— ночью кэш сам подтягивает самое смотримое;
— если кэш упадёт, плеер возьмёт видео прямо из архива.
Итог: 92% видео теперь идёт с SSD, это почти терабайт в сутки. С 5 ноября сервер с архивом ни разу не зависал целиком.
Но честно: подвисаний у зрителей стало меньше совсем чуть-чуть. Было 57% просмотров хотя бы с одним подвисанием, стало около половины. Так что дальше копаю в плеер. Если разбираетесь в раздаче видео, буду рад советам в комментариях.








