Что такое виртуальная память
Что проверяют
Для питониста это вопрос не про операционные системы вообще, а про умение читать потребление памяти процессом. Почти всегда следом идёт практика: почему воркер показывает восемь гигабайт, почему память не вернулась после обработки большого файла, почему форк сервера съел вдвое больше ожидаемого.
Как отвечать
Виртуальная память это абстракция адресного пространства: каждый процесс видит собственный непрерывный диапазон адресов, а блок трансляции вместе с таблицами страниц отображает его страницы на физические кадры. Вытеснение на диск это следствие механизма, а не его определение: виртуальная память работает и при полностью отключённом подкачечном разделе.
Дальше идут следствия, ради которых вопрос и задают.
Виртуальный размер это то, что процесс отобразил, а резидентный это страницы, реально занятые в оперативной памяти. Сравнивать надо резидентную часть.
Страница физически выделяется лениво, при первом обращении, через прерывание отсутствия страницы. Поэтому отображение большого файла почти ничего не стоит, пока его не читают.
После ветвления процесса страницы общие и копируются при записи. Для сервера с предзагрузкой приложения это выгодно, но счётчик ссылок интерпретатора пишет прямо в заголовок объекта, и общие страницы разъезжаются даже от чтения.
Освобождение объектов не обязано возвращать память системе: аллокатор удерживает арены, резидентный размер остаётся высоким. Большие массивы, отображённые напрямую, отдаются обратно надёжнее.
Где спотыкаются
Определяют виртуальную память как использование диска вместо оперативной. Это описание подкачки, и на следующий вопрос про изоляцию процессов и трансляцию адресов отвечать уже нечем.
Пугаются огромного виртуального размера в мониторинге и начинают искать утечку там, где её нет. Смотреть надо на резидентную память и на то, растёт ли она от цикла к циклу обработки.
Считают копирование при записи гарантией экономии в многопроцессном сервере. На практике сборщик мусора и счётчики ссылок постепенно разогревают общие страницы, выигрыш тает, и помогает вынос данных из объектов интерпретатора или заморозка предзагруженного состояния для сборщика.