Disk

Описание

Disk - постоянное хранилище.

На диске лежат:

  • файлы ОС,

  • приложение,

  • логи,

  • данные БД,

  • индексы,

  • бэкапы,

  • временные файлы.

Связанные темы:

CPU

RAM

Память, кэш и I/O

WAL, Checkpoint и восстановление


Что важно у диска

  • место, GB/TB,

  • IOPS - сколько операций чтения/записи,

  • throughput - сколько MB/s,

  • latency - как быстро отвечает диск,

  • надёжность,

  • тип: HDD, SSD, NVMe, сетевой диск.

Много места не значит быстрый диск.

Куда тратится диск

  • таблицы БД,

  • индексы,

  • WAL/журналы транзакций,

  • temp files от сортировок,

  • логи приложения,

  • Docker images,

  • backups,

  • артефакты сборки.

VM

В VM диск часто виртуальный.

Физически он может быть:

  • на том же сервере,

  • на SAN/NAS,

  • в облачном volume.

Проблема:

  • в VM видно "диск есть",

  • но реальная скорость зависит от хранилища под ним.

Kubernetes

У pod есть временная файловая система.

Если pod умер, временные данные могут пропасть.

Для важных данных нужен:

  • Persistent Volume,

  • StatefulSet,

  • backup,

  • понятная политика хранения.

БД в Kubernetes можно запускать, но нужно аккуратно:

  • storage class,

  • latency диска,

  • backup/restore,

  • обновления,

  • anti-affinity,

  • мониторинг.

Bare metal

Bare metal - физический сервер без слоя VM.

Плюсы:

  • меньше накладных расходов,

  • понятнее где диск,

  • можно получить максимум I/O.

Минусы:

  • сложнее быстро масштабировать,

  • сложнее переносить,

  • отказ железа сильнее влияет.

Как оптимизировать

  • не хранить лишние логи бесконечно,

  • чистить старые Docker images,

  • разделять данные и бэкапы,

  • следить за WAL/temp files,

  • проверять медленные запросы через Explain,

  • добавлять индексы осознанно: индекс ускоряет чтение, но занимает диск и замедляет запись,

  • для БД выбирать SSD/NVMe, если много random I/O.

Последнее обновление