RAM

Описание

RAM - оперативная память.

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

Диск медленнее. RAM быстрее.

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

CPU

Disk

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


Когда тратится RAM

  • код приложения и runtime,

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

  • кеши,

  • активные соединения,

  • буферы сети,

  • страницы файловой системы,

  • данные БД в памяти,

  • сортировки и hash join,

  • временные структуры при запросах.

Когда RAM тратится полезно

  • кешируются частые данные,

  • БД держит горячие страницы в памяти,

  • приложение не ходит лишний раз на диск/в сеть,

  • сортировка помещается в памяти,

  • меньше I/O на диск.

Свободная RAM на сервере не всегда цель.

Linux может использовать RAM как файловый кеш, это нормально.

Когда RAM тратится плохо

  • утечка памяти,

  • слишком большие кеши без лимитов,

  • слишком много соединений к БД,

  • много pod без requests/limits,

  • запросы делают большие сортировки,

  • приложение хранит большие файлы в памяти целиком.

Симптомы нехватки

  • OOMKilled в Kubernetes,

  • swap,

  • резкий рост latency,

  • temp files в PostgreSQL,

  • процесс перезапускается,

  • GC начинает занимать много времени.

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

  • ставить лимиты кешей,

  • ограничивать размер выборок,

  • использовать пагинацию,

  • стримить большие файлы,

  • уменьшать число соединений,

  • использовать connection pool,

  • проверять work_mem для тяжёлых SQL,

  • смотреть метрики памяти вместе с Disk и CPU.

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