Выбор ответа Junior Память и OOM обновлено

VSZ против RSS

Вопрос

У процесса Java VSZ 12 ГБ, а RSS 1.1 ГБ на машине с 4 ГБ RAM. Как это возможно?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: VSZ это всё адресное пространство, а RSS только страницы в RAM. Виртуальный размер включает зарезервированные, но не тронутые области (JVM резервирует кучу и код заранее), mmap-файлы и библиотеки.

Варианты ответа

  1. VSZ это всё адресное пространство, а RSS только страницы в RAMправильный ответ
  2. Процесс использует около 11 ГБ свопа, это и есть разница
  3. Это ошибка ps: виртуальная память процесса не может превышать объём RAM
  4. VSZ учитывает память всех потоков, а RSS только главного

Разбор

Виртуальный размер включает зарезервированные, но не тронутые области (JVM резервирует кучу и код заранее), mmap-файлы и библиотеки. Физически занято только то, что в RSS. Своп был бы виден отдельно (VmSwap в /proc/<pid>/status). Потоки делят одно адресное пространство, деления на главный и остальные нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме