Постоянно находятся в памяти и гарантируют, что все файлы, к которым обращается пользователь, проверяются

Обновлено: 30.06.2024

Практически в любой вычислительной деятельности важно убедиться, что ваши программы эффективно используют память. Это особенно важно в высокопроизводительных вычислениях, когда ваша задача может быть настолько большой, что не уместится на одной машине или даже на нескольких машинах. На этой странице мы рассмотрим, как отслеживать использование памяти в кластере.

Самый простой способ проверить использование памяти запущенным процессом — использовать интерактивную команду «top». В командной строке попробуйте запустить

Вы, вероятно, получите длинный список процессов, как показано ниже, большинство из которых вас не интересует. Вы также увидите некоторые интересные цифры, такие как свободная память, используемое пространство подкачки и процент использования ЦП в настоящее время. Для каждого процесса отображается несколько статистических данных по памяти. Наиболее консервативным является VIRT, который включает в себя код, данные и виртуальную память. Тот, который, вероятно, больше всего отражает наше фактическое использование, — это RES, который включает только код и данные. Эти два значения вместе дают нам хорошее представление о нашем использовании. Верхний дисплей автоматически обновляется каждые несколько секунд. Для получения дополнительной информации см. верхнюю страницу руководства ("man top").

Мы можем сузить список до наших процессов. Введите «u», затем ваше имя пользователя, затем введите. Вы получите более короткий список, который выглядит примерно так:

Еще одна полезная вещь, о которой мы здесь упомянем – это возможность включать/выключать состояние отдельных ядер ЦП, набрав «1»

Проблема с top в том, что он интерактивный. Когда мы запускаем наш высокопроизводительный параллельный код, мы можем захотеть регистрировать использование памяти в определенное время. Например, когда мы заканчиваем выделение большой структуры данных. Мы бы предпочли не следить за командой top и отслеживать все вручную.

Давайте сделаем еще один шаг в направлении автоматизации проверки памяти. Для этого мы будем использовать файловую систему proc. Это специальная файловая система на Unix-машинах, содержащая информацию о системе. Мы попробуем несколько команд, чтобы почувствовать это. Вот информация о ядрах ЦП на внешнем узле. Это довольно статическая информация, которую мы не ожидаем сильно изменить.

Мы также можем видеть информацию о памяти верхнего уровня, например, сколько памяти свободно и сколько места подкачки используется. Эта информация более динамична и постоянно меняется.

Мы также можем проверить использование памяти определенным процессом. Попробуйте «кошка /proc/

/status», чтобы получить информацию о процессе с заданным PID (идентификатором процесса). Мы можем проверить «cat /proc/self/status», чтобы получить информацию о текущем процессе.

Обратите внимание, что мы получаем информацию о команде «cat», которая является «я», когда мы запускаем «cat /proc/self/status» непосредственно из командной строки. Раньше, когда мы запускали команду top, мы смотрели на столбцы VIRT и RES. На изображении выше мы можем получить ту же информацию из полей VmSize и VmRSS соответственно.

Далее мы покажем, как получить эту информацию из функции C.

Следующая функция считывает файл «/proc/self/status» и анализирует числа в полях VmSize и VmRSS. Теперь «я» будет относиться к программе C, которая вызывает эту функцию.

Вот соответствующий заголовочный файл

Вот небольшая программа для проверки нашей функции. Он выделяет 20 больших буферов, каждый раз сообщая об использовании памяти.

Наконец, вот простой Makefile для компиляции тестовой программы

Сборка и запуск кода приводит к такому результату

Мы видели, как проверить использование памяти для одного процесса, но как насчет задания MPI с несколькими процессами? Предположим, мы хотим увидеть использование для каждого процесса, а также общее количество (сумму) по всем процессам. Мы воспользуемся последовательной функцией из предыдущего раздела и соберем результаты в массив для одного процесса (с идентификатором «root»). Мы также создадим простую вспомогательную функцию, которая суммирует этот массив (результат сохраняется в процессе 0).

Вот соответствующий заголовочный файл

Вот программа для проверки наших функций. На этот раз для простоты мы выделяем только один вектор для каждого процесса. Затем мы распечатываем информацию о памяти.

Вот Makefile

А вот простой скрипт SLURM для запуска программы

Не забудьте также получить файлы memory.c и memory.h из предыдущего раздела. Сборка и запуск кода дает следующий результат.

Обратите внимание, что глобальное использование памяти, указанное в выходных данных, намного выше, чем сумма использований для каждого процесса, о которых сообщается непосредственно перед этим. Это происходит из-за использования самой библиотеки MPI, которая выделяет часть памяти по мере ее использования. В нашей тестовой программе мы могли убедиться, что если мы вызовем обе функции памяти во второй раз, числа останутся стабильными.

Не знаете точно, для чего нужна компьютерная память и как она работает?Мы охватываем все основы, от того, что такое оперативная память, до того, как она работает и почему стоит получить обновление.

Почему так важна компьютерная память (ОЗУ)?

Оперативная память компьютера (ОЗУ) — один из наиболее важных компонентов, определяющих производительность вашей системы. Оперативная память дает приложениям место для хранения данных и доступа к ним на краткосрочной основе. В нем хранится информация, которую ваш компьютер активно использует, чтобы к ней можно было быстро получить доступ.

Чем больше программ запущено в вашей системе, тем больше вам потребуется. SSD (твердотельные накопители) также являются важными компонентами и помогут вашей системе достичь максимальной производительности.

Скорость и производительность вашей системы напрямую зависят от объема установленной оперативной памяти. Если в вашей системе слишком мало оперативной памяти, она может работать медленно и вяло. Но, с другой стороны, вы можете установить слишком много, практически не получая дополнительных преимуществ. Есть способы узнать, требуется ли вашему компьютеру больше памяти, и убедиться, что вы покупаете память, совместимую с другими компонентами вашей системы. Как правило, компоненты создаются в соответствии с высочайшими стандартами на момент производства, но с расчетом на то, что технологии будут продолжать меняться.

Чтобы пользователи не могли вставить несовместимую память, модули физически различаются для каждого поколения технологии памяти. Эти физические различия являются стандартными для всей индустрии памяти. Одна из причин общеотраслевой стандартизации памяти заключается в том, что производителям компьютеров необходимо знать электрические параметры и физическую форму памяти, которую можно установить в их компьютеры.

Что такое скорость и задержка ОЗУ?

Производительность оперативной памяти зависит от соотношения скорости и задержки. Хотя они тесно связаны, они не связаны так, как вы могли бы подумать. На базовом уровне задержка относится к временной задержке между вводом команды и доступностью данных. Понимание скорости и задержки оперативной памяти поможет вам лучше выбрать правильную оперативную память для установки в вашей системе в соответствии с вашими потребностями.

Что делает ОЗУ (память)?

Оперативная память позволяет вашему компьютеру выполнять множество повседневных задач, таких как загрузка приложений, работа в Интернете, редактирование электронных таблиц или запуск последней игры. Память также позволяет вам быстро переключаться между этими задачами, запоминая, где вы находитесь в одной задаче, когда переключаетесь на другую задачу. Как правило, чем больше у вас памяти, тем лучше.

Когда вы включаете компьютер и открываете электронную таблицу для ее редактирования, но сначала проверяете свою электронную почту, вы используете память несколькими способами. Память используется для загрузки и запуска приложений, таких как программа для работы с электронными таблицами, ответа на команды, таких как любые изменения, которые вы внесли в электронную таблицу, или переключения между несколькими программами, например, когда вы вышли из электронной таблицы, чтобы проверить электронную почту. Память почти всегда активно используется вашим компьютером. Если ваша система работает медленно или не отвечает, вам может потребоваться обновление памяти. Если вы считаете, что вам может понадобиться больше памяти, вы можете легко увеличить объем оперативной памяти вашего настольного компьютера или ноутбука самостоятельно.

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

Что использует оперативную память?

Оперативная память используется для хранения информации, которую необходимо быстро использовать. Это означает, что открытие многих программ, запуск различных процессов или одновременный доступ к нескольким файлам, вероятно, будут использовать много оперативной памяти. Особенно сложные программы, такие как игры или программное обеспечение для дизайна, будут использовать большую часть оперативной памяти.

Нужно ли вам обновить оперативную память?

Являетесь ли вы геймером, дизайнером или просто хотите ускорить свой персональный компьютер, увеличение объема оперативной памяти — это простой и легкий способ повысить производительность вашей системы. Чтобы определить правильный тип памяти для вашего компьютера, используйте Crucial® Advisor™ или System Scanner. Эти инструменты помогут вам определить, какие модули памяти совместимы с вашим компьютером, а также выбрать параметры, соответствующие вашим требованиям к скорости и бюджету.

© Micron Technology, Inc., 2017. Все права защищены. Информация, продукты и/или технические характеристики могут быть изменены без предварительного уведомления. Ни Crucial, ни Micron Technology, Inc. не несут ответственности за упущения или ошибки в типографике или фотографии. Micron, логотип Micron, Crucial и логотип Crucial являются товарными знаками или зарегистрированными товарными знаками Micron Technology, Inc. Все другие товарные знаки и знаки обслуживания являются собственностью соответствующих владельцев.

Хотя технически память — это любая форма электронного хранилища, чаще всего она используется для идентификации быстрых временных форм хранения. Если бы центральный процессор вашего компьютера должен был постоянно обращаться к жесткому диску для извлечения всех необходимых ему данных, он работал бы очень медленно. Когда информация хранится в памяти, ЦП может получить к ней гораздо более быстрый доступ. Большинство форм памяти предназначены для временного хранения данных.

ЦП обращается к памяти в соответствии с четкой иерархией. Независимо от того, поступают ли они из постоянного хранилища (жесткий диск) или из ввода (клавиатура), большинство данных сначала попадают в оперативную память (ОЗУ). Затем ЦП сохраняет фрагменты данных, к которым ему необходимо получить доступ, часто в кэше, и поддерживает определенные специальные инструкции в регистре. Мы поговорим о кеше и регистрах позже.

Все компоненты вашего компьютера, такие как ЦП, жесткий диск и операционная система, работают вместе как одна команда, и память является одной из наиболее важных частей этой команды. С момента включения компьютера до момента его выключения ваш ЦП постоянно использует память. Давайте рассмотрим типичный сценарий:

  • Вы включаете компьютер.
  • Компьютер загружает данные из постоянной памяти (ПЗУ) и выполняет самотестирование при включении питания (POST), чтобы убедиться, что все основные компоненты работают правильно. В рамках этого теста контроллер памяти проверяет все адреса памяти с помощью операции быстрого чтения/записи, чтобы убедиться в отсутствии ошибок в микросхемах памяти. Чтение/запись означает, что данные записываются в бит, а затем считываются из этого бита.
  • Компьютер загружает базовую систему ввода-вывода (BIOS) из ПЗУ. BIOS предоставляет самую основную информацию об устройствах хранения, последовательности загрузки, безопасности, возможности Plug and Play (автоматическое распознавание устройств) и некоторых других элементах.
  • Компьютер загружает операционную систему (ОС) с жесткого диска в оперативную память системы. Как правило, критически важные части операционной системы хранятся в оперативной памяти, пока компьютер включен. Это позволяет ЦП иметь немедленный доступ к операционной системе, что повышает производительность и функциональность всей системы.
  • Когда вы открываете приложение, оно загружается в ОЗУ. Чтобы экономить ОЗУ, многие приложения сначала загружают только основные части программы, а затем загружают другие части по мере необходимости.
  • После загрузки приложения все файлы, открытые для использования в этом приложении, загружаются в ОЗУ.
  • Когда вы сохраняете файл и закрываете приложение, файл записывается на указанное устройство хранения, а затем он и приложение удаляются из ОЗУ.

В приведенном выше списке каждый раз, когда что-то загружается или открывается, оно помещается в оперативную память. Это просто означает, что он был помещен во временное хранилище компьютера, чтобы ЦП мог легче получить доступ к этой информации. ЦП запрашивает необходимые данные из ОЗУ, обрабатывает их и записывает новые данные обратно в ОЗУ в непрерывном цикле. В большинстве компьютеров перетасовка данных между ЦП и ОЗУ происходит миллионы раз в секунду. Когда приложение закрывается, оно и все сопутствующие файлы обычно очищаются (удаляются) из оперативной памяти, чтобы освободить место для новых данных. Если измененные файлы не сохраняются на постоянное запоминающее устройство перед очисткой, они теряются.

Один распространенный вопрос о настольных компьютерах, который возникает все время, звучит так: "Зачем компьютеру нужно так много систем памяти?"

На компьютере под управлением Windows 7 доступная память (ОЗУ) может быть меньше установленной памяти.

Например, 32-разрядная версия Windows 7 может сообщить, что на компьютере, на котором установлено 4 ГБ оперативной памяти, доступно только 3,5 ГБ системной памяти.

Или 64-разрядная версия Windows 7 может сообщать, что на компьютере, на котором установлено 8 ГБ оперативной памяти, доступно только 7,1 ГБ доступной системной памяти.

Примечание. Объем доступной памяти в примерах не является точным. Используемая память — это расчетный объем общей физической памяти за вычетом «аппаратно зарезервированной» памяти.

Чтобы просмотреть установленную память и доступную память в Windows 7, выполните следующие действия:

значок Windows

Нажмите "Пуск", щелкните правой кнопкой мыши "Компьютер" и выберите "Свойства".

Просмотрите значение Установленная память (ОЗУ) в разделе Система. Например, если отображается 4,00 ГБ (3,5 ГБ полезной), это означает, что у вас есть 3,5 ГБ доступной памяти из 4 ГБ установленной памяти.

Причина

Это ожидаемое поведение на компьютерах под управлением Windows 7. Уменьшение доступной системной памяти зависит от следующих настроек:

Устройства, установленные на компьютере, и память, зарезервированная этими устройствами

Способность материнской платы управлять памятью

Версия и настройки BIOS системы

Версия установленной Windows 7 (например, Windows 7 Starter Edition поддерживает только 2 ГБ установленной памяти.)

Другие системные настройки

Например, если у вас есть видеокарта с 256 МБ встроенной памяти, эта память должна быть сопоставлена ​​с первыми 4 ГБ адресного пространства. Если 4 ГБ системной памяти уже установлены, часть этого адресного пространства должна быть зарезервирована путем сопоставления графической памяти. Отображение графической памяти перезаписывает часть системной памяти. Эти условия уменьшают общий объем системной памяти, доступной для операционной системы.

Дополнительные сведения о том, как определить, как используется память на вашем компьютере, см. в разделе "Распределение физической памяти в Windows 7" в разделе "Дополнительная информация".

Что попробовать

Проверьте настройки конфигурации системы

Эта проблема может возникнуть из-за неправильного выбора параметра Максимальный объем памяти. Чтобы исправить это, выполните следующие действия:

значок Windows

Нажмите "Пуск", введите msconfig в поле "Найти программы и файлы", а затем щелкните msconfig в списке "Программы".

В окне «Конфигурация системы» нажмите «Дополнительные параметры» на вкладке «Загрузка».

Снимите флажок Максимальный объем памяти, а затем нажмите OK.

Перезагрузите компьютер.

Обновите системный BIOS

Проблема может возникнуть из-за того, что системный BIOS устарел. Если у вас старый компьютер, система может не получить доступ ко всей установленной оперативной памяти. В этом случае необходимо обновить системный BIOS до последней версии.

Чтобы обновить BIOS на своем компьютере, посетите веб-сайт производителя компьютера и загрузите обновление BIOS. Или обратитесь за помощью к производителю компьютера.

Проверьте настройки BIOS

Проблема может возникнуть из-за неправильных настроек BIOS.

Включить функцию переназначения памяти

Проверьте настройки BIOS, чтобы узнать, включена ли функция переназначения памяти. Перераспределение памяти дает Windows доступ к большему объему памяти. Вы можете включить функцию перераспределения памяти в BIOS, загрузившись в программе настройки системы. См. Руководство пользователя для вашего компьютера, чтобы узнать, как загрузиться для настройки системы на вашем компьютере. Название функции перераспределения памяти может различаться у разных поставщиков оборудования. Это может быть указано как перераспределение памяти, расширение памяти или что-то подобное. Имейте в виду, что ваш компьютер может не поддерживать функцию перераспределения памяти.

Изменить размер видеоапертуры AGP в настройках BIOS

Проверьте настройки BIOS, чтобы узнать, сколько памяти вы выделили для видеоапертуры AGP. Это память, которую система разделяет с видеокартой, которая используется для наложения текстур и рендеринга. Эта память не будет использоваться системой, поскольку она заблокирована видеокартой. Размер видеоапертуры AGP можно настроить в BIOS. Стандартные настройки: «32 МБ», «64 МБ», «128 МБ» и «Авто». После того, как вы измените этот параметр в BIOS, перезагрузите компьютер, а затем проверьте доступную память. Вы можете протестировать каждый параметр, чтобы увидеть, какой из них обеспечивает наилучшие результаты.

Проверьте возможные проблемы с физической оперативной памятью

Проблема может возникнуть из-за проблем с установленной физической оперативной памятью.

Проверьте, нет ли у вас неисправных модулей памяти

Чтобы проверить, возникла ли у вас эта проблема, выключите компьютер, отсоедините его от сети, а затем поменяйте местами память.

Убедитесь, что расположение памяти правильное

См. руководство пользователя компьютера, чтобы определить, в каком порядке следует вставлять модули памяти в слоты памяти. Система может потребовать от вас использовать определенные слоты, если вы не используете все доступные слоты. Например, в компьютере есть четыре доступных слота. Но вам, возможно, придется использовать слот 1 и слот 3, если вы хотите использовать только два модуля памяти.

Проверьте, используются ли карты памяти

Если вы используете карту памяти для хранения нескольких модулей памяти на компьютере, системе могут потребоваться особые настройки для этого сценария. Поэтому доступный объем памяти может быть меньше ожидаемого.

Дополнительная информация

В следующих разделах представлена ​​дополнительная информация о выделении памяти, как сообщается в мониторе ресурсов, описывается используемая терминология и предлагаются дополнительные сведения об отчетах о памяти и ограничениях памяти в Windows 7.

Распределение физической памяти в Windows 7

В следующей таблице показано, как монитор ресурсов классифицирует память, установленную в настоящее время на компьютере под управлением Windows 7.

Память, зарезервированная для использования BIOS и некоторыми драйверами других периферийных устройств

Память, используемая процессом, драйверами или операционной системой

Память, содержимое которой должно быть записано на диск, прежде чем ее можно будет использовать для других целей

Память, содержащая кэшированные данные и код, который не используется активно

Память, которая не содержит ценных данных и будет использоваться в первую очередь, когда процессам, драйверам или операционной системе потребуется больше памяти

Примечание. Чтобы просмотреть распределение установленной памяти в Windows 7, выполните следующие действия:

значок Windows

Нажмите «Пуск» , введите «монитор ресурсов» в поле «Найти программы и файлы», а затем нажмите «Монитор ресурсов» в списке «Программы».

Перейдите на вкладку "Память" и просмотрите раздел "Физическая память" внизу страницы.

Состояние памяти в Windows 7

В следующей таблице указано текущее состояние установленной памяти, сообщаемое мониторами ресурсов на компьютере под управлением Windows 7.

Объем памяти (включая резервную и свободную память), который сразу же доступен для использования процессами, драйверами и операционной системой

Объем памяти (включая резервную и измененную память), которая содержит кэшированные данные и код для быстрого доступа процессов, драйверов и операционной системы

Объем физической памяти, доступный операционной системе, драйверам устройств и процессам

Объем физической памяти, установленной на компьютере

Отчеты о памяти в Windows 7

Windows 7 сообщает, сколько физической памяти в данный момент установлено на вашем компьютере. Операционные системы на базе Windows NT до Windows Vista Service P1 сообщают, сколько памяти доступно для операционной системы. Доступная память, указанная в этих более ранних версиях Windows, не включает аппаратно зарезервированную память. Это только отчетное изменение.

Вы увидите это изменение в отчетах в Windows Vista SP1 и более поздних версиях Windows в следующих местах:

Значение оперативной памяти в Центре приветствия

Значение памяти в нижней части окна "Мой компьютер"

Значение памяти в окнах свойств системы

Значение "Общий объем системной памяти" на странице "Просмотр и печать сведений" элемента "Информация о производительности и инструменты" на панели управления


Кроме того, средство "Информация о системе" (Msinfo32.exe) отображает следующие записи на странице "Сводка системы":

Установленная физическая память (ОЗУ)

Общая физическая память

Доступная физическая память

Отчеты в следующем инструменте диагностики не изменились:

Вкладка "Производительность" в диспетчере задач

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

Например, рассмотрим компьютер с набором микросхем Intel 975X, поддерживающим 8 ГБ адресного пространства. Если вы установите 8 ГБ оперативной памяти, системная память, доступная для операционной системы, будет уменьшена в соответствии с требованиями конфигурации PCI. В этом примере требования к конфигурации PCI уменьшают память, доступную для операционной системы, на величину от приблизительно 200 МБ до приблизительно 1 ГБ. Снижение зависит от конфигурации.

Ограничения физической памяти в Windows 7

В следующей таблице указаны ограничения на физическую память для различных версий Windows 7.

Читайте также: