Пишем терабайты видео на диск в Go и не даем ОС сожрать всю память

#Пишем #Выкатили #Прошел #Залезаю #Пу-пу-пу-пу

Выкатили мы первый релиз в прод (100 камер), обрадовали клиентов, начали работать. Прошел где-то час, полетели алерты. Залезаю на сервак, смотрю htop – а там свободно 100 метров ОЗУ. Пу-пу-пу-пу. Нужно внести уточнение что боевой сервер имел 32 гига озу. Ожидаемое поведение было то что процессор отдыхает, сетевуха переваривает трафик, озу 250-300 МБ, диски нагружены не сильно. Так что, когда видишь такие цифры в htop, начинаешь винить себя и свои кривые руки, написавшие это "Г". Но все же решили пойти в Гугл, чатгпт и тому подобное. Благо, ответ нашелся быстро, и посыпать голову пеплом перестали. Код оказался не вообще не причем, память сожрал сам Линукс. Если когда-нибудь вы писали тонны данных на диск, я думаю вы уже поняли в чем дело. Есть такой «невидимый враг» как страничный кэш (Page Cache). Вот именно он и был корнем этой проблемы. Как работает страничный кеш и что с ним делать? Когда ваша функция, которая должна писать данные на диск пишет данные, на самом деле она не пишет их

Привет, хабарчане!

Это вторая статья про разработку RUSEON-core, Zero-Copy сервера потокового видео для AI-платформ и Edge-видеоинфраструктуры. В первой статье, я рассказал об в принципе причине по которой решили создать свой сервер. Ну и о главной проблеме большинства подобных разработок – «грохочущее стадо» и как получилось выжать 8 Гбит/c на одном ядре. В ней я кстати забыл упомянуть, что помимо простой трансляции производится еще и запись потоков в формате fMP4. Хранится N времени локально, и может улетать (тут как клиенты хотят, зависит от того как долго хранить записи) в S3-хранилище.

Эта статья как раз об одной неочевидной (ну как минимум для меня, возможно для кого-то это вполне рядовая проблема), связанной с хранением данных и ее спецификой во всех ОС. Ну что же приступим.

Выкатили мы первый релиз в прод (100 камер), обрадовали клиентов, начали работать. Прошел где-то час, полетели алерты. Залезаю на сервак, смотрю htop – а там свободно 100 метров ОЗУ. Пу-пу-пу-пу. Нужно внести уточнение что боевой сервер имел 32 гига озу. Ожидаемое поведение было то что процессор отдыхает, сетевуха переваривает трафик, озу 250-300 МБ, диски нагружены не сильно. Так что, когда видишь такие цифры в htop, начинаешь винить себя и свои кривые руки, написавшие это "Г". Но все же решили пойти в Гугл, чатгпт и тому подобное. Благо, ответ нашелся быстро, и посыпать голову пеплом перестали.

Похожие статьи

Российская газета
Российская газета

Как швейная фабрика в Мстиславле стала одним из индустриальных флагманов

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

Российская газета
Мужчину задержали после поджога военкомата в центре Владивостока Life.ru
Life.ru

Мужчину задержали после поджога военкомата в центре Владивостока

Полиция задержала 28-летнего мужчину, подозреваемого в поджоге военного комиссариата в центре Владивостока. Возгорание произошло в здании на улице Уборевича, сообщили в управлении МВД по Приморскому к...

Life.ru
Тарзан снялся в распахнутом халате и вызвал споры в сети Lenta.ru
Lenta.ru

Тарзан снялся в распахнутом халате и вызвал споры в сети

Российский актер и стриптизер Сергей Глушко, известный под псевдонимом «Тарзан», снялся в откровенном виде и вызвал споры в сети. Публикация появилась на его странице в Instagram (принадлежит компании...

Lenta.ru
Экс-тренер сборной Хорватии Златко Далич возглавил команду ОАЭ Life.ru
Life.ru

Экс-тренер сборной Хорватии Златко Далич возглавил команду ОАЭ

Златко Далич, ранее возглавлявший сборную Хорватии, назначен главным тренером национальной команды Объединённых Арабских Эмиратов. О его назначении 12 августа сообщила Футбольная ассоциация ОАЭ.

Life.ru
Двач
Двач

Сегодня отмечается День вина «Просекко»

Сегодня отмечается День вина «Просекко» С планами на вечер определились

Двач
Кит потопил яхту с семьей на борту Lenta.ru
Lenta.ru

Кит потопил яхту с семьей на борту

У берегов Аляски, США, кит потопил стоявшую на якоре яхту, на которой ночевала семья из трех человек. Об этом сообщает KTUU

Lenta.ru