2

Когда я запускаю php-скрипт и делаю ps aux и имею огромное количество для VSZ , около 450MB. В то время как RSS - размер резидентного набора - составляет около 10 МБ. Из википедии размер резидентного набора - is the portion of a process's memory that is held in RAM . Но включает ли размер виртуальной памяти память, хранящуюся где-то еще, например в файловой системе? Из чего именно состоит виртуальная память?

2 ответа2

4

Виртуальная память (как следует из названия) - это абстракция над базовой архитектурой физической памяти. Каждый процесс получает свое собственное виртуальное адресное пространство, и когда виртуальные адреса являются доступами, они сначала преобразуются в аппаратные адреса с помощью модуля управления памятью (MMU). Данные в виртуальном адресном пространстве процесса могут находиться либо в основной памяти, на диске, либо в другой, либо в какой-либо другой внешней памяти. Однако каждая страница, которая еще не находится в основной памяти (ММ), загружается в ММ, когда к ним обращается процесс. Таким образом, процессы не читают напрямую с диска, но некоторые или большинство их ресурсов могут находиться во внешней памяти в любой момент времени, поскольку страницы могут быть заменены, чтобы освободить место для других.

4

Виртуальная память может быть:

  • в оперативной памяти, если к данным обращались недавно или если нет необходимости освобождать оперативную память
  • в области подкачки (раздел подкачки или файл подкачки), если он был разбит на страницы
  • в файловой системе, если данные соответствуют отображенным в память файлам (например, разделяемые библиотеки)
  • нигде (т.е. не использовать ресурсы, особенно в системах с чрезмерным выделением памяти, таких как Linux), если выделенные страницы еще не были доступны

Четвертый пункт часто упускается из виду.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .