• Как эффективно хранить и раздавать миллиарды мелких файлов?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    условно, xml логи

    • Отказаться от хранения логов в ФС, а использовать специализированное решение - агрегатор логов (например).
    • Оптимизировать сами логи: сократить дублирующую и лишнюю информацию, выкинуть малозначимую, оптимизировать формат с целью сокращения объемов самих логов.
    • Для целей именно мониторинга состояний/статусов сервисов/приложений использовать специализированные решения типа заббикса.


    Раздача статики (условно, пользовательские файлы... к примеру, картинки — коих уже 2+Тб)

    Использовать специализированное файловое хранилище с БД и многуровневым кэшированием и соответствующей ФС. RAM - NVME - HDD. Конкретные решения не подскажу, к сожалению. Хм, а вот тут интересный тред про недостатки и особенности MinIO и судя по которому, в вашем случае оно может не подойти. Из треда:

    HDDimon:
    Так в итоге какое объектное хранилище вы выбрали? Ванильный hdfs?

    onyxmaster:
    MongoDB GridFS

    HDDimon:
    Если не секрет какой кластер и какой объем файлов храните? Какая fs?

    onyxmaster:
    Объём не очень большой, "чистый" около 150ТБ, чуть больше миллиарда объектов. Работает поверх XFS.


    В целом же, рекомендую сделать декомпозицию решения на более простые задачи и разделить нагрузку по разным типам данных на специализированные решения.
    Ответ написан
    Комментировать
  • Есть ли свободные нейросети улучшающие качество звука?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Начни с обычных фильтров. Когда поймешь какой фильтр работает и дает эффект - то тогда сможешь оценить
    качество работы нейросетей. В противном случае получается что нейросеть что-то там сделала а как
    сделала - непонятно. В большинстве случаев людям достаточно убрать шум или фон или звукового сопровождения.
    Ответ написан
    Комментировать
  • Какой бесплатный мониторинг ресурсов (аналог zabbix agent) установить для vps linux ubuntu?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    munin
    Ответ написан
    Комментировать
  • Можно ли (Как) установить модуль Golang из локального источника?

    @falconandy
    1. Можно включить вендоринг - тогда все зависимости будут размещены в подпапке vendor и при следующих сборках доступ в интернет не понадобится. go mod vendor
    2. Можно установить переменную GOPROXY так, чтобы исходники качались не через прокси proxy.golang.org, а через другой или напрямую с гитхаба. Environment variables
    3. Можно использовать уже скачанный локально репозиторий. replace directive in go.mod

    UPD: конкретно для go install можно попробовать п.2 с GOPROXY. Либо склонировать исходный репозиторий и собрать бинарник командой go build - для разрешения проблем с доступом к зависимостям воспользовавшись п. 1-3.

    UPD 2: по конкретно интересующему вас репозиторию: клонируете его, переходите в папку installer и выполняете в ней GO111MODULE=off go build, получите собранный бинарник - нет там никаких внешних зависимостей и даже go.mod
    Ответ написан
    1 комментарий
  • Почему aiohttp web сервер перестает отвечать на запросы?

    @Everything_is_bad
    По логам больше похоже на сетевые проблемы, а так, винда не лучшая ОС для aiohttp
    Ответ написан
    6 комментариев
  • Как удалить много строк (порядка 500.000) из csv файла в Python?

    @rPman
    csv не простой формат, строки в нем могут содержать разделители, ковычки и даже переводы на следующие строки. Поэтому рекомендуется работать с ним через библиотеки.

    Но если ты точно знаешь, что таких сложных ситуаций нет, и можно обойтись простым split, то код будет простой... читаешь построчно файл, парсишь колонки, и тут же из нужных формируешь строку, удалив ненужные колонки и пропуская не нужные строки, записываешь в новый файл.

    По окончанию работы, если ошибок не будет, старый файл удаляешь (или переименовываешь его в xxx.bak) а новый переименовываешь под старым именем
    Ответ написан
    Комментировать
  • Какая нейросеть может перевести фото в вектор?

    fenrir1121
    @fenrir1121
    Начни с документации
    Векторное изображение это набор математических описаний из элементарных геометрических объектов.
    Из этого следует что между словами векторное и детализированное, нужно выбрать что-то одно.
    Максимум что вы получите из фотографии это множество точек, что ничем не будет отличаться от растра, кроме гигантского размера файла.
    Сформулируйте конечную задачу, потому что вероятнее всего это ошибка молотка
    Ответ написан
    Комментировать
  • Как правильно решить проблему с настройкой nginx?

    smilingcheater
    @smilingcheater
    location /elastic {
                proxy_pass http://127.0.0.1:9200;
            }


    Добавьте слеш
    location /elastic {
                proxy_pass http://127.0.0.1:9200/;
            }

    В документации это написано
    https://nginx.org/ru/docs/http/ngx_http_proxy_modu...
    Ответ написан
    Комментировать
  • Как сделать INSERT в две таблицы в одном запросе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты можешь открыть транзакцию и сделать два инсерта в разные таблички. И с точки зрения БД
    это будет иметь смысл атомарного действия.

    Или ты другое хотел?
    Ответ написан
    8 комментариев
  • Как перенести проект с базой данных с одного компа на другой?

    @Everything_is_bad
    ну раз подробностей нет, то dump - restore
    Ответ написан
    Комментировать
  • Как корректно декомпрессировать файл используя zlib?

    Daemon23RUS
    @Daemon23RUS
    Слегка похоже на RAW RGBA
    первые три байта цвет (черный) и прозрачность, но кусочка скрина недостаточно. так что это предположение.
    PS . RAW RGBA дает такую картину, но что то мне кажется что разрядность альфаканала или порядок байт еще не верен, да и цвет должен черным быть, а синего по краям быть не должно, в
    Image.frombuffer("RGBA", (256, 256), data, "raw", "RGBA;4B", 0, 1)
    654fac0e174ff737928376.png Может коллеги подскажут ...
    Ответ написан
    42 комментария
  • Почему Raspberry Pi 3B+ перестает загружаться через некоторое время после работы?

    @s4q Автор вопроса
    Поменял SD-карту на новую и продул сжатым воздухом разъем SD-карты, проблема исчезла
    Ответ написан
    Комментировать
  • Как правильно масштабировать Django с Kubernetes?

    @deliro
    Хочу такой вариант пропустить и сразу перейти к kubernetis

    "You think you do, but you don't"

    Знаю, что могу вынести DB и pgbouncer на отдельные сервера

    Чтобы увеличить RTT?

    Для поддержки кубика нужна целая выделенная команда, которая, помимо кубика, ещё настроит и будет поддерживать ёлку (ELK), какой-нибудь vault, графану, прометей, консул, докер реджистри, s3 (типа minio или seaweedfs, ведь контейнеры теперь stateless и хранить на них ничего нельзя) и кучу других сложных штук. Если у тебя нет сотни разработчиков в компании, то не нужно играть в гугл.

    Во-первых, какая у тебя нагрузка? Сколько тысяч запросов в секунду приходит и отмасштабировал ли ты вертикально и упёрся уже в потолок? gunicorn оптимально настроен? сколько процессов/потоков, какой тип воркеров? json парсишь и сериализуешь orjson'ом? Приложение профилировал?
    Во-вторых, 12 factor
    В-третьих, у базы есть реплики? read запросы раскидал на реплики? а редис? Действительно ли нужен zero downtime (это исходит из вопроса про нагрузку)

    Если тебе хочется просто поиграть, то поставь локально кубик, поиграй, погрусти и удали. Не нужно это тащить в прод, если нет на это необходимости. А если ты даже название kubernetes не можешь правильно написать, то он тебе не нужен.

    P.S. DRF — медленное нетипизированное говно, выкинь его
    Ответ написан
    5 комментариев
  • Как правильно масштабировать Django с Kubernetes?

    @vitaly_il1
    DevOps Consulting
    Тут есть два не связанных вопроса:
    1) как сделать CI/CD
    2) на какой платформе (VM, Docker compose, Nomad, K8S, какой-нибудь cloud app server) оптимально поднимать сервис

    Насчет первого - с помощью Github Actions легко сделать CI/CD ничего не меняя в архитектуре.

    Насчет второго - зависит от многих данных - от skills разработчиков до ожидаемой нагрузки, требований в производительности и надежности, и до кол-ва денег.
    Ответ написан
    Комментировать
  • Как отключить автоматическую перезагрузку Windows 10 для установки обновлений?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    1. Обновления, которые перезагружают машину - приходят один раз в месяц.
    Если ваша рабочая машина не контролируется ИТ организации, то в настройках Windows Update есть возможность настроить как вам нужно.
    Если контролируется - нужно обсуждать с ними.
    Ответ написан
    2 комментария
  • Может ли вирус попасть в UEFI?

    hint000
    @hint000
    у админа три руки
    Да. Такая зараза уже была обнаружена исследователями антивирусных компаний.
    Но это сложная и редкая зараза. Слишком много отличий между EFI разных производителей и разных моделей, трудно обеспечить совместимость заразы с разными материнками. В результате получается как и в биологии - от одного вируса, например, люди могут умереть, птицы болеют, но не умирают, крысы вообще не болеют, но переносят, а селёдки не болеют и не переносят. Так и тут - если именно за вами охотятся хакеры, работающие на иностранную разведку, то подсунут вирус, который сможет заразить ваш EFI, но на 90% других компьютеров этот же вирус не сможет сработать.
    Ответ написан
    Комментировать
  • Что лучше выбрать для взаимодействия в микросервисной архитектуре? MessageBroker или REST?

    vabka
    @vabka
    Токсичный шарпист
    Зависит от того что именно за данные (для какой цели) будут передаваться и между кем и кем.
    Rest как и любой другой синхронный метод взаимодействия несёт плюсы:
    + Сравнительно быстрая реакция на запрос и ответ. (как правило от запроса до получения ответа менее секунды)
    + Очень прост в использовании, нет никаких проблем с поддержкой на клиенте
    + Очень простая инфраструктура (в минимальном варианте она не нужна вообще)
    + Всё хорошо изучено. Та же аутентификация и авторизация очень легко реализуется в рамках http.
    + Достаточно легко разрабатывать и тестировать
    + Есть grpc и openapi - нет никакой проблемы с документированием такого API.
    + В http запрос с каким-нибудь multipart form data может спокойно быть размером в десятки мегабайт, а может и больше - полезно при загрузке файлов.
    И минусы:
    - Не понятно что делать, в случае недоступности ответной стороны
    - При неправильной реализации клиента (политики ретраев) - можно легко заддосить сервер

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

    Но есть и минусы:
    - Инфраструктура обычно сложнее
    - Достаточно большие задержки
    - Использовать можно будет только у себя внутри - внешнему клиенту (браузер, мобильное приложение, публичный API) такое дать не получится.
    - Сложнее разграничивать в правах.
    - Сложно разрабатывать и тестировать. На примере той же кафки - подключиться к топику и записать в него что-то через гуй - это отдельный челендж.
    - Запросы должны быть небольшими (сотни кб)
    Ответ написан
    2 комментария
  • Какая файловая система наиболее устойчива к сбоям?

    @Bwana
    Самый надежный вариант не потерять набранное -- Ctrl-S перед каждой паузой в процессе набора/редактирования. Через какое-то время это станет бессознательным действием и случаи потерь сократятся до одного-двух в квартал.
    Главное, не выключать комп без необходимости -- достаточно вырубать мониторы и все.
    Ну и классические бекапы перед уход домой. Это если внезапно комп/диск сдохнет.
    Проверено на себе и уже лет надцать не подводит. Храню только последний (вчерашний) бекап. В нескольких местах, в том числе и на флешке в кармане.
    Ответ написан
    Комментировать