Анализ использования памяти с помощью Монитора ресурсов Windows 7
В своей прошлой статье «Как использовать Монитор ресурсов Windows 7 для эффективной диагностики» я рассказал о возможностях Монитора ресурсов Windows 7 (Resource Monitor), объяснил, как с его помощью наблюдать за распределением системных ресурсов между процессами и службами, а также упомянул, что его можно использовать для решения конкретных задач — например, для анализа расходования памяти. Именно об этом и пойдет речь в данной статье.
Прежде чем приступать к анализу, коротко расскажу о том, как Microsoft Windows 7 управляет памятью. После этого вам будет проще понять, какая информация представлена в Мониторе ресурсов Windows 7.
Диспетчер памяти Windows 7 создает виртуальную систему памяти, которая состоит из доступной физической RAM и файла подкачки на жестком диске. Это позволяет операционной системе выделять блоки памяти фиксированной длины (страницы) с последовательными адресами в физической и виртуальной памяти.
Запуск Монитора ресурсов Windows 7
Чтобы запустить Монитор ресурсов Windows 7, откройте меню «Пуск» (Start), введите в строке поиска «Resmon.exe» и нажмите [Enter]. В открывшемся окне выберите вкладку «Память» (Memory, рис. A).
На вкладке «Память» есть таблица «Процессы» (Processes, рис. B), в которой перечислены все запущенные процессы, а сведения об используемой памяти разбиты на несколько категорий.
В колонке «Образ» (Image) указывается имя исполняемого файла процесса. Процессы, запущенные приложениями, узнать очень легко — например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad). Процессы с именем «svchost.exe» представляют различные службы операционной системы. Название службы указывается в скобках рядом с именем процесса.
В колонке «ИД процесса» (PID) указывается номер процесса — уникальное сочетание цифр, позволяющее идентифицировать запущенный процесс.
В столбце «Завершено» (Commit) указывается объем виртуальной памяти в килобайтах, зарезервированный системой для данного процесса. Сюда входит и используемая физическая память, и сохраненные в файле подкачки страницы.
Графа «Рабочий набор»
В графе «Рабочий набор» (Working Set) указывается объем физической памяти в килобайтах, используемой процессом в данный момент времени. Рабочий набор складывается из общей и частной памяти.
В колонке «Общий» (Shareable) указан объем физической памяти в килобайтах, которую данный процесс использует совместно с другими. Использование одного сегмента памяти или страницы подкачки для родственных процессов позволяет сэкономить место в памяти. При этом физически сохраняется только одна копия страницы, которая затем сопоставляется с виртуальным адресным пространством других процессов, которые к ней обращаются. Например, все процессы, инициированные системными библиотеками DLL — Ntdll, Kernel32, Gdi32 и User32 — используют общую память.
В столбце «Частный» (Private) указывается объем физической памяти в килобайтах, используемой исключительно данным процессом. Именно это значение позволяет определить, сколько памяти нужно тому или иному приложению для работы.
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
Таблица «Физическая память»
В таблице «Процессы» приводятся детальные сведения о распределении памяти между отдельными процессами, а таблица «Физическая память» (Physical Memory) дает общую картину использования RAM. Ее ключевой компонент — уникальная гистограмма, показанная на рис. C.
Каждая секция гистограммы обозначена собственным цветом и представляет определенную группу страниц памяти. По мере использования системы, диспетчер памяти в фоновом режиме перемещает данные между этими группами, поддерживая тонкий баланс между физической и виртуальной памятью для обеспечения эффективной работы всех приложений. Давайте рассмотрим гистограмму поподробнее.
Секция «Зарезервированное оборудование»
Слева расположена секция «Зарезервированное оборудование» (Hardware Reserved), обозначенная серым цветом: это память, выделенная на нужды подключенного оборудования, которую оно использует для взаимодействия с операционной системой. Зарезервированная для оборудования память заблокирована и недоступна диспетчеру памяти.
Обычно объем памяти, выделенной оборудованию, составляет от 10 до 70 Мбайт, однако этот показатель зависит от конкретной конфигурации системы и в некоторых случаях может достигать нескольких сотен мегабайт. К компонентам, влияющим на объем зарезервированной памяти, относятся:
• BIOS;
• компоненты материнской платы — например, усовершенствованный программируемый контроллер прерываний ввода/вывода (APIC);
• звуковые карты и другие устройства, осуществляющие ввод/вывод с отображением на память;
• шина PCI Express (PCIe);
• видеокарты;
• различные наборы микросхем;
• флеш-накопители.
Некоторые пользователи жалуются, что в их системах для оборудования зарезервировано ненормально много памяти. Мне с такой ситуацией сталкиваться не приходилось и потому я не могу ручаться за действенность предложенного решения, но многие отмечают, что обновление версии BIOS позволяет решить проблему.
Секция «Используется» (In Use, рис C), обозначенная зеленым цветом, представляет количество памяти, используемой системой, драйверами и запущенными процессами. Количество используемой памяти рассчитывается, как значение «Всего» (Total) за вычетом суммы показателей «Изменено» (Modified), «Ожидание» (Standby) и «Свободно» (Free). В свою очередь, значение «Всего» — это показатель «Установлено» (Installed RAM) за вычетом показателя «Зарезервированное оборудование».
Оранжевым цветом выделена секция «Изменено» (Modified), в которой представлена измененная, но не задействованная память. Фактически она не используется, но может быть в любой момент задействована, если снова понадобится. Если память не используется достаточно давно, данные переносятся в файл подкачки, а память переходит в категорию «Ожидание».
Секция «Ожидание», обозначенная синим цветом, представляет страницы памяти, удаленные из рабочих наборов, но по-прежнему с ними связанные. Другими словами, категория «Ожидание» — это фактически кэш. Страницам памяти в этой категории присваивается приоритет от 0 до 7 (максимум). Страницы, связанные с высокоприоритетными процессами, получают максимальный приоритет. Например, совместно используемые процессы обладают высоким приоритетом, поэтому связанным с ними страницам присваивается наивысший приоритет в категории «Ожидание».
Если процессу требуются данные с ожидающей страницы, диспетчер памяти сразу же возвращает эту страницу в рабочий набор. Тем не менее, все страницы в категории «Ожидание» доступны для записи данных от других процессов. Когда процессу требуется дополнительная память, а свободной памяти недостаточно, диспетчер памяти выбирает ожидающую страницу с наименьшим приоритетом, инициализирует ее и выделяет запросившему процессу.
В категории «Свободно», обозначенной голубым цветом, представлены страницы памяти, еще не выделенные ни одному процессу или освободившиеся после завершения процесса. В этой секции отображается как еще не задействованная, так и уже освобожденная память, но на самом деле, еще не задействованная память относится к другой категории — «Нулевые страницы» (Zero Page), которая так называется, потому что эти страницы инициализированы нулевым значением и готовы для использования.
О проблеме свободной памяти
Теперь, когда вы в общих чертах представляете, как работает диспетчер памяти, ненадолго остановимся на распространенном заблуждении, связанном с системой управления памятью в Windows 7. Как видно из рис. C, секция свободной памяти — одна из самых маленьких в гистограмме. Тем не менее, ошибочно на этом основании полагать, будто Windows 7 потребляет чересчур много памяти и что система не может нормально работать, если свободной памяти так мало.
На самом деле, все совсем наоборот. В контексте принятого в Windows 7 подхода к управлению памятью, свободная память бесполезна. Чем больше памяти задействовано, тем лучше. Заполняя память до максимума и постоянно перемещая страницы из одной категории в другую с использованием системы приоритетов, Windows 7 повышает эффективность работы и предотвращает попадание данных в файл подкачки, не давая ошибкам отсутствия страницы в памяти замедлить быстродействие.
Хотите понаблюдать систему управления памятью Windows 7 в действии? Перезагрузите компьютер и сразу же после запуска откройте Монитор ресурсов Windows 7. Перейдите на вкладку «Память» и обратите внимание на соотношение секций в гистограмме физической памяти.
Затем начните запускать приложения. По мере запуска следите за изменением гистограммы. Запустив как можно больше приложений, начните закрывать их по одному и наблюдайте, как изменяется соотношение секций в гистограмме физической памяти.
Проделав этот экстремальный эксперимент, вы поймете, как Windows 7 управляет памятью на вашем конкретном компьютере, и сможете использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти в нормальных условиях повседневной работы.
Нравится ли вам идея использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти? Поделитесь своим мнением в комментариях!
Автор: Greg Shultz
Перевод SVET
Оцените статью: Голосов
Источник
Ошибки страниц физической памяти что это
Сообщения: 10692
Благодарности: 2886
•Ошибок отсутствия страницы в памяти/сек – ошибка отсутствия в памяти. Как правило, она может быть критической (но не всегда). Также может указывать на нехватку оперативной памяти. Такая ошибка возникает в тех случаях, когда система использует файл подкачки, который находится на жестком диске. Жесткий диск работает медленнее оперативной памяти, и использование файла подкачки снижает быстродействие системы. Если подобные ошибки слишком часто возникают, лучше расширить оперативную память.
1. Откройте командную строку с Административными правами.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
По окончании выложите C:\windows\Logs\CBS\ CBS.log в архиве.
Запустите AIDA64 Portable от имени Администратора > Сверху, в окне программы AIDA нажмите «Отчет» >
Далее > выберите «Аппаратные разделы» > Далее > Простой текст > Готово > Сохранить в файл.
Файл, в архиве, подкрепите к сообщению.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 3
Благодарности: 0
Доброго времени суток господа.
так. что еще можно сказать то.
Пожалуй это и натолкнуло меня написать пост именно здесь, а не создавать тему, т.к. на первый взгляд кажется всё это тесно связано между собой.
По поводу раммапа, похоже там критических утечек нет, но на мой взгляд многовато всё же для 2-х гигов)
Источник
О чем говорят ошибки отсутствия страницы в памяти
В случае вытесняющего алгоритма операционная система в любой момент времени может прервать выполнение текущего потока и переключить процессор на другой поток. В невытесняющих алгоритмах поток, которому предоставлен процессор, только сам решает, когда передать управление операционной системе.
Алгоритмы с квантованием.
Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера1.
Алгоритмы с приоритетами.
Каждому потоку назначается приоритет (priority) – целое число, обозначающее степень привилегированности потока. Операционная система при наличии нескольких готовых к выполнению потоков выбирает из них поток с наибольшим приоритетом.
В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.
Прерывание 14 —Страничная ошибка(#PF): Intel386 …
Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:
Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).
Прерванная программа после устранения причин, вызвавших страничную ошибку (например, загризки страницы в физическую память), может быть продолжена без каких-либо дополнительных корректировок.
Если страничная ошибка была вызвана в связи с нарушением привилегий страничной защиты, то бит доступа (A) в соответствующем элементе каталога страниц устанавливается. Поведение бита доступа в соответствующем элементе таблиц страниц для этого случая не регламентируется в процессорах Intel и может быть разным в различных моделях.
— ненадежности оперативной памяти
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. Синхронизация потоков ). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.
В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).
Рис. 6.2.Приоритеты потоков
Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов. Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:
Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:
Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока
Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.
Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. Функционирование менеджера памяти ) и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.
Статьи к прочтению:
Пусть говорят — «Вы мне не верили, а я умерла»Выпуск от 11.09.217
Похожие статьи:
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов так, чтобы все…
На рис. 10 показана схема страничного распределения памяти. Виртуальное адресное пространство каждого процесса делится на части одинакового,…
Источник
100 Ошибок страниц диск что это
Что это такое? Как понимать его показания? В справке не описано.
Это нормально, когда у программы он растет со скоростью 2-3 тыс единиц в секунду?
← →
homm © ( 2007-05-01 14:42 ) [1]
> Что это такое? Как понимать его показания?
Да не паникуй ты так. Это количество страниц, к котрым онадобился доступ когда их не было в оперативной памяти. А если еще точнее, то количество страниц, к котрым онадобился доступ когда их не было в рабочем наборе приложения, что не значит что их не было в оперативе.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Нет 🙂 Пора идти в магазин за оперативой 🙂
← →
Eraser © ( 2007-05-01 14:42 ) [2]
> [0] DVM © (01.05.07 13:42)
> Что это такое?
это ошибка доступа к странице памяти, при её возникновении системы выгружает нужную страницу из файла подкачки в ОЗУ.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
не очень (хотя тут нужно смотреть конкретную ситуацию), нужно побольше ОЗУ.
← →
homm © ( 2007-05-01 15:05 ) [3]
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Я счас подергал окошко оперы за края, погонял апатчь, до 5 тышь в секунду доходило. Вот же уродский оптимайзер памяти у винды 🙁 Так что пара тысячь в секунду — вполне нормально.
← →
DVM © ( 2007-05-01 15:35 ) [4]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB. А именно:
procedure FastDIB2Bitmap(Src:TFastDIB;Dst:TBitmap);
begin
if Src.Handle<>0 then
begin
Dst.Handle:=Src.Handle;
// bitmaps can be selected for only one device context at a time
if(Src.hDC<>0)and Src.FreeDC then DeleteDC(Src.hDC);
if(Src.hPen<>0)then DeleteObject(Src.hPen);
if(Src.hFont<>0)then DeleteObject(Src.hFont);
if(Src.hBrush<>0)then DeleteObject(Src.hBrush);
Src.hDC:=0;
Src.FreeDC:=False;
Src.FreeBits:=False;
Src.FreeHandle:=False;
end;
end;
Вот такие преобразования моя программа делает до 200 в секунду.
Если я комментирую преобразование, то счетчик не растет практически.
Памяти 100% достаточно. Ее количество не влияет на этот счетчик. 2Гб ее.
← →
Eraser © ( 2007-05-01 16:40 ) [5]
ну если это не дает лишней нагрузки на CPU — можно смело забить, если нагрузку дает — исключить вызов FastDIB2Bitmap.
← →
antonn © ( 2007-05-01 16:43 ) [6]
щас может тупой вопрос задам:)
А так — procedure FastDIB2Bitmap(Src:TFastDIB; var Dst:TBitmap);
?
← →
DVM © ( 2007-05-01 17:13 ) [7]
> ну если это не дает лишней нагрузки на CPU
Не нагрузки не дает абсолютно. Память не растет, никакие ресурсы не уменьшаются.
← →
Eraser © ( 2007-05-01 17:28 ) [8]
> [6] antonn © (01.05.07 16:43)
в Делфи идентификатор объекта является указателем на объект )
← →
antonn © ( 2007-05-01 18:09 ) [9]
> в Делфи идентификатор объекта является указателем на объект
> )
:Р
← →
Sapersky ( 2007-05-01 20:51 ) [10]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB.
По логике, нужно сначала всё освободить, потом присваивать Handle. Возможно, и освобождать необязательно, во всяком случае в примере Bumpmap сделано так:
procedure TBumpForm.SetThumbnail(Image:TImage; Bmp:TFastDIB);
var
Tmp: TFastDIB;
begin
Tmp:=TFastDIB.Create;
Tmp.SetSize(105,105,Bmp.Bpp);
if Tmp.Bpp=8 then
begin
Tmp.Colors^:=Bmp.Colors^;
Tmp.UpdateColors;
end;
Bilinear(Bmp,Tmp);
Tmp.FreeHandle:=False;
Image.Picture.Bitmap.Handle:=Tmp.Handle;
Tmp.Free;
Image.Refresh;
end;
А вообще, откуда надобность выполнять подобное преобразование 200 раз/c? Может лучше выкинуть TBitmap и выполнять все операции с TFastDIB? А то мне сейчас лень смотреть, но подозреваю, что в TBitmap.SetHandle куда больше действий, чем просто присвоение переменной.
Ещё, имейте в виду, что FastGate — это не оригинальный FastLIB. Автор этого модуля уже допускал ляпы при «улучшении» библиотеки, так что аккуратнее с ним (хотя, строго говоря, и «оригинал» не безгрешен).
← →
DVM © ( 2007-05-01 22:03 ) [11]
> А вообще, откуда надобность выполнять подобное преобразование
> 200 раз/c?
Да есть вот задачи. Видеонаблюдение.
> Может лучше выкинуть TBitmap и выполнять все операции с
> TFastDIB?
Так и планирую сделать, но есть свои грабли и очень много вносить изменений. В принципе FastDIB тут прикручен из-за фантастически быстрой SetSize.
> TBitmap.SetHandle куда больше действий, чем просто присвоение
> переменной.
Да, там намного больше действий.
> Sapersky
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование? У меня вот какая штука:
Во вторичном потоке происходит декодирование JPEG в TFastDIB. Далее этот FastDIB с сообщением высылается в основной поток и там преобразуется в TBitmap, который и отрисовывается при необходимости в основном потоке по WM_PAINT. Так сделано сейчас. Так вот получается, что и основной поток и вторичный на деле же работают с одним и тем же хэндлом одного и того же битмапа по сути. Ведь FastDIB2Bitmap просто присваивает хэндл. И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Или я неправ? Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
homm © ( 2007-05-01 22:06 ) [12]
Хм, а я кажеться понял почему так много ошибок доступа в этом месте. Потому что по Dst.Handle:=Src.Handle; Dst фактически заново создаеться, под новый битмап выделяеться память. А менеджер памяти в виндовсе имеет такое замечательное свойство, не выделять память физически, а лишь помечать страницы как зарезервированые. А вот когда уже на новый хэндл уже копируеться изображение со старого, идет непосредственное обращение к страницам, и они выделяются физически (в ОП), а счетчик ошибок доступа мотает. Так что эта строчка имхо — большая дыра в производительности. Попробуй как минимум создавать TBitmap как DIB, как максимум, здесь вобще нужно логику программы переделывать.
← →
homm © ( 2007-05-01 22:11 ) [13]
> Так вот получается, что и основной поток и вторичный на
> деле же работают с одним и тем же хэндлом одного и того
> же битмапа по сути.
Скорее всего нет. Как я понимаю невозможно преобразовать DDB в DIB не выделив под него второй хэндл.
← →
DVM © ( 2007-05-01 22:21 ) [14]
> Потому что по Dst.Handle:=Src.Handle; Dst фактически заново
> создаеться, под новый битмап выделяеться память
Да, получается, что так.
> Так что эта строчка имхо — большая дыра в производительности.
Может быть, но это далеко не самая тяжелая операция. Декодирование из JPEG во вторичных потоках занимает в тысячи раз больше времени.
> как максимум, здесь вобще нужно логику программы переделывать.
Я вот попробовал переделать на TFastDIB в основном потоке — проблема с ошибками страницы исчезла.
← →
DVM © ( 2007-05-01 22:25 ) [15]
Возникла другая проблема — как мне правильно передать с сообщением переменную типа TFastDIB из вторичного потока в первичный с сообщением и присвоить полченное в основном потоке значение переменной в первичном потоке. Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
← →
Sapersky ( 2007-05-02 00:38 ) [16]
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование?
Dst.MakeCopy(Src, True); // делается SetSize и Move
Или можно (при UseGDI = True) установить размер Dst = Src, потом
Src.Draw(Dst.hDC, 0, 0); // фактически BitBlt
удобно тем, что конвертирует битмапы разных форматов, хотя, как правило, не очень качественно. Впрочем, для этого есть FConvert.pas.
И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
Если вторичный поток не изменяет размер битмапа, т.е. не портит указатель/Handle, то, наверное, можно его спокойно рисовать, в крайнем случае нарисуется половина старого, половина нового. Хотя сам не пробовал, не знаю, как функции GDI отнесутся к тому, что кто-то будет писать в используемую ими область памяти. Можно на всякий случай прицепить к битмапу крит. секцию.
Если изменяет — тогда однозначно нужна или синхронизация, или копирование, или и то, и другое.
Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
Что такое «присваивание»?
Если Assign — возможно, «аффтар» FastGate с ним напортачил в новой версии, пытаясь добиться того же поведения, что и у TBitmap. В оригинале это поведение довольно специфическое — битмап-источник уничтожается.
В общем, лучше «присваивание» делать как Dst := Src с соответствующей синхронизацией или MakeCopy.
← →
Игорь Шевченко © ( 2007-05-02 10:29 ) [17]
> Вот же уродский оптимайзер памяти у винды
Слону, сам понимаешь, пофиг.
← →
DVM © ( 2007-05-02 13:00 ) [18]
> Sapersky (02.05.07 00:38) [16]
Большое спасибо. Метод TFastDib.MakeCopy() действительно то что нужно.
Счетчики ошибок страницы не растут. Утечек тоже нет. Как обстоят дела с производительностью такого решения выясняю.
Вот тут ответ на твой вопрос:
https://social.technet.microsoft.com/Forums/ru-RU/0e7cb14d-99b8-48bd-aa2c-00594afa2cad/1084108610851080109010861088?forum=vistaru
Если имеется в виду Page Fault то это не ошибки. Это просто значит что запрошеная страница (участок памяти размером 4К) была выгружена на диск и ее потребовалось загрузить в физическую память. Это совершенно нормальное явление в любых ОС с виртуальной памятью.
Черезмерное количество таких явлений однако может привести к снижению производительности и свидетельствует о недостатке физической памяти.
В случае вытесняющего алгоритма операционная система в любой момент времени может прервать выполнение текущего потока и переключить процессор на другой поток. В невытесняющих алгоритмах поток, которому предоставлен процессор, только сам решает, когда передать управление операционной системе.
Алгоритмы с квантованием.
Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера1.
Алгоритмы с приоритетами.
Каждому потоку назначается приоритет (priority) – целое число, обозначающее степень привилегированности потока. Операционная система при наличии нескольких готовых к выполнению потоков выбирает из них поток с наибольшим приоритетом.
В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.
Прерывание 14 —Страничная ошибка(#PF): Intel386 …
Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:
Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).
Прерванная программа после устранения причин, вызвавших страничную ошибку (например, загризки страницы в физическую память), может быть продолжена без каких-либо дополнительных корректировок.
Если страничная ошибка была вызвана в связи с нарушением привилегий страничной защиты, то бит доступа (A) в соответствующем элементе каталога страниц устанавливается. Поведение бита доступа в соответствующем элементе таблиц страниц для этого случая не регламентируется в процессорах Intel и может быть разным в различных моделях.
— ненадежности оперативной памяти
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. Синхронизация потоков ). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.
В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).
Рис. 6.2.Приоритеты потоков
Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов. Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:
Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:
Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока
Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.
Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. Функционирование менеджера памяти ) и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.
Статьи к прочтению:
Пусть говорят — «Вы мне не верили, а я умерла»Выпуск от 11.09.217
Похожие статьи:
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов так, чтобы все…
На рис. 10 показана схема страничного распределения памяти. Виртуальное адресное пространство каждого процесса делится на части одинакового,…
Источник
В своей прошлой статье «Как использовать Монитор ресурсов Windows 7 для эффективной диагностики» я рассказал о возможностях Монитора ресурсов Windows 7 (Resource Monitor), объяснил, как с его помощью наблюдать за распределением системных ресурсов между процессами и службами, а также упомянул, что его можно использовать для решения конкретных задач — например, для анализа расходования памяти. Именно об этом и пойдет речь в данной статье.Немного о памяти
Прежде чем приступать к анализу, коротко расскажу о том, как Microsoft Windows 7 управляет памятью. После этого вам будет проще понять, какая информация представлена в Мониторе ресурсов Windows 7.
Диспетчер памяти Windows 7 создает виртуальную систему памяти, которая состоит из доступной физической RAM и файла подкачки на жестком диске. Это позволяет операционной системе выделять блоки памяти фиксированной длины (страницы) с последовательными адресами в физической и виртуальной памяти.
Запуск Монитора ресурсов Windows 7
Чтобы запустить Монитор ресурсов Windows 7, откройте меню «Пуск» (Start), введите в строке поиска «Resmon.exe» и нажмите [Enter]. В открывшемся окне выберите вкладку «Память» (Memory, рис. A).
Рисунок A. На вкладке «Память» в Мониторе ресурсов Windows 7 приводятся подробные сведения о распределении памяти.
Таблица «Процессы»
На вкладке «Память» есть таблица «Процессы» (Processes, рис. B), в которой перечислены все запущенные процессы, а сведения об используемой памяти разбиты на несколько категорий.
Рисунок B. Сведения об используемой памяти для каждого процесса разбиты на несколько категорий.
Графа «Образ»
В колонке «Образ» (Image) указывается имя исполняемого файла процесса. Процессы, запущенные приложениями, узнать очень легко — например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad). Процессы с именем «svchost.exe» представляют различные службы операционной системы. Название службы указывается в скобках рядом с именем процесса.
Графа «ИД процесса»
В колонке «ИД процесса» (PID) указывается номер процесса — уникальное сочетание цифр, позволяющее идентифицировать запущенный процесс.
Графа «Завершено»
В столбце «Завершено» (Commit) указывается объем виртуальной памяти в килобайтах, зарезервированный системой для данного процесса. Сюда входит и используемая физическая память, и сохраненные в файле подкачки страницы.
Графа «Рабочий набор»
В графе «Рабочий набор» (Working Set) указывается объем физической памяти в килобайтах, используемой процессом в данный момент времени. Рабочий набор складывается из общей и частной памяти.
Графа «Общий»
В колонке «Общий» (Shareable) указан объем физической памяти в килобайтах, которую данный процесс использует совместно с другими. Использование одного сегмента памяти или страницы подкачки для родственных процессов позволяет сэкономить место в памяти. При этом физически сохраняется только одна копия страницы, которая затем сопоставляется с виртуальным адресным пространством других процессов, которые к ней обращаются. Например, все процессы, инициированные системными библиотеками DLL — Ntdll, Kernel32, Gdi32 и User32 — используют общую память.
Графа «Частный»
В столбце «Частный» (Private) указывается объем физической памяти в килобайтах, используемой исключительно данным процессом. Именно это значение позволяет определить, сколько памяти нужно тому или иному приложению для работы.
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
Таблица «Физическая память»
В таблице «Процессы» приводятся детальные сведения о распределении памяти между отдельными процессами, а таблица «Физическая память» (Physical Memory) дает общую картину использования RAM. Ее ключевой компонент — уникальная гистограмма, показанная на рис. C.
Рисунок C. Гистограмма в таблице «Физическая память» позволяет составить общее представление о распределении памяти в Windows 7.
Каждая секция гистограммы обозначена собственным цветом и представляет определенную группу страниц памяти. По мере использования системы, диспетчер памяти в фоновом режиме перемещает данные между этими группами, поддерживая тонкий баланс между физической и виртуальной памятью для обеспечения эффективной работы всех приложений. Давайте рассмотрим гистограмму поподробнее.
Секция «Зарезервированное оборудование»
Слева расположена секция «Зарезервированное оборудование» (Hardware Reserved), обозначенная серым цветом: это память, выделенная на нужды подключенного оборудования, которую оно использует для взаимодействия с операционной системой. Зарезервированная для оборудования память заблокирована и недоступна диспетчеру памяти.
Обычно объем памяти, выделенной оборудованию, составляет от 10 до 70 Мбайт, однако этот показатель зависит от конкретной конфигурации системы и в некоторых случаях может достигать нескольких сотен мегабайт. К компонентам, влияющим на объем зарезервированной памяти, относятся:
• BIOS;
• компоненты материнской платы — например, усовершенствованный программируемый контроллер прерываний ввода/вывода (APIC);
• звуковые карты и другие устройства, осуществляющие ввод/вывод с отображением на память;
• шина PCI Express (PCIe);
• видеокарты;
• различные наборы микросхем;
• флеш-накопители.
Некоторые пользователи жалуются, что в их системах для оборудования зарезервировано ненормально много памяти. Мне с такой ситуацией сталкиваться не приходилось и потому я не могу ручаться за действенность предложенного решения, но многие отмечают, что обновление версии BIOS позволяет решить проблему.
Секция «Используется»
Секция «Используется» (In Use, рис C), обозначенная зеленым цветом, представляет количество памяти, используемой системой, драйверами и запущенными процессами. Количество используемой памяти рассчитывается, как значение «Всего» (Total) за вычетом суммы показателей «Изменено» (Modified), «Ожидание» (Standby) и «Свободно» (Free). В свою очередь, значение «Всего» — это показатель «Установлено» (Installed RAM) за вычетом показателя «Зарезервированное оборудование».
Секция «Изменено»
Оранжевым цветом выделена секция «Изменено» (Modified), в которой представлена измененная, но не задействованная память. Фактически она не используется, но может быть в любой момент задействована, если снова понадобится. Если память не используется достаточно давно, данные переносятся в файл подкачки, а память переходит в категорию «Ожидание».
Секция «Ожидание»
Секция «Ожидание», обозначенная синим цветом, представляет страницы памяти, удаленные из рабочих наборов, но по-прежнему с ними связанные. Другими словами, категория «Ожидание» — это фактически кэш. Страницам памяти в этой категории присваивается приоритет от 0 до 7 (максимум). Страницы, связанные с высокоприоритетными процессами, получают максимальный приоритет. Например, совместно используемые процессы обладают высоким приоритетом, поэтому связанным с ними страницам присваивается наивысший приоритет в категории «Ожидание».
Если процессу требуются данные с ожидающей страницы, диспетчер памяти сразу же возвращает эту страницу в рабочий набор. Тем не менее, все страницы в категории «Ожидание» доступны для записи данных от других процессов. Когда процессу требуется дополнительная память, а свободной памяти недостаточно, диспетчер памяти выбирает ожидающую страницу с наименьшим приоритетом, инициализирует ее и выделяет запросившему процессу.
Секция «Свободно»
В категории «Свободно», обозначенной голубым цветом, представлены страницы памяти, еще не выделенные ни одному процессу или освободившиеся после завершения процесса. В этой секции отображается как еще не задействованная, так и уже освобожденная память, но на самом деле, еще не задействованная память относится к другой категории — «Нулевые страницы» (Zero Page), которая так называется, потому что эти страницы инициализированы нулевым значением и готовы для использования.
О проблеме свободной памяти
Теперь, когда вы в общих чертах представляете, как работает диспетчер памяти, ненадолго остановимся на распространенном заблуждении, связанном с системой управления памятью в Windows 7. Как видно из рис. C, секция свободной памяти — одна из самых маленьких в гистограмме. Тем не менее, ошибочно на этом основании полагать, будто Windows 7 потребляет чересчур много памяти и что система не может нормально работать, если свободной памяти так мало.
На самом деле, все совсем наоборот. В контексте принятого в Windows 7 подхода к управлению памятью, свободная память бесполезна. Чем больше памяти задействовано, тем лучше. Заполняя память до максимума и постоянно перемещая страницы из одной категории в другую с использованием системы приоритетов, Windows 7 повышает эффективность работы и предотвращает попадание данных в файл подкачки, не давая ошибкам отсутствия страницы в памяти замедлить быстродействие.
Мониторинг памяти
Хотите понаблюдать систему управления памятью Windows 7 в действии? Перезагрузите компьютер и сразу же после запуска откройте Монитор ресурсов Windows 7. Перейдите на вкладку «Память» и обратите внимание на соотношение секций в гистограмме физической памяти.
Затем начните запускать приложения. По мере запуска следите за изменением гистограммы. Запустив как можно больше приложений, начните закрывать их по одному и наблюдайте, как изменяется соотношение секций в гистограмме физической памяти.
Проделав этот экстремальный эксперимент, вы поймете, как Windows 7 управляет памятью на вашем конкретном компьютере, и сможете использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти в нормальных условиях повседневной работы.
А что думаете вы?
Нравится ли вам идея использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти? Поделитесь своим мнением в комментариях!
Автор: Greg Shultz
Перевод
SVET
Оцените статью: Голосов
Недавно зашел в монитор ресурсов и заметил такую картину, при загрузке любого приложения в память, появляются эти ошибки отсутствия страниц, причем чем больше приложение памяти потребляет, тем больше ошибок.
В теории данные ошибки должны возникать при использовании файла подкачки, НО у меня он был отключен совсем.
И так как я перфекционист, решил попробовать выяснить в чем дело:
1. Прогнал мемтестом в досе, ошибок нет.
2. Сбросил разгон памяти.
3. Установил размер файла подкачки 1гб.
Но ничего не помогло, ошибки так и возникают при загрузке приложения в память, никакими притормаживаниями это не проявляется, системных ошибок нет, но все же интересно почему так?
Datalife Engine Demo
Вопрос первый: в каких случаях есть необходимость проверить оперативную память компьютера на ошибки?
Один из главных признаков необходимости проверки оперативной памяти на ошибки когда компьютер зачастил вылетать в BSOD (так называемый “синий экран смерти”). Если при этом на “синем экране смерти” вы прочтете код ошибки 0×00000050, это первый признак того что необходимо провести проверку оперативной памяти. Или же если выскакивает синий экран на котором ничего особенно не успеваешь прочитать, так как почти после него в течении 3-4 секунд идёт перезагрузка компьютера.
Но наличие ошибки 0×00000050 на синем экране не единственный признак дефектной оперативной памяти, при неисправной оперативной памяти компьютер так же может регулярно зависать, или могут неожиданно завершать свою работу приложения с критическими ошибками. В любом случае, если вы обратили внимание на систематически не правильную работу своего компьютера, не помешает провести диагностику оперативной памяти.
Вопрос второй: с помощью каких средств можно выполнить проверку оперативной памяти?
Проверка оперативной памяти средствами Windows 7
Если на компьютере предустановлена Windows 7, то для диагностики оперативной памяти можно обойтись штатной утилитой для тестирования.
Чтобы найти предложенную утилиту можно воспользоваться одним из двух способов. Во первых можно нажав “Пуск” – В поле поиск написать resmon.exe, и нажать Enter. После того как будет запущен мониторинг ресурсов, переходим на вкладку память. Тут стоит обратить внимание на третий мониторчик (с правой стороны) под названием «Ошибок отсутствия страницы в памяти/сек.», если на этом мониторчике наблюдается много ошибок, значит физической памяти нахватает физически, либо память работает не корректно. В любом случае необходимо проверить оперативную память.
Для запуска теста памяти с помощью средств Windows 7, выполните следующую последовательность: Кликнуть кнопку Пуск – Панель Управления – Система и Безопасность – Администрирование и выбрать “Средство проверки памяти Windows”. (см рисунок)
Нажимаем “Выполнить перезагрузку и проверку (рекомендуется)”, при этом компьютер отправиться в перезагрузку, и запустит проверку памяти. Если с памятью по мнению утилиты всё благополучно на экране будет надпись как показано на первой или второй картинке, если же найдены какие то проблем то как на пятой.
И в этом случае по завершении тестирования и возврате в Windows выскочит окно:
Если у вашей операционной системы Windows 7 “синий экран смерти” выскакивает при загрузке, то вы можете запустить утилиту тестирования памяти до загрузки Windows 7. Для этого сразу же после нажатия кнопки питания компьютера, нажать на клавиатуре клавишу TAB для того, чтобы попасть в Диспетчер загрузки Windows. В открывшемся меню выбираем “Диагностика памяти” и нажимаем Enter.
По окончании тестирования операционная система будет перезагружена.
Рекомендую проводить проверку каждой линейки памяти по отдельности и чередуя разъемы, так как есть вероятность, что проблемы вызваны не модулем памяти, а разъемом на материнской плате.
Универсальная диагностика оперативной памяти.
Есть еще одна утилита для проверки оперативной памяти. Эта утилита так же как и способ е1ё применения относится к универсальному способу проверки оперативной памяти, утилита называется Memtest86, требует установки ISO образа на CD диск или USB Flash. А универсальной её называют так как она подходит для компьютеров под любой операционной системой
Для того чтобы установить Memtest86 на CD, скачиваем Memtest86 iso. Записываем образ на CD диск или диск USB Flash. После того как образ Memtest86 будет записан на CD или USB Flash-диск, запустите загрузку вашего компьютера с записанного носителя.
Проверка памяти начинается автоматически, сразу после загрузки Memtest86, и будет работать циклично то есть, тест не будет останавливаться. Шкала (в процентах) выполнения выполнения теста, находиться в правом верхнем углу программы. При необходимости тест можно остановить клавишей Esc. Для точности теста желательно что бы проверка проводилась на протяжении 15-40 минут. Если утилита найдёт ошибки памяти она их подсветит красным цветом. См последний рисунок.
Если при проведении проверки выявлены ошибки и при этом производилось тестирование линейки памяти в нескольких разъемах для памяти, эту линейку необходимо заменить.
Ну и третий способ проверки оперативной памяти, а так же метод проверки результатов предыдущих тестов это замена подозреваемой планки оперативной памяти на заведомо исправную!
Твой Сетевичок
Все о локальных сетях и сетевом оборудовании
Проверка оперативной памяти на ошибки в windows 7
Проблемы с «железом» возникают всегда неожиданно и способны существенно подпортить нервы и настроение. Однако «врага нужно знать в лицо», и способность самостоятельно устранять любые проблемы с компьютером поможет вам сэкономить время и деньги.
И в рамках данной статьи мы рассмотрим, как проверить оперативную память на ошибки в windows 7.
Признаки неисправности оперативной памяти
1. При работе на компьютере появляются ошибки BDOS (Blue Screen of Death), что в переводе означает «синий экран смерти». Самыми частыми ошибками при неисправности являются:
- 0x00000085 – сбой оперативной памяти при установке программного обеспечения;
- 0x0000007F (0x00000008;…) – аппаратный сбой оперативной памяти в процессе обмена информации между ЦП и ОЗУ;
- 0x0000004E – файл подкачки не отвечает, либо обмен данными между HDD и ОЗУ невозможен.
2. Подвисание в играх или в фильмах на 10-15 секунд. Этого невозможно не заметить.
3. Временами компьютер при запуске показывает черный экран и выдает характерные звуковые сигналы (не от колонок, а из системного блока).
Проверка оперативной памяти на наличие неисправностей
После долгих лет мучений пользователей ОС Windows XP компания Microsoft наконец-то одумались и встроила в ОС Windows 7 утилиту для тестирования оперативной памяти с недвусмысленным названием «средство проверки памяти Windows».
В этой статье я постараюсь научить Вас пользоваться данным приложением.
Для начала нужно зайти в меню Пуск и в поисковой строке (где написано «Найти программы и файлы») набрать «Средство проверки памяти Windows».
Так же можно ввести слово «mdsched» (без кавычек), именно так называется данная служба в подкаталоге Windows:
После обнаружения данной программы запускаем ее от имени администратора:
Сохраняем все данные и закрываем все открытые приложения кроме данной программы.
В программе Mdsched нам предоставляется 2 выбора действия.
- Первый – это выполнить проверку оперативной памяти немедленно.
- Второй – это внесение проверки оперативной памяти в расписание. Это означает, что проверка начнется только при следующей загрузке Windows.
Я хочу все здесь и сейчас, поэтому мой выбор пал на первую стоку. После чего компьютер перезагрузится, и начнет проверку:
Примечание: В случае если программа не выявила ошибок памяти, но Вы все еще имеете сомнения в ее работоспособности можно выбрать другие режимы проверки нажатием кнопки F1 при запуске программы.
При обычной проверке стоит режим стандарт, но можно воспользоваться базовым режимом, либо расширенным.
В первом случае будет очень быстрая проверка, но наименее точная, ибо проверяет лишь основные функции. А второй режим наоборот проверяет все подразделы оперативной памяти, но проверка может длиться более часа.
Результаты проверки оперативной памяти можно будет посмотреть в журнале просмотра событий Windows.
Для этого заходим в меню Пуск, набираем в поисковой строке «Просмотр событий» и открываем журнал Система в подкаталоге журналы Windows.
Тут сортируем события по дате и выбираем источник «Microsoft-Windows-MemoryDiagnostics-Results», как показано на рисунке.
Как исправить ошибки оперативной памяти?
1. Если у Вас стоит несколько планок оперативной памяти, попробуйте проверить их по очереди. То есть извлеките все и вставляйте по одной, постепенно проверяя каждую из них пока не выявите битую.
2. Вытащите оперативную память и проверьте, не перегревается ли какая из них по сравнению с остальными. Одной из причин выхода из строя оперативной памяти – это сильный нагрев микросхем.
3. Извлеките оперативную память и протрите контакты ластиком (стирательной резинкой). Из-за окисления контактов происходят сбои в работе оперативной памяти.
4. Возьмите одну сто процентов рабочую планку у знакомых и проверьте на своем компьютере. Если и эта оперативка будет выдавать ошибки, то скорей всего у Вас неисправны входы под оперативную память в материнской плате, но это бывает крайне редко.
Предотвращение проблем нехватки памяти. Изменение размера файла подкачки
Содержание
В случае нехватки памяти для всех операций, которые компьютер пытается выполнить, ОС Windows и программы могут перестать отвечать (или прекратить работу). Чтобы предотвратить потери данных, Windows сообщит о недостатке оперативной памяти. Можно также научиться самостоятельно распознавать ситуации нехватки памяти и предпринимать меры для предотвращения проблемы.
Признаки нехватки памяти
К числу признаков нехватки памяти относятся сильное снижение быстродействия, появление уведомлений о нехватке или отсутствии памяти, а также проблемы с отображением. Например, если компьютеру не хватает памяти, то при попытке открыть меню в программе она может запаздывать с откликом или вовсе перестать отвечать. И даже если меню откроется, его пункты могут не отображаться, а выбранный элемент не отвечать. Кроме того, после выбора пункта само меню может исчезнуть, а вместо содержимого рабочего файла или документа появится пустая область.
Причины нехватки памяти
В компьютере имеется два типа памяти: ОЗУ и виртуальная память. Все программы используют ОЗУ, но когда запускаемой программе не хватает оперативной памяти, ОС Windows временно помещает данные, которые обычно хранятся в ОЗУ, в файл на жестком диске, который называется файлом подкачки. Объем данных, которые временно хранятся в файле подкачки, также называют виртуальной памятью. Использование виртуальной памяти (другими словами, перемещение данных в файл подкачки и из него) освобождает объем оперативной памяти, достаточный для надлежащей работы программ.
Проблемы нехватки памяти возникают в случае недостаточного объема оперативной памяти и нехватки виртуальной памяти. Подобная ситуация может наблюдаться, если на компьютере запущено больше программ, чем поддерживается установленным ОЗУ. Кроме того, проблемы могут также возникать, если программа не освобождает память, которая ей больше не нужна. Такая ситуация называется чрезмерным использованием памяти или утечкой памяти.
Способы предотвращения проблем нехватки памяти
Одновременный запуск меньшего количества приложений может предотвратить проблемы нехватки памяти и потери данных. Рекомендуется обращать внимание на то, в каких именно приложениях возникают ситуации нехватки памяти и не запускать их одновременно.
Однако ограничение количества одновременно запущенных приложений иногда неприемлемо с практической точки зрения. Признаки нехватки памяти могут указывать на то, что компьютеру требуется больше оперативной памяти для обеспечения работы используемых программ. Далее приведены рекомендуемые способы решения проблем нехватки памяти или их предотвращения.
- Увеличьте объем файла подкачки (виртуальной памяти) Когда в компьютере впервые возникает проблема нехватки памяти Windows пытается автоматически увеличить файл подкачки. Пользователь также может вручную установить максимальный размер этого файла в зависимости от объема установленного ОЗУ. Увеличение размера файла подкачки позволяет предотвратить проблемы нехватки памяти, но также может привести и к замедленной работе приложений. Поскольку из ОЗУ информация считывается намного быстрее, чем с жесткого диска (на котором расположен файл подкачки), слишком большой объем виртуальной памяти может привести к снижению быстродействия программ. Для изменения размера файла подкачки жмем Win + Pause/Break или Пуск — Панель управления — Система и выбираем Дополнительные параметры системы.
В свойствах системы выбираем Дополнительно — Быстродействие — Параметры.
В Параметрах быстродействия выбираем Дополнительно — Виртуальная память — Изменить
В свойствах Виртуальной памяти по умолчанию включен режим «Автоматически выбирать объем файл подкачки«. Снимаем галку и задаем размер файла подкачки.
Если стоит два жестких диска в системе., то файл подкачки можно вообще перенести на второй физический диск, что так же повлияет на производительность компьютера. Для установки размера файла подкачки, рекомендуется определять объем равный 1,5 от объема оперативной памяти, установленной в компьютере (для повседневных задач) Для игр рекомендуется установить 2 — 2,5.
Чтобы определить, какая из программ использует больше всего памяти, выполните следующие действия
- Откройте диспетчер задач. Для этого щелкните правой кнопкой мыши панель задач и выберите пункт Диспетчер задач.
- Откройте вкладку Процессы
- Чтобы отсортировать программы по используемой памяти, щелкните Память (Частный рабочий набор)
Для просмотра ошибок программ и сведений по их устранению также можно воспользоваться средством просмотра событий
- Откройте раздел «Просмотр событий». Для этого нажмите кнопку Пуск — Панель управления — Администрирование, затем дважды щелкните Просмотр событий. При появлении запроса пароля администратора или подтверждения введите пароль или предоставьте подтверждение.
- В левой панели выберите Журналы приложений и служб для просмотра ошибок. Чтобы просмотреть описание проблемы, щелкните ее дважды. Если есть ссылка на электронную справку, значит можно просмотреть сведения по устранению проблемы.
Проверка памяти средствами Windows
Если ОС Windows обнаруживает возможные проблемы, связанные с памятью компьютера, то отображается приглашение на запуск средства диагностики памяти. Предусмотрены два варианта запуска средства диагностики памяти
Важно: Сохраните файлы и закройте все приложения перед выбором первого варианта. Средство диагностики памяти будет запущено автоматически после перезагрузки Windows. Этому средству может понадобиться несколько минут для завершения проверки памяти компьютера. После завершения теста происходит автоматическая перезагрузка Windows. Если средство диагностики обнаруживает ошибки, то необходимо обратиться к производителю компьютера для получения сведений об устранении этих ошибок, поскольку ошибки памяти обычно указывают на проблемы с микросхемами памяти в компьютере или на другие проблемы с оборудованием.
Запустить Средство проверки памяти Windows можно и вручную. Есть два способа это сделать:
- Пуск — Панель управления — Администрирование — Средство проверки памяти Windows
- Пуск — Выполнить и ввести mdsched жмем ОК.
Когда выбрали «Выполнить перезагрузку и проверку», после перезагрузки, при запуске Средства диагностики памяти нажмите клавишу F1. Для опытных пользователей предоставляются дополнительные параметры диагностики:
- Набор тестов
- простой
- стандартный
- расширенный
- Кэш
- По умолчанию
- Вкл или Выкл
- Количество проходов
Для запуска теста нажмите клавишу F10. Необходимо учитывать, чем сложней тест, тем дольше идет проверка. После проверки и загрузки системы в трее появится значок «Средство проверки памяти Windows».
Просмотреть «Журнал проблем и стабильности работы компьютера»:
Открываем Центр поддержки Обслуживание — Показать журнал стабильности работы.
Щелкнуть любое событие на графике, чтобы просмотреть дополнительные сведения о нем
Щелкнуть Просмотр всех отчетов о проблемах, чтобы просмотреть только проблемы, произошедшие на компьютере. Это представление не содержит других событий на компьютере, показываемых в мониторе стабильности системы, таких как события установки программного обеспечения. Выберите Средство проверки памяти Windows для просмотра отчета проверки.
Некоторые проблемы и решения просматривать и устранять может только администратор. Для просмотра данных проблем войдите в систему с учетной записью администратора
Покритикуйте рекомендации внешней конторы по улучшению быстродействия
Стоит ут 11, сервер hp gen8, windows server. Высланы следующие рекомендации. Покритикуйте их, ну или скажите, что все правильно пишут.
Рекомендации по настройке сервера 1с
Наблюдение за работой кластера серверов 1с показало не оптимальное использование оперативной памяти. Значение показателя ошибок отсутствия страницы в памяти/сек. достигает свыше 200 для процесса менеджера кластера. Это означает что главный процесс менеджера кластера постоянно обращается к файлу подкачки на диске. При этом свободной оперативной памяти от 19 до 25 Гб.
Также наблюдается большое количество рабочих процессов сервера 1с обслуживающих клиентские подключения. Это в свою очередь нагружает работу менеджера кластера, который не справляется с потоками обращений.
Для оптимизации работы кластера и использования оперативной памяти предлагаю следующие рекомендации:
1. Установить фиксированный размер файла подкачки в половину объема физической памяти. Это позволит сократить использование файла подкачки при распределении оперативной памяти и больше рабочих наборов хранить в физической памяти. Данное изменение не критично для работы операционной системы.
2. Сократить количество рабочих процессов сервера 1с до 6-и. Это позволит оптимизировать нагрузку на менеджер кластера. В настройка сервера кластера параметры использования памяти сбросить по умолчанию до 0 (максимальный объем памяти рабочих процессов; безопасный расход памяти за один вызов; объем памяти рабочих процессов, до которого сервер считается производительным). Это уменьшит вероятность создание новых рабочих процессов сервера. Данные изменения не критичны и могут быть исправлены в оперативном режиме.
3. В настройках электропитания операционной системы установить план высокой производительности. Это позволить оптимизировать использование оперативной памяти для операционной системы в целом (в режиме экономии система выносит по максимуму рабочие наборы в файл подкачки сокращая использование электроэнергии для обновления данных в оперативной памяти).
После применения рекомендаций необходимо перезагрузить сервер для того чтобы устранить влияние других факторов на ожидаемый эффект от применения измененных настроек.
Are you facing page fault in nonpaged area error or the stop code 0X00000050? If so, you can read this post to get 6 solutions to fix this problem. In addition, you can use MiniTool Partition Wizard to recover data when your computer can’t boot and you have to reinstall Windows.
Page Fault in Nonpaged Area
Page fault in nonpaged area error is a problem of BSOD. It usually occurs when you boot up or restart your computer. Of course, some users also report that they have encountered this problem when they run applications.
The error information is always shown like the following: «Your PC ran into a problem and needs to restart…If you’d like to know more… PAGE_FAULT_IN_NONPAGED_AREA». Sometimes, you will get an error code 0X00000050.
When page fault in nonpaged area Windows 10 occurs, it’s possible that you can boot up your computer later as long as the completion percentage reaches 100%. However, there is also the possibility of a restart loop staying in the welcome screen.
In general, the nonpaged area is related to physical RAM, which will also limit virtual memory and the maximum quantity of processes. At the same time, Windows’ support for physical memory is affected by factors such as hardware limitations, licensing, operating system data structures, driver compatibility, and so on.
Therefore, if you want to solve the Windows 10 page fault in nonpaged area error, you should start with these aspects. Well then, you can try the following solutions one by one to see whether they work for your computer.
Solution 1. Close Fast Startup
Fast Startup is a feature aiming to reduce the windows startup time, but most of the time this feature may cause various black or blue screen issues. A number of users on Microsoft or Reddit forum mentioned that disabling the Fast Startup feature can help to fix the startup problems including page_fault_in_nonpaged_area error.
This solution is available only when you can boot up your computer normally or you can boot into Safe Mode.
Here is the tutorial for booting into Safe Mode:
Step 1: Boot into WinRE through two consecutive failed attempts to start Windows or an install media.
Step 2: Boot into Safe Mode.
- Navigate to Troubleshoot > Advanced options after you enter WinRE.
- Click Startup Settings and wait for a while.
- Press the F5 key to choose Enable Safe Mode with Networking option, thus booting into Safe Mode.
Then, you can disable the Fast Startup feature through the following steps.
Step 1: Click the Start button at the lower left corner and click on the Settings icon.
Step 2: Choose System and Navigate to Power & sleep. Then, click Additional power settings.
Step 3: Click Choose what the power button does at the upper left corner.
Step 4: Click Change settings that are currently unavailable. Then, uncheck Turn on fast startup and click the Save changes button.
Solution 2. Increase the Virtual Memory
Virtual memory is a computer system memory management technology, which can make a part of disk space serve as memory to relieve memory stress. Even if the physical memory is large enough, virtual memory is still important because it can improve physical memory stability.
This solution is also applied only when your computer can boot up normally or it can boot into Safe Mode.
Here is the tutorial on how to set virtual memory in Windows 10:
Step 1: Open the setting interface of the virtual memory.
- Open File Explorer and right click This PC and then select Properties.
- Select Advanced system settings in the pop-up window.
- Click Settings in the Performance box under Advanced page of System Properties
- Navigate to Advanced page in the pop-up Performance Options window and then click Change in the Virtual memory box.
Step 2: Disable automatic paging file size management.
- Uncheck Automatically manage paging file size for all drives.
- Select partition C, and check No paging file and then click Set to save it.
- Click Yes in the pop-up warning window.
Step 3: Set a suitable virtual memory on a non-system partition.
- Select a non-system partition and then check Custom size.
- Set a same value in Initial size and Maximum size to avoid the system frequently requesting page files of different sizes, which can reduce the consumption of system resources and improve operating efficiency.
- Then click Set and OK to save.
Tip: The value should be 1.5 times or twice that of the physical memory. The physical memory size can be found in Properties of This PC.
Solution 3: Check the Disk and the RAM
Hard drives and RAM are hardware related to memory. If they are unhealthy, stop code page fault in nonpaged area is likely to occur. Therefore, you should check them to fix problems. If necessary, you should replace them.
Here is the tutorial on how to check the disk:
If your computer can boot up or boot into Safe Mode:
Step 1: Open File Explorer and click This PC.
Step 2: Right-click a disk and choose Properties.
Step 3: Skip to the Tools tab and click the Check button under the Error checking box.
Step 4: click Scan drive to run this program. Then, the file system and logic bad sectors are scanned and fixed.
If your computer can’t boot up and can’t boot into Safe Mode:
Step 1: Enter WinRE and open the Command Prompt window.
Step 2: Enter the following command: chkdsk e:/f/r. Please note that the letter «e» stands for a drive letter. You should replace it accordingly.
Here is the tutorial on how to check the RAM:
The RAM checking is applied when your computer can boot into Windows 10 normally or it can boot into Safe Mode.
Step 1: Run memory diagnosis.
- Press «Windows + R» keys and type «exe» into the Run box.
- Select «Restart now and check for problems» after the Windows Memory Diagnostic program pops up.
- Wait until the computer finishes memory diagnosis. This process will usually take a few minutes.
Step 2: Find the result of memory diagnosis in the Event Viewer.
- Type «eventvwr» in the Run window after the computer reboots automatically.
- Navigate to Windows Logs > System.
- Click «Filter Current Log» in the right box to open its window.
- Select «MemoryDiagnostics-Results» in the drop-down menu of Event sources to display all result logs of the memory test.
- Click OK.
- Double-click the latest result log to see the detailed information.
Solution 4: Update Driver
Drivers are programs calling nonpaged memory. If drivers have compatibility problems, Windows 10 page fault in nonpaged area error is likely to occur. Well then, you can update them to solve this problem.
Tip: There are so many drivers, so you may need the help of a dump file to identify which driver is causing the problem. At the same time, in order to open the dump file, you need to download WinDbg.
After finding the culprit, you can refer to the following steps to update it. This solution is also applied when your computer can boot normally or boot into Safe Mode.
Step 1: Press «Windows + X» keys and select Device Manager in the pop-up menu.
Step 2: Expand the right directory to find the culprit driver. Then, right-click the driver and select Update driver.
Step 3: Select Search automatically for updated driver software in the pop-up window.
Tip: If Windows can’t find a new driver, you can find a driver on the device manufacturer’s website and follow its instruction to install it manually.
Solution 5. Repair System Files
It is also possible that the stop code page fault in nonpaged area is caused by corrupted system files. If so, you can try built-in utility tools like SFC (System File Checker) and DISM (Deployment Image Servicing and Management) to fix corrupted system files.
This solution is available no matter whether your computer can boot up or boot into the Safe Mode. If it can, you should open the Command Prompt and run it as an administrator through the following steps: enter «command prompt» in the Windows search box and right-click its icon to choose Run as administrator.
If it can’t, you should boot into WinRE and open Command Prompt. Then, you can type the following command to run SFC: sfc /scannow.
Tip: Wait until the procedure ends. Then, the damaged, lost, or changed system files will be replaced.
Exit the Command Prompt to see whether the page fault in nonpaged area Windows 10 is solved. If not, you can open Command Prompt and enter the following commands to run the DISM tool, which can restore system files.
- exe /Online /Cleanup-image /Scanhealth
- exe /Online /Cleanup-image /Restorehealth
Solution 6. Reinstall Windows
Some users have reported in Microsoft forums that they got the page fault in nonpaged area blue screen without warning and then the computer was stuck in the reboot loop and stayed at the welcome interface.
They tried rolling back or resetting the operating system, and updating the driver, but nothing worked. Finally, they got their computers repaired only by reinstalling Windows. Hence, this could be the last solution for you.
However, before you reinstall your computer, you should ensure your data’s security. If your computer can boot up, you should back up the data in advance. If your computer can’t boot up normally, you should recover your data first.
As for the data recovery software, you can choose MiniTool Partition Wizard.
Buy Now
Here is the tutorial for recovering data when the computer can’t boot:
Step 1: Make a bootable disk of MiniTool Partition Wizard.
- Connect a USB flash drive to a normal running computer.
- Buy MiniTool Partition Wizard and launch it on the normal running computer to get its main interface.
- Click Bootable Media on the toolbar.
- Click WinPE-based media with MiniTool plug-in.
- Choose the USB Flash Drive. Thus, the iso file will be burnt into it directly to complete a bootable disk.
Step 2: Set in the Firmware to make the computer boot from the bootable disk.
- Enter the Firmware by following the wizard that appears on the screen soon after you boot the computer.
- Choose Remove Devices as the first boot device. Then, boot your computer.
Step 3: Recover data.
- Wait a few seconds without any operations until MiniTool Partition Wizard opens automatically.
- Click Data Recovery on the tool bar.
- Choose a logical drive and then click Scan.
- Find the files that need to be recovered and then click the Save button.
Tip: Features like Show Lost File, Find, and Filter can help you find files faster. Please preview files before they are saved.
Then, you can refer to the following post to reinstall Windows.
Here are 6 solutions to fix frequently occurred PAGE_FAULT_IN_NONPAGED_AREA error in Windows. You can try them one by one. I think they will relieve your problem.Click to Tweet
Bottom Line
Do you have any other solutions to fix this problem? What do you think about the above solutions? Please leave a comment below. In addition, if you have problems with data backup or data recovery, please also leave a comment or email us at [email protected]. We will reply to you as soon as possible.
Page Fault in Nonpaged Area FAQ
How do you fix a page fault in a nonpaged area?
- Close fast startup.
- Increase the virtual memory.
- Check the disk and the RAM.
- Update driver.
- Repair system files.
- Reinstall Windows.
What causes page fault in nonpaged area?
Page fault in nonpaged area error is related to physical RAM and usually occurs when you boot up or restart your computer. Of course, some users also report that they have encountered this problem when they run applications.
Are you facing page fault in nonpaged area error or the stop code 0X00000050? If so, you can read this post to get 6 solutions to fix this problem. In addition, you can use MiniTool Partition Wizard to recover data when your computer can’t boot and you have to reinstall Windows.
Page Fault in Nonpaged Area
Page fault in nonpaged area error is a problem of BSOD. It usually occurs when you boot up or restart your computer. Of course, some users also report that they have encountered this problem when they run applications.
The error information is always shown like the following: «Your PC ran into a problem and needs to restart…If you’d like to know more… PAGE_FAULT_IN_NONPAGED_AREA». Sometimes, you will get an error code 0X00000050.
When page fault in nonpaged area Windows 10 occurs, it’s possible that you can boot up your computer later as long as the completion percentage reaches 100%. However, there is also the possibility of a restart loop staying in the welcome screen.
In general, the nonpaged area is related to physical RAM, which will also limit virtual memory and the maximum quantity of processes. At the same time, Windows’ support for physical memory is affected by factors such as hardware limitations, licensing, operating system data structures, driver compatibility, and so on.
Therefore, if you want to solve the Windows 10 page fault in nonpaged area error, you should start with these aspects. Well then, you can try the following solutions one by one to see whether they work for your computer.
Solution 1. Close Fast Startup
Fast Startup is a feature aiming to reduce the windows startup time, but most of the time this feature may cause various black or blue screen issues. A number of users on Microsoft or Reddit forum mentioned that disabling the Fast Startup feature can help to fix the startup problems including page_fault_in_nonpaged_area error.
This solution is available only when you can boot up your computer normally or you can boot into Safe Mode.
Here is the tutorial for booting into Safe Mode:
Step 1: Boot into WinRE through two consecutive failed attempts to start Windows or an install media.
Step 2: Boot into Safe Mode.
- Navigate to Troubleshoot > Advanced options after you enter WinRE.
- Click Startup Settings and wait for a while.
- Press the F5 key to choose Enable Safe Mode with Networking option, thus booting into Safe Mode.
Then, you can disable the Fast Startup feature through the following steps.
Step 1: Click the Start button at the lower left corner and click on the Settings icon.
Step 2: Choose System and Navigate to Power & sleep. Then, click Additional power settings.
Step 3: Click Choose what the power button does at the upper left corner.
Step 4: Click Change settings that are currently unavailable. Then, uncheck Turn on fast startup and click the Save changes button.
Solution 2. Increase the Virtual Memory
Virtual memory is a computer system memory management technology, which can make a part of disk space serve as memory to relieve memory stress. Even if the physical memory is large enough, virtual memory is still important because it can improve physical memory stability.
This solution is also applied only when your computer can boot up normally or it can boot into Safe Mode.
Here is the tutorial on how to set virtual memory in Windows 10:
Step 1: Open the setting interface of the virtual memory.
- Open File Explorer and right click This PC and then select Properties.
- Select Advanced system settings in the pop-up window.
- Click Settings in the Performance box under Advanced page of System Properties
- Navigate to Advanced page in the pop-up Performance Options window and then click Change in the Virtual memory box.
Step 2: Disable automatic paging file size management.
- Uncheck Automatically manage paging file size for all drives.
- Select partition C, and check No paging file and then click Set to save it.
- Click Yes in the pop-up warning window.
Step 3: Set a suitable virtual memory on a non-system partition.
- Select a non-system partition and then check Custom size.
- Set a same value in Initial size and Maximum size to avoid the system frequently requesting page files of different sizes, which can reduce the consumption of system resources and improve operating efficiency.
- Then click Set and OK to save.
Tip: The value should be 1.5 times or twice that of the physical memory. The physical memory size can be found in Properties of This PC.
Solution 3: Check the Disk and the RAM
Hard drives and RAM are hardware related to memory. If they are unhealthy, stop code page fault in nonpaged area is likely to occur. Therefore, you should check them to fix problems. If necessary, you should replace them.
Here is the tutorial on how to check the disk:
If your computer can boot up or boot into Safe Mode:
Step 1: Open File Explorer and click This PC.
Step 2: Right-click a disk and choose Properties.
Step 3: Skip to the Tools tab and click the Check button under the Error checking box.
Step 4: click Scan drive to run this program. Then, the file system and logic bad sectors are scanned and fixed.
If your computer can’t boot up and can’t boot into Safe Mode:
Step 1: Enter WinRE and open the Command Prompt window.
Step 2: Enter the following command: chkdsk e:/f/r. Please note that the letter «e» stands for a drive letter. You should replace it accordingly.
Here is the tutorial on how to check the RAM:
The RAM checking is applied when your computer can boot into Windows 10 normally or it can boot into Safe Mode.
Step 1: Run memory diagnosis.
- Press «Windows + R» keys and type «exe» into the Run box.
- Select «Restart now and check for problems» after the Windows Memory Diagnostic program pops up.
- Wait until the computer finishes memory diagnosis. This process will usually take a few minutes.
Step 2: Find the result of memory diagnosis in the Event Viewer.
- Type «eventvwr» in the Run window after the computer reboots automatically.
- Navigate to Windows Logs > System.
- Click «Filter Current Log» in the right box to open its window.
- Select «MemoryDiagnostics-Results» in the drop-down menu of Event sources to display all result logs of the memory test.
- Click OK.
- Double-click the latest result log to see the detailed information.
Solution 4: Update Driver
Drivers are programs calling nonpaged memory. If drivers have compatibility problems, Windows 10 page fault in nonpaged area error is likely to occur. Well then, you can update them to solve this problem.
Tip: There are so many drivers, so you may need the help of a dump file to identify which driver is causing the problem. At the same time, in order to open the dump file, you need to download WinDbg.
After finding the culprit, you can refer to the following steps to update it. This solution is also applied when your computer can boot normally or boot into Safe Mode.
Step 1: Press «Windows + X» keys and select Device Manager in the pop-up menu.
Step 2: Expand the right directory to find the culprit driver. Then, right-click the driver and select Update driver.
Step 3: Select Search automatically for updated driver software in the pop-up window.
Tip: If Windows can’t find a new driver, you can find a driver on the device manufacturer’s website and follow its instruction to install it manually.
Solution 5. Repair System Files
It is also possible that the stop code page fault in nonpaged area is caused by corrupted system files. If so, you can try built-in utility tools like SFC (System File Checker) and DISM (Deployment Image Servicing and Management) to fix corrupted system files.
This solution is available no matter whether your computer can boot up or boot into the Safe Mode. If it can, you should open the Command Prompt and run it as an administrator through the following steps: enter «command prompt» in the Windows search box and right-click its icon to choose Run as administrator.
If it can’t, you should boot into WinRE and open Command Prompt. Then, you can type the following command to run SFC: sfc /scannow.
Tip: Wait until the procedure ends. Then, the damaged, lost, or changed system files will be replaced.
Exit the Command Prompt to see whether the page fault in nonpaged area Windows 10 is solved. If not, you can open Command Prompt and enter the following commands to run the DISM tool, which can restore system files.
- exe /Online /Cleanup-image /Scanhealth
- exe /Online /Cleanup-image /Restorehealth
Solution 6. Reinstall Windows
Some users have reported in Microsoft forums that they got the page fault in nonpaged area blue screen without warning and then the computer was stuck in the reboot loop and stayed at the welcome interface.
They tried rolling back or resetting the operating system, and updating the driver, but nothing worked. Finally, they got their computers repaired only by reinstalling Windows. Hence, this could be the last solution for you.
However, before you reinstall your computer, you should ensure your data’s security. If your computer can boot up, you should back up the data in advance. If your computer can’t boot up normally, you should recover your data first.
As for the data recovery software, you can choose MiniTool Partition Wizard.
Buy Now
Here is the tutorial for recovering data when the computer can’t boot:
Step 1: Make a bootable disk of MiniTool Partition Wizard.
- Connect a USB flash drive to a normal running computer.
- Buy MiniTool Partition Wizard and launch it on the normal running computer to get its main interface.
- Click Bootable Media on the toolbar.
- Click WinPE-based media with MiniTool plug-in.
- Choose the USB Flash Drive. Thus, the iso file will be burnt into it directly to complete a bootable disk.
Step 2: Set in the Firmware to make the computer boot from the bootable disk.
- Enter the Firmware by following the wizard that appears on the screen soon after you boot the computer.
- Choose Remove Devices as the first boot device. Then, boot your computer.
Step 3: Recover data.
- Wait a few seconds without any operations until MiniTool Partition Wizard opens automatically.
- Click Data Recovery on the tool bar.
- Choose a logical drive and then click Scan.
- Find the files that need to be recovered and then click the Save button.
Tip: Features like Show Lost File, Find, and Filter can help you find files faster. Please preview files before they are saved.
Then, you can refer to the following post to reinstall Windows.
Here are 6 solutions to fix frequently occurred PAGE_FAULT_IN_NONPAGED_AREA error in Windows. You can try them one by one. I think they will relieve your problem.Click to Tweet
Bottom Line
Do you have any other solutions to fix this problem? What do you think about the above solutions? Please leave a comment below. In addition, if you have problems with data backup or data recovery, please also leave a comment or email us at [email protected]. We will reply to you as soon as possible.
Page Fault in Nonpaged Area FAQ
How do you fix a page fault in a nonpaged area?
- Close fast startup.
- Increase the virtual memory.
- Check the disk and the RAM.
- Update driver.
- Repair system files.
- Reinstall Windows.
What causes page fault in nonpaged area?
Page fault in nonpaged area error is related to physical RAM and usually occurs when you boot up or restart your computer. Of course, some users also report that they have encountered this problem when they run applications.
В своей прошлой статье «Как использовать Монитор ресурсов Windows 7 для эффективной диагностики» я рассказал о возможностях Монитора ресурсов Windows 7 (Resource Monitor), объяснил, как с его помощью наблюдать за распределением системных ресурсов между процессами и службами, а также упомянул, что его можно использовать для решения конкретных задач — например, для анализа расходования памяти. Именно об этом и пойдет речь в данной статье.Немного о памяти
Прежде чем приступать к анализу, коротко расскажу о том, как Microsoft Windows 7 управляет памятью. После этого вам будет проще понять, какая информация представлена в Мониторе ресурсов Windows 7.
Диспетчер памяти Windows 7 создает виртуальную систему памяти, которая состоит из доступной физической RAM и файла подкачки на жестком диске. Это позволяет операционной системе выделять блоки памяти фиксированной длины (страницы) с последовательными адресами в физической и виртуальной памяти.
Запуск Монитора ресурсов Windows 7
Чтобы запустить Монитор ресурсов Windows 7, откройте меню «Пуск» (Start), введите в строке поиска «Resmon.exe» и нажмите [Enter]. В открывшемся окне выберите вкладку «Память» (Memory, рис. A).
Рисунок A. На вкладке «Память» в Мониторе ресурсов Windows 7 приводятся подробные сведения о распределении памяти.
Таблица «Процессы»
На вкладке «Память» есть таблица «Процессы» (Processes, рис. B), в которой перечислены все запущенные процессы, а сведения об используемой памяти разбиты на несколько категорий.
Рисунок B. Сведения об используемой памяти для каждого процесса разбиты на несколько категорий.
Графа «Образ»
В колонке «Образ» (Image) указывается имя исполняемого файла процесса. Процессы, запущенные приложениями, узнать очень легко — например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad). Процессы с именем «svchost.exe» представляют различные службы операционной системы. Название службы указывается в скобках рядом с именем процесса.
Графа «ИД процесса»
В колонке «ИД процесса» (PID) указывается номер процесса — уникальное сочетание цифр, позволяющее идентифицировать запущенный процесс.
Графа «Завершено»
В столбце «Завершено» (Commit) указывается объем виртуальной памяти в килобайтах, зарезервированный системой для данного процесса. Сюда входит и используемая физическая память, и сохраненные в файле подкачки страницы.
Графа «Рабочий набор»
В графе «Рабочий набор» (Working Set) указывается объем физической памяти в килобайтах, используемой процессом в данный момент времени. Рабочий набор складывается из общей и частной памяти.
Графа «Общий»
В колонке «Общий» (Shareable) указан объем физической памяти в килобайтах, которую данный процесс использует совместно с другими. Использование одного сегмента памяти или страницы подкачки для родственных процессов позволяет сэкономить место в памяти. При этом физически сохраняется только одна копия страницы, которая затем сопоставляется с виртуальным адресным пространством других процессов, которые к ней обращаются. Например, все процессы, инициированные системными библиотеками DLL — Ntdll, Kernel32, Gdi32 и User32 — используют общую память.
Графа «Частный»
В столбце «Частный» (Private) указывается объем физической памяти в килобайтах, используемой исключительно данным процессом. Именно это значение позволяет определить, сколько памяти нужно тому или иному приложению для работы.
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
Таблица «Физическая память»
В таблице «Процессы» приводятся детальные сведения о распределении памяти между отдельными процессами, а таблица «Физическая память» (Physical Memory) дает общую картину использования RAM. Ее ключевой компонент — уникальная гистограмма, показанная на рис. C.
Рисунок C. Гистограмма в таблице «Физическая память» позволяет составить общее представление о распределении памяти в Windows 7.
Каждая секция гистограммы обозначена собственным цветом и представляет определенную группу страниц памяти. По мере использования системы, диспетчер памяти в фоновом режиме перемещает данные между этими группами, поддерживая тонкий баланс между физической и виртуальной памятью для обеспечения эффективной работы всех приложений. Давайте рассмотрим гистограмму поподробнее.
Секция «Зарезервированное оборудование»
Слева расположена секция «Зарезервированное оборудование» (Hardware Reserved), обозначенная серым цветом: это память, выделенная на нужды подключенного оборудования, которую оно использует для взаимодействия с операционной системой. Зарезервированная для оборудования память заблокирована и недоступна диспетчеру памяти.
Обычно объем памяти, выделенной оборудованию, составляет от 10 до 70 Мбайт, однако этот показатель зависит от конкретной конфигурации системы и в некоторых случаях может достигать нескольких сотен мегабайт. К компонентам, влияющим на объем зарезервированной памяти, относятся:
• BIOS;
• компоненты материнской платы — например, усовершенствованный программируемый контроллер прерываний ввода/вывода (APIC);
• звуковые карты и другие устройства, осуществляющие ввод/вывод с отображением на память;
• шина PCI Express (PCIe);
• видеокарты;
• различные наборы микросхем;
• флеш-накопители.
Некоторые пользователи жалуются, что в их системах для оборудования зарезервировано ненормально много памяти. Мне с такой ситуацией сталкиваться не приходилось и потому я не могу ручаться за действенность предложенного решения, но многие отмечают, что обновление версии BIOS позволяет решить проблему.
Секция «Используется»
Секция «Используется» (In Use, рис C), обозначенная зеленым цветом, представляет количество памяти, используемой системой, драйверами и запущенными процессами. Количество используемой памяти рассчитывается, как значение «Всего» (Total) за вычетом суммы показателей «Изменено» (Modified), «Ожидание» (Standby) и «Свободно» (Free). В свою очередь, значение «Всего» — это показатель «Установлено» (Installed RAM) за вычетом показателя «Зарезервированное оборудование».
Секция «Изменено»
Оранжевым цветом выделена секция «Изменено» (Modified), в которой представлена измененная, но не задействованная память. Фактически она не используется, но может быть в любой момент задействована, если снова понадобится. Если память не используется достаточно давно, данные переносятся в файл подкачки, а память переходит в категорию «Ожидание».
Секция «Ожидание»
Секция «Ожидание», обозначенная синим цветом, представляет страницы памяти, удаленные из рабочих наборов, но по-прежнему с ними связанные. Другими словами, категория «Ожидание» — это фактически кэш. Страницам памяти в этой категории присваивается приоритет от 0 до 7 (максимум). Страницы, связанные с высокоприоритетными процессами, получают максимальный приоритет. Например, совместно используемые процессы обладают высоким приоритетом, поэтому связанным с ними страницам присваивается наивысший приоритет в категории «Ожидание».
Если процессу требуются данные с ожидающей страницы, диспетчер памяти сразу же возвращает эту страницу в рабочий набор. Тем не менее, все страницы в категории «Ожидание» доступны для записи данных от других процессов. Когда процессу требуется дополнительная память, а свободной памяти недостаточно, диспетчер памяти выбирает ожидающую страницу с наименьшим приоритетом, инициализирует ее и выделяет запросившему процессу.
Секция «Свободно»
В категории «Свободно», обозначенной голубым цветом, представлены страницы памяти, еще не выделенные ни одному процессу или освободившиеся после завершения процесса. В этой секции отображается как еще не задействованная, так и уже освобожденная память, но на самом деле, еще не задействованная память относится к другой категории — «Нулевые страницы» (Zero Page), которая так называется, потому что эти страницы инициализированы нулевым значением и готовы для использования.
О проблеме свободной памяти
Теперь, когда вы в общих чертах представляете, как работает диспетчер памяти, ненадолго остановимся на распространенном заблуждении, связанном с системой управления памятью в Windows 7. Как видно из рис. C, секция свободной памяти — одна из самых маленьких в гистограмме. Тем не менее, ошибочно на этом основании полагать, будто Windows 7 потребляет чересчур много памяти и что система не может нормально работать, если свободной памяти так мало.
На самом деле, все совсем наоборот. В контексте принятого в Windows 7 подхода к управлению памятью, свободная память бесполезна. Чем больше памяти задействовано, тем лучше. Заполняя память до максимума и постоянно перемещая страницы из одной категории в другую с использованием системы приоритетов, Windows 7 повышает эффективность работы и предотвращает попадание данных в файл подкачки, не давая ошибкам отсутствия страницы в памяти замедлить быстродействие.
Мониторинг памяти
Хотите понаблюдать систему управления памятью Windows 7 в действии? Перезагрузите компьютер и сразу же после запуска откройте Монитор ресурсов Windows 7. Перейдите на вкладку «Память» и обратите внимание на соотношение секций в гистограмме физической памяти.
Затем начните запускать приложения. По мере запуска следите за изменением гистограммы. Запустив как можно больше приложений, начните закрывать их по одному и наблюдайте, как изменяется соотношение секций в гистограмме физической памяти.
Проделав этот экстремальный эксперимент, вы поймете, как Windows 7 управляет памятью на вашем конкретном компьютере, и сможете использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти в нормальных условиях повседневной работы.
А что думаете вы?
Нравится ли вам идея использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти? Поделитесь своим мнением в комментариях!
Автор: Greg Shultz
Перевод
SVET
Оцените статью: Голосов
В своей прошлой статье «Как использовать Монитор ресурсов Windows 7 для эффективной диагностики» я рассказал о возможностях Монитора ресурсов Windows 7 (Resource Monitor), объяснил, как с его помощью наблюдать за распределением системных ресурсов между процессами и службами, а также упомянул, что его можно использовать для решения конкретных задач — например, для анализа расходования памяти. Именно об этом и пойдет речь в данной статье.Немного о памяти
Прежде чем приступать к анализу, коротко расскажу о том, как Microsoft Windows 7 управляет памятью. После этого вам будет проще понять, какая информация представлена в Мониторе ресурсов Windows 7.
Диспетчер памяти Windows 7 создает виртуальную систему памяти, которая состоит из доступной физической RAM и файла подкачки на жестком диске. Это позволяет операционной системе выделять блоки памяти фиксированной длины (страницы) с последовательными адресами в физической и виртуальной памяти.
Запуск Монитора ресурсов Windows 7
Чтобы запустить Монитор ресурсов Windows 7, откройте меню «Пуск» (Start), введите в строке поиска «Resmon.exe» и нажмите [Enter]. В открывшемся окне выберите вкладку «Память» (Memory, рис. A).
Рисунок A. На вкладке «Память» в Мониторе ресурсов Windows 7 приводятся подробные сведения о распределении памяти.
Таблица «Процессы»
На вкладке «Память» есть таблица «Процессы» (Processes, рис. B), в которой перечислены все запущенные процессы, а сведения об используемой памяти разбиты на несколько категорий.
Рисунок B. Сведения об используемой памяти для каждого процесса разбиты на несколько категорий.
Графа «Образ»
В колонке «Образ» (Image) указывается имя исполняемого файла процесса. Процессы, запущенные приложениями, узнать очень легко — например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad). Процессы с именем «svchost.exe» представляют различные службы операционной системы. Название службы указывается в скобках рядом с именем процесса.
Графа «ИД процесса»
В колонке «ИД процесса» (PID) указывается номер процесса — уникальное сочетание цифр, позволяющее идентифицировать запущенный процесс.
Графа «Завершено»
В столбце «Завершено» (Commit) указывается объем виртуальной памяти в килобайтах, зарезервированный системой для данного процесса. Сюда входит и используемая физическая память, и сохраненные в файле подкачки страницы.
Графа «Рабочий набор»
В графе «Рабочий набор» (Working Set) указывается объем физической памяти в килобайтах, используемой процессом в данный момент времени. Рабочий набор складывается из общей и частной памяти.
Графа «Общий»
В колонке «Общий» (Shareable) указан объем физической памяти в килобайтах, которую данный процесс использует совместно с другими. Использование одного сегмента памяти или страницы подкачки для родственных процессов позволяет сэкономить место в памяти. При этом физически сохраняется только одна копия страницы, которая затем сопоставляется с виртуальным адресным пространством других процессов, которые к ней обращаются. Например, все процессы, инициированные системными библиотеками DLL — Ntdll, Kernel32, Gdi32 и User32 — используют общую память.
Графа «Частный»
В столбце «Частный» (Private) указывается объем физической памяти в килобайтах, используемой исключительно данным процессом. Именно это значение позволяет определить, сколько памяти нужно тому или иному приложению для работы.
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
Таблица «Физическая память»
В таблице «Процессы» приводятся детальные сведения о распределении памяти между отдельными процессами, а таблица «Физическая память» (Physical Memory) дает общую картину использования RAM. Ее ключевой компонент — уникальная гистограмма, показанная на рис. C.
Рисунок C. Гистограмма в таблице «Физическая память» позволяет составить общее представление о распределении памяти в Windows 7.
Каждая секция гистограммы обозначена собственным цветом и представляет определенную группу страниц памяти. По мере использования системы, диспетчер памяти в фоновом режиме перемещает данные между этими группами, поддерживая тонкий баланс между физической и виртуальной памятью для обеспечения эффективной работы всех приложений. Давайте рассмотрим гистограмму поподробнее.
Секция «Зарезервированное оборудование»
Слева расположена секция «Зарезервированное оборудование» (Hardware Reserved), обозначенная серым цветом: это память, выделенная на нужды подключенного оборудования, которую оно использует для взаимодействия с операционной системой. Зарезервированная для оборудования память заблокирована и недоступна диспетчеру памяти.
Обычно объем памяти, выделенной оборудованию, составляет от 10 до 70 Мбайт, однако этот показатель зависит от конкретной конфигурации системы и в некоторых случаях может достигать нескольких сотен мегабайт. К компонентам, влияющим на объем зарезервированной памяти, относятся:
• BIOS;
• компоненты материнской платы — например, усовершенствованный программируемый контроллер прерываний ввода/вывода (APIC);
• звуковые карты и другие устройства, осуществляющие ввод/вывод с отображением на память;
• шина PCI Express (PCIe);
• видеокарты;
• различные наборы микросхем;
• флеш-накопители.
Некоторые пользователи жалуются, что в их системах для оборудования зарезервировано ненормально много памяти. Мне с такой ситуацией сталкиваться не приходилось и потому я не могу ручаться за действенность предложенного решения, но многие отмечают, что обновление версии BIOS позволяет решить проблему.
Секция «Используется»
Секция «Используется» (In Use, рис C), обозначенная зеленым цветом, представляет количество памяти, используемой системой, драйверами и запущенными процессами. Количество используемой памяти рассчитывается, как значение «Всего» (Total) за вычетом суммы показателей «Изменено» (Modified), «Ожидание» (Standby) и «Свободно» (Free). В свою очередь, значение «Всего» — это показатель «Установлено» (Installed RAM) за вычетом показателя «Зарезервированное оборудование».
Секция «Изменено»
Оранжевым цветом выделена секция «Изменено» (Modified), в которой представлена измененная, но не задействованная память. Фактически она не используется, но может быть в любой момент задействована, если снова понадобится. Если память не используется достаточно давно, данные переносятся в файл подкачки, а память переходит в категорию «Ожидание».
Секция «Ожидание»
Секция «Ожидание», обозначенная синим цветом, представляет страницы памяти, удаленные из рабочих наборов, но по-прежнему с ними связанные. Другими словами, категория «Ожидание» — это фактически кэш. Страницам памяти в этой категории присваивается приоритет от 0 до 7 (максимум). Страницы, связанные с высокоприоритетными процессами, получают максимальный приоритет. Например, совместно используемые процессы обладают высоким приоритетом, поэтому связанным с ними страницам присваивается наивысший приоритет в категории «Ожидание».
Если процессу требуются данные с ожидающей страницы, диспетчер памяти сразу же возвращает эту страницу в рабочий набор. Тем не менее, все страницы в категории «Ожидание» доступны для записи данных от других процессов. Когда процессу требуется дополнительная память, а свободной памяти недостаточно, диспетчер памяти выбирает ожидающую страницу с наименьшим приоритетом, инициализирует ее и выделяет запросившему процессу.
Секция «Свободно»
В категории «Свободно», обозначенной голубым цветом, представлены страницы памяти, еще не выделенные ни одному процессу или освободившиеся после завершения процесса. В этой секции отображается как еще не задействованная, так и уже освобожденная память, но на самом деле, еще не задействованная память относится к другой категории — «Нулевые страницы» (Zero Page), которая так называется, потому что эти страницы инициализированы нулевым значением и готовы для использования.
О проблеме свободной памяти
Теперь, когда вы в общих чертах представляете, как работает диспетчер памяти, ненадолго остановимся на распространенном заблуждении, связанном с системой управления памятью в Windows 7. Как видно из рис. C, секция свободной памяти — одна из самых маленьких в гистограмме. Тем не менее, ошибочно на этом основании полагать, будто Windows 7 потребляет чересчур много памяти и что система не может нормально работать, если свободной памяти так мало.
На самом деле, все совсем наоборот. В контексте принятого в Windows 7 подхода к управлению памятью, свободная память бесполезна. Чем больше памяти задействовано, тем лучше. Заполняя память до максимума и постоянно перемещая страницы из одной категории в другую с использованием системы приоритетов, Windows 7 повышает эффективность работы и предотвращает попадание данных в файл подкачки, не давая ошибкам отсутствия страницы в памяти замедлить быстродействие.
Мониторинг памяти
Хотите понаблюдать систему управления памятью Windows 7 в действии? Перезагрузите компьютер и сразу же после запуска откройте Монитор ресурсов Windows 7. Перейдите на вкладку «Память» и обратите внимание на соотношение секций в гистограмме физической памяти.
Затем начните запускать приложения. По мере запуска следите за изменением гистограммы. Запустив как можно больше приложений, начните закрывать их по одному и наблюдайте, как изменяется соотношение секций в гистограмме физической памяти.
Проделав этот экстремальный эксперимент, вы поймете, как Windows 7 управляет памятью на вашем конкретном компьютере, и сможете использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти в нормальных условиях повседневной работы.
А что думаете вы?
Нравится ли вам идея использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти? Поделитесь своим мнением в комментариях!
Автор: Greg Shultz
Перевод
SVET
Оцените статью: Голосов
Содержание
- Ошибок страницы физической памяти в секунду windows 10 что это
- Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
- Симптомы
- Причина
- Обходной путь
- Статус
- Дополнительная информация
- Ошибок страницы физической памяти в секунду windows 10 что это
- Инструкция при указанной ошибке памяти Windows 10 [решено]
- Как исправить Инструкция при указанной ошибке памяти в Windows 10
- 1. Запустите SFC & DISM Scan
- 2. Сканирование на наличие вредоносных программ
- 4. Выделите виртуальную память
- 5. Запустите обновления Windows
- 6. Сбросить систему
- Ошибок страницы физической памяти в секунду windows 10 что это
Ошибок страницы физической памяти в секунду windows 10 что это
Сообщения: 10692
Благодарности: 2886
•Ошибок отсутствия страницы в памяти/сек – ошибка отсутствия в памяти. Как правило, она может быть критической (но не всегда). Также может указывать на нехватку оперативной памяти. Такая ошибка возникает в тех случаях, когда система использует файл подкачки, который находится на жестком диске. Жесткий диск работает медленнее оперативной памяти, и использование файла подкачки снижает быстродействие системы. Если подобные ошибки слишком часто возникают, лучше расширить оперативную память.
1. Откройте командную строку с Административными правами.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
По окончании выложите C:windowsLogsCBS CBS.log в архиве.
Запустите AIDA64 Portable от имени Администратора > Сверху, в окне программы AIDA нажмите «Отчет» >
Далее > выберите «Аппаратные разделы» > Далее > Простой текст > Готово > Сохранить в файл.
Файл, в архиве, подкрепите к сообщению.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 3
Благодарности:
Доброго времени суток господа.
так. что еще можно сказать то.
Пожалуй это и натолкнуло меня написать пост именно здесь, а не создавать тему, т.к. на первый взгляд кажется всё это тесно связано между собой.
По поводу раммапа, похоже там критических утечек нет, но на мой взгляд многовато всё же для 2-х гигов)
Источник
Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
В этой статье предусмотрен обход ошибок, которые возникают при частом выделении памяти приложениями.
Применяется к: Windows 10 — все выпуски
Исходный номер КБ: 4055223
Симптомы
Приложения, которые часто выделяют память, могут испытывать случайные ошибки из памяти. Такие ошибки могут привести к другим ошибкам или неожиданному поведению в затронутых приложениях.
Причина
Сбои в распределении памяти могут возникать из-за задержки, связанные с ростом размера файла страницы для поддержки дополнительных требований к памяти в системе. Возможной причиной этих сбоев является настройка размера файла страницы в качестве «автоматического». Автоматический размер файла страницы начинается с небольшого файла страницы и автоматически растет по мере необходимости.
Система IO состоит из многих компонентов, включая фильтры файловой системы, файловые системы, фильтры громкости, фильтры хранения и т. д. Определенные компоненты в данной системе могут привести к вариативности в росте файлов страниц.
Обходной путь
Чтобы решить эту проблему, необходимо вручную настроить размер файла страницы. Для этого выполните следующие действия:
Статус
Корпорация Майкрософт подтвердила, что это проблема в Windows 10.
Дополнительная информация
При использовании компиляторов Microsoft Visual C++ (cl.exe) могут возникнуть такие ошибки сборки, как следующие:
Дополнительные сведения об ошибках компиляторов Visual C++ и о том, как их обойти, см. в материале Precompiled Header (PCH) issues and recommendations.
Источник
Ошибок страницы физической памяти в секунду windows 10 что это
Сообщения: 10692
Благодарности: 2886
•Ошибок отсутствия страницы в памяти/сек – ошибка отсутствия в памяти. Как правило, она может быть критической (но не всегда). Также может указывать на нехватку оперативной памяти. Такая ошибка возникает в тех случаях, когда система использует файл подкачки, который находится на жестком диске. Жесткий диск работает медленнее оперативной памяти, и использование файла подкачки снижает быстродействие системы. Если подобные ошибки слишком часто возникают, лучше расширить оперативную память.
1. Откройте командную строку с Административными правами.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
По окончании выложите C:windowsLogsCBS CBS.log в архиве.
Запустите AIDA64 Portable от имени Администратора > Сверху, в окне программы AIDA нажмите «Отчет» >
Далее > выберите «Аппаратные разделы» > Далее > Простой текст > Готово > Сохранить в файл.
Файл, в архиве, подкрепите к сообщению.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 3
Благодарности:
Доброго времени суток господа.
так. что еще можно сказать то.
Пожалуй это и натолкнуло меня написать пост именно здесь, а не создавать тему, т.к. на первый взгляд кажется всё это тесно связано между собой.
По поводу раммапа, похоже там критических утечек нет, но на мой взгляд многовато всё же для 2-х гигов)
Источник
Инструкция при указанной ошибке памяти Windows 10 [решено]
Инструкция в 0x00 ### ссылается на память в 0x00 ###. Ошибка чтения памяти : ошибка, связанная с ОЗУ, связанная как с системными, так и с сторонними приложениями, работающими в Windows 10. Обычно это означает, что приложение не может прочитать назначенную физическую память.
Один пользователь поделился своими проблемами на форуме Microsoft.
Когда я закрываю/перезагружаю Windows зависает с этой ошибкой
explorer.exe – ошибка приложения
Инструкция по адресу 0x00007ffee39ecc60 ссылается на память
0x0000000000000000. Память не может быть прочитана.
Местоположение памяти команд меняется с каждым отключением, но 00007ff …………. постоянно …
Узнайте, как решить эту проблему, следуя приведенным ниже инструкциям.
Как исправить Инструкция при указанной ошибке памяти в Windows 10
1. Запустите SFC & DISM Scan
Кроме того, вы можете использовать проактивные инструменты, такие как CCleaner или другие инструменты для очистки ПК, чтобы восстановить поврежденные системные файлы в реестре Windows.
2. Сканирование на наличие вредоносных программ
4. Выделите виртуальную память
5. Запустите обновления Windows
6. Сбросить систему
В качестве альтернативы, вы должны сканировать вашу оперативную память на наличие ошибок и убедиться, что вы соответствуете системным требованиям для запуска уязвимого приложения или игры, которая вызывает ошибку. Система Windows 10 требует как минимум 1 ГБ ОЗУ, но в идеале вы бы выбрали как минимум 2 ГБ.
Источник
Ошибок страницы физической памяти в секунду windows 10 что это
Что это такое? Как понимать его показания? В справке не описано.
Это нормально, когда у программы он растет со скоростью 2-3 тыс единиц в секунду?
← →
homm © ( 2007-05-01 14:42 ) [1]
> Что это такое? Как понимать его показания?
Да не паникуй ты так. Это количество страниц, к котрым онадобился доступ когда их не было в оперативной памяти. А если еще точнее, то количество страниц, к котрым онадобился доступ когда их не было в рабочем наборе приложения, что не значит что их не было в оперативе.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Нет 🙂 Пора идти в магазин за оперативой 🙂
← →
Eraser © ( 2007-05-01 14:42 ) [2]
> [0] DVM © (01.05.07 13:42)
> Что это такое?
это ошибка доступа к странице памяти, при её возникновении системы выгружает нужную страницу из файла подкачки в ОЗУ.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
не очень (хотя тут нужно смотреть конкретную ситуацию), нужно побольше ОЗУ.
← →
homm © ( 2007-05-01 15:05 ) [3]
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Я счас подергал окошко оперы за края, погонял апатчь, до 5 тышь в секунду доходило. Вот же уродский оптимайзер памяти у винды 🙁 Так что пара тысячь в секунду — вполне нормально.
procedure FastDIB2Bitmap(Src:TFastDIB;Dst:TBitmap);
begin
if Src.Handle<>0 then
begin
Dst.Handle:=Src.Handle;
// bitmaps can be selected for only one device context at a time
if(Src.hDC<>0)and Src.FreeDC then DeleteDC(Src.hDC);
if(Src.hPen<>0)then DeleteObject(Src.hPen);
if(Src.hFont<>0)then DeleteObject(Src.hFont);
if(Src.hBrush<>0)then DeleteObject(Src.hBrush);
Src.hDC:=0;
Src.FreeDC:=False;
Src.FreeBits:=False;
Src.FreeHandle:=False;
end;
end;
Вот такие преобразования моя программа делает до 200 в секунду.
Если я комментирую преобразование, то счетчик не растет практически.
Памяти 100% достаточно. Ее количество не влияет на этот счетчик. 2Гб ее.
← →
antonn © ( 2007-05-01 16:43 ) [6]
> ну если это не дает лишней нагрузки на CPU
Не нагрузки не дает абсолютно. Память не растет, никакие ресурсы не уменьшаются.
← →
Eraser © ( 2007-05-01 17:28 ) [8]
> [6] antonn © (01.05.07 16:43)
в Делфи идентификатор объекта является указателем на объект )
← →
antonn © ( 2007-05-01 18:09 ) [9]
> в Делфи идентификатор объекта является указателем на объект
> )
:Р
По логике, нужно сначала всё освободить, потом присваивать Handle. Возможно, и освобождать необязательно, во всяком случае в примере Bumpmap сделано так:
procedure TBumpForm.SetThumbnail(Image:TImage; Bmp:TFastDIB);
var
Tmp: TFastDIB;
begin
Tmp:=TFastDIB.Create;
Tmp.SetSize(105,105,Bmp.Bpp);
if Tmp.Bpp=8 then
begin
Tmp.Colors^:=Bmp.Colors^;
Tmp.UpdateColors;
end;
Bilinear(Bmp,Tmp);
Tmp.FreeHandle:=False;
Image.Picture.Bitmap.Handle:=Tmp.Handle;
Tmp.Free;
Image.Refresh;
end;
А вообще, откуда надобность выполнять подобное преобразование 200 раз/c? Может лучше выкинуть TBitmap и выполнять все операции с TFastDIB? А то мне сейчас лень смотреть, но подозреваю, что в TBitmap.SetHandle куда больше действий, чем просто присвоение переменной.
> А вообще, откуда надобность выполнять подобное преобразование
> 200 раз/c?
Да есть вот задачи. Видеонаблюдение.
> Может лучше выкинуть TBitmap и выполнять все операции с
> TFastDIB?
Так и планирую сделать, но есть свои грабли и очень много вносить изменений. В принципе FastDIB тут прикручен из-за фантастически быстрой SetSize.
> TBitmap.SetHandle куда больше действий, чем просто присвоение
> переменной.
Да, там намного больше действий.
> Sapersky
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование? У меня вот какая штука:
Во вторичном потоке происходит декодирование JPEG в TFastDIB. Далее этот FastDIB с сообщением высылается в основной поток и там преобразуется в TBitmap, который и отрисовывается при необходимости в основном потоке по WM_PAINT. Так сделано сейчас. Так вот получается, что и основной поток и вторичный на деле же работают с одним и тем же хэндлом одного и того же битмапа по сути. Ведь FastDIB2Bitmap просто присваивает хэндл. И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Или я неправ? Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
homm © ( 2007-05-01 22:06 ) [12]
Хм, а я кажеться понял почему так много ошибок доступа в этом месте. Потому что по Dst.Handle:=Src.Handle; Dst фактически заново создаеться, под новый битмап выделяеться память. А менеджер памяти в виндовсе имеет такое замечательное свойство, не выделять память физически, а лишь помечать страницы как зарезервированые. А вот когда уже на новый хэндл уже копируеться изображение со старого, идет непосредственное обращение к страницам, и они выделяются физически (в ОП), а счетчик ошибок доступа мотает. Так что эта строчка имхо — большая дыра в производительности. Попробуй как минимум создавать TBitmap как DIB, как максимум, здесь вобще нужно логику программы переделывать.
← →
homm © ( 2007-05-01 22:11 ) [13]
> Так вот получается, что и основной поток и вторичный на
> деле же работают с одним и тем же хэндлом одного и того
> же битмапа по сути.
Скорее всего нет. Как я понимаю невозможно преобразовать DDB в DIB не выделив под него второй хэндл.
> Потому что по Dst.Handle:=Src.Handle; Dst фактически заново
> создаеться, под новый битмап выделяеться память
Да, получается, что так.
> Так что эта строчка имхо — большая дыра в производительности.
Может быть, но это далеко не самая тяжелая операция. Декодирование из JPEG во вторичных потоках занимает в тысячи раз больше времени.
← →
Sapersky ( 2007-05-02 00:38 ) [16]
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование?
Dst.MakeCopy(Src, True); // делается SetSize и Move
Или можно (при UseGDI = True) установить размер Dst = Src, потом
Src.Draw(Dst.hDC, 0, 0); // фактически BitBlt
удобно тем, что конвертирует битмапы разных форматов, хотя, как правило, не очень качественно. Впрочем, для этого есть FConvert.pas.
И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
Игорь Шевченко © ( 2007-05-02 10:29 ) [17]
> Вот же уродский оптимайзер памяти у винды
Слону, сам понимаешь, пофиг.
> Sapersky (02.05.07 00:38) [16]
Большое спасибо. Метод TFastDib.MakeCopy() действительно то что нужно.
Счетчики ошибок страницы не растут. Утечек тоже нет. Как обстоят дела с производительностью такого решения выясняю.
Источник
Adblock
detector
- Remove From My Forums
монитор ресурсов, память и ошибки страниц.
-
Вопрос
-
Имеется Vista HP. На днях при возникновении очередных тормозов в системе, занялся внимательным изучением монитора ресурсов. При этом заметил, что периодически в окошке «Память» появляются сообщения об ошибках страниц(диск)/ мин. причём они возникают при работе разных програм, в том числе и системных) и это похоже совпадает с наблюдаемыми тормозами в работе.( счёт порой идёт на сотни ошибок). Поиск на просторах интернета ничего вразумительного не дал. Что это означает? И как это лечить?
Ответы
-
Если имеется в виду Page Fault то это не ошибки. Это просто значит что запрошеная страница (участок памяти размером 4К) была выгружена на диск и ее потребовалось загрузить в физическую память. Это совершенно нормальное явление в любых ОС с виртуальной памятью.
Черезмерное количество таких явлений однако может привести к снижению производительности и свидетельствует о недостатке физической памяти.
Сотни страниц — это кстати пустяки.
This posting is provided «AS IS» with no warranties, and confers no rights.
-
Помечено в качестве ответа
8 декабря 2009 г. 8:34
-
Помечено в качестве ответа
Что это такое? Как понимать его показания? В справке не описано.
Это нормально, когда у программы он растет со скоростью 2-3 тыс единиц в секунду?
← →
homm © ( 2007-05-01 14:42 ) [1]
> Что это такое? Как понимать его показания?
Да не паникуй ты так. Это количество страниц, к котрым онадобился доступ когда их не было в оперативной памяти. А если еще точнее, то количество страниц, к котрым онадобился доступ когда их не было в рабочем наборе приложения, что не значит что их не было в оперативе.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Нет 🙂 Пора идти в магазин за оперативой 🙂
← →
Eraser © ( 2007-05-01 14:42 ) [2]
> [0] DVM © (01.05.07 13:42)
> Что это такое?
это ошибка доступа к странице памяти, при её возникновении системы выгружает нужную страницу из файла подкачки в ОЗУ.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
не очень (хотя тут нужно смотреть конкретную ситуацию), нужно побольше ОЗУ.
← →
homm © ( 2007-05-01 15:05 ) [3]
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Я счас подергал окошко оперы за края, погонял апатчь, до 5 тышь в секунду доходило. Вот же уродский оптимайзер памяти у винды 🙁 Так что пара тысячь в секунду — вполне нормально.
← →
DVM © ( 2007-05-01 15:35 ) [4]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB. А именно:
procedure FastDIB2Bitmap(Src:TFastDIB;Dst:TBitmap);
begin
if Src.Handle<>0 then
begin
Dst.Handle:=Src.Handle;
// bitmaps can be selected for only one device context at a time
if(Src.hDC<>0)and Src.FreeDC then DeleteDC(Src.hDC);
if(Src.hPen<>0)then DeleteObject(Src.hPen);
if(Src.hFont<>0)then DeleteObject(Src.hFont);
if(Src.hBrush<>0)then DeleteObject(Src.hBrush);
Src.hDC:=0;
Src.FreeDC:=False;
Src.FreeBits:=False;
Src.FreeHandle:=False;
end;
end;
Вот такие преобразования моя программа делает до 200 в секунду.
Если я комментирую преобразование, то счетчик не растет практически.
Памяти 100% достаточно. Ее количество не влияет на этот счетчик. 2Гб ее.
← →
Eraser © ( 2007-05-01 16:40 ) [5]
ну если это не дает лишней нагрузки на CPU — можно смело забить, если нагрузку дает — исключить вызов FastDIB2Bitmap.
← →
antonn © ( 2007-05-01 16:43 ) [6]
щас может тупой вопрос задам:)
А так — procedure FastDIB2Bitmap(Src:TFastDIB; var Dst:TBitmap);
?
← →
DVM © ( 2007-05-01 17:13 ) [7]
> ну если это не дает лишней нагрузки на CPU
Не нагрузки не дает абсолютно. Память не растет, никакие ресурсы не уменьшаются.
> щас может тупой вопрос задам:)
> А так — procedure FastDIB2Bitmap(Src:TFastDIB; var Dst:TBitmap);
>
> ?
Все то же самое.
← →
Eraser © ( 2007-05-01 17:28 ) [8]
> [6] antonn © (01.05.07 16:43)
в Делфи идентификатор объекта является указателем на объект )
← →
antonn © ( 2007-05-01 18:09 ) [9]
> в Делфи идентификатор объекта является указателем на объект
> )
:Р
← →
Sapersky ( 2007-05-01 20:51 ) [10]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB.
По логике, нужно сначала всё освободить, потом присваивать Handle. Возможно, и освобождать необязательно, во всяком случае в примере Bumpmap сделано так:
procedure TBumpForm.SetThumbnail(Image:TImage; Bmp:TFastDIB);
var
Tmp: TFastDIB;
begin
Tmp:=TFastDIB.Create;
Tmp.SetSize(105,105,Bmp.Bpp);
if Tmp.Bpp=8 then
begin
Tmp.Colors^:=Bmp.Colors^;
Tmp.UpdateColors;
end;
Bilinear(Bmp,Tmp);
Tmp.FreeHandle:=False;
Image.Picture.Bitmap.Handle:=Tmp.Handle;
Tmp.Free;
Image.Refresh;
end;
А вообще, откуда надобность выполнять подобное преобразование 200 раз/c? Может лучше выкинуть TBitmap и выполнять все операции с TFastDIB? А то мне сейчас лень смотреть, но подозреваю, что в TBitmap.SetHandle куда больше действий, чем просто присвоение переменной.
Ещё, имейте в виду, что FastGate — это не оригинальный FastLIB. Автор этого модуля уже допускал ляпы при «улучшении» библиотеки, так что аккуратнее с ним (хотя, строго говоря, и «оригинал» не безгрешен).
← →
DVM © ( 2007-05-01 22:03 ) [11]
> А вообще, откуда надобность выполнять подобное преобразование
> 200 раз/c?
Да есть вот задачи. Видеонаблюдение.
> Может лучше выкинуть TBitmap и выполнять все операции с
> TFastDIB?
Так и планирую сделать, но есть свои грабли и очень много вносить изменений. В принципе FastDIB тут прикручен из-за фантастически быстрой SetSize.
> TBitmap.SetHandle куда больше действий, чем просто присвоение
> переменной.
Да, там намного больше действий.
> Sapersky
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование? У меня вот какая штука:
Во вторичном потоке происходит декодирование JPEG в TFastDIB. Далее этот FastDIB с сообщением высылается в основной поток и там преобразуется в TBitmap, который и отрисовывается при необходимости в основном потоке по WM_PAINT. Так сделано сейчас. Так вот получается, что и основной поток и вторичный на деле же работают с одним и тем же хэндлом одного и того же битмапа по сути. Ведь FastDIB2Bitmap просто присваивает хэндл. И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Или я неправ? Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
homm © ( 2007-05-01 22:06 ) [12]
Хм, а я кажеться понял почему так много ошибок доступа в этом месте. Потому что по Dst.Handle:=Src.Handle; Dst фактически заново создаеться, под новый битмап выделяеться память. А менеджер памяти в виндовсе имеет такое замечательное свойство, не выделять память физически, а лишь помечать страницы как зарезервированые. А вот когда уже на новый хэндл уже копируеться изображение со старого, идет непосредственное обращение к страницам, и они выделяются физически (в ОП), а счетчик ошибок доступа мотает. Так что эта строчка имхо — большая дыра в производительности. Попробуй как минимум создавать TBitmap как DIB, как максимум, здесь вобще нужно логику программы переделывать.
← →
homm © ( 2007-05-01 22:11 ) [13]
> Так вот получается, что и основной поток и вторичный на
> деле же работают с одним и тем же хэндлом одного и того
> же битмапа по сути.
Скорее всего нет. Как я понимаю невозможно преобразовать DDB в DIB не выделив под него второй хэндл.
← →
DVM © ( 2007-05-01 22:21 ) [14]
> Потому что по Dst.Handle:=Src.Handle; Dst фактически заново
> создаеться, под новый битмап выделяеться память
Да, получается, что так.
> Так что эта строчка имхо — большая дыра в производительности.
Может быть, но это далеко не самая тяжелая операция. Декодирование из JPEG во вторичных потоках занимает в тысячи раз больше времени.
> как максимум, здесь вобще нужно логику программы переделывать.
Я вот попробовал переделать на TFastDIB в основном потоке — проблема с ошибками страницы исчезла.
← →
DVM © ( 2007-05-01 22:25 ) [15]
Возникла другая проблема — как мне правильно передать с сообщением переменную типа TFastDIB из вторичного потока в первичный с сообщением и присвоить полченное в основном потоке значение переменной в первичном потоке. Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
← →
Sapersky ( 2007-05-02 00:38 ) [16]
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование?
Dst.MakeCopy(Src, True); // делается SetSize и Move
Или можно (при UseGDI = True) установить размер Dst = Src, потом
Src.Draw(Dst.hDC, 0, 0); // фактически BitBlt
удобно тем, что конвертирует битмапы разных форматов, хотя, как правило, не очень качественно. Впрочем, для этого есть FConvert.pas.
И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
Если вторичный поток не изменяет размер битмапа, т.е. не портит указатель/Handle, то, наверное, можно его спокойно рисовать, в крайнем случае нарисуется половина старого, половина нового. Хотя сам не пробовал, не знаю, как функции GDI отнесутся к тому, что кто-то будет писать в используемую ими область памяти. Можно на всякий случай прицепить к битмапу крит. секцию.
Если изменяет — тогда однозначно нужна или синхронизация, или копирование, или и то, и другое.
Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
Что такое «присваивание»?
Если Assign — возможно, «аффтар» FastGate с ним напортачил в новой версии, пытаясь добиться того же поведения, что и у TBitmap. В оригинале это поведение довольно специфическое — битмап-источник уничтожается.
В общем, лучше «присваивание» делать как Dst := Src с соответствующей синхронизацией или MakeCopy.
← →
Игорь Шевченко © ( 2007-05-02 10:29 ) [17]
> Вот же уродский оптимайзер памяти у винды
Слону, сам понимаешь, пофиг.
← →
DVM © ( 2007-05-02 13:00 ) [18]
> Sapersky (02.05.07 00:38) [16]
Большое спасибо. Метод TFastDib.MakeCopy() действительно то что нужно.
Счетчики ошибок страницы не растут. Утечек тоже нет. Как обстоят дела с производительностью такого решения выясняю.
Вот тут ответ на твой вопрос:
https://social.technet.microsoft.com/Forums/ru-RU/0e7cb14d-99b8-48bd-aa2c-00594afa2cad/1084108610851080109010861088?forum=vistaru
Если имеется в виду Page Fault то это не ошибки. Это просто значит что запрошеная страница (участок памяти размером 4К) была выгружена на диск и ее потребовалось загрузить в физическую память. Это совершенно нормальное явление в любых ОС с виртуальной памятью.
Черезмерное количество таких явлений однако может привести к снижению производительности и свидетельствует о недостатке физической памяти.
В случае вытесняющего алгоритма операционная система в любой момент времени может прервать выполнение текущего потока и переключить процессор на другой поток. В невытесняющих алгоритмах поток, которому предоставлен процессор, только сам решает, когда передать управление операционной системе.
Алгоритмы с квантованием.
Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера1.
Алгоритмы с приоритетами.
Каждому потоку назначается приоритет (priority) – целое число, обозначающее степень привилегированности потока. Операционная система при наличии нескольких готовых к выполнению потоков выбирает из них поток с наибольшим приоритетом.
В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.
- Тип многозадачности для приложения DOS
- Гарантии обслуживания
- Планирование процессов переднего плана
- Назначение файла подкачки
- Процессы Р1, Р2, Р3 выделяют 100, 20, 80 Мб памяти. В системе 128Мб ОП. Каков размер занятой памяти в файле подкачки. Какой размер файла подкачки.
- Что такое «страничная ошибка»?
Прерывание 14 —Страничная ошибка(#PF): Intel386 …
Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:
- элемент таблицы страниц или каталога страниц, используемый при трансляции адреса, имеет нулевой бит присутствия, т.е. нужная таблица страниц или страница не присутствует в физической памяти;
- процедура не располагает уровнем привилегий, достаточным для доступа к выбранной странице или пытается произвести запись в страницу, защищенную от записи для текущего уровня привилегий.
Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).
Прерванная программа после устранения причин, вызвавших страничную ошибку (например, загризки страницы в физическую память), может быть продолжена без каких-либо дополнительных корректировок.
Если страничная ошибка была вызвана в связи с нарушением привилегий страничной защиты, то бит доступа (A) в соответствующем элементе каталога страниц устанавливается. Поведение бита доступа в соответствующем элементе таблиц страниц для этого случая не регламентируется в процессорах Intel и может быть разным в различных моделях.
- Высокая интенсивность ошибок страниц говорит о:
— ненадежности оперативной памяти
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
- Как формируется приоритет потока в Windows
В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. Синхронизация потоков ). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.
В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).
Рис. 6.2.Приоритеты потоков
Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов. Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:
- реального времени ( REALTIME_PRIORITY_CLASS ) — 24
- высокий ( HIGH_PRIORITY_CLASS ) — 13
- выше нормы ( ABOVE_NORMAL_PRIORITY_CLASS ) 10
- нормальный ( NORMAL_PRIORITY_CLASS ) — 8
- ниже нормы ( BELOW_NORMAL_PRIORITY_CLASS ) — 6
- и неработающий ( IDLE_PRIORITY_CLASS ) 4
Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:
Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока
Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.
Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. Функционирование менеджера памяти ) и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.
Содержание
- Статьи к прочтению:
- Пусть говорят — «Вы мне не верили, а я умерла»Выпуск от 11.09.217
- Похожие статьи:
- Рекомендуем к прочтению
Статьи к прочтению:
Пусть говорят — «Вы мне не верили, а я умерла»Выпуск от 11.09.217
Похожие статьи:
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов так, чтобы все…
На рис. 10 показана схема страничного распределения памяти. Виртуальное адресное пространство каждого процесса делится на части одинакового,…
Какое допустимое количество ошибок страницы физической памяти?
Есть небольшой сервер под управлением Windows Server 2016.
После замены планки памяти наблюдаю в мониторе ресурсов много «ошибок страницы физической памяти»:
Допустимы ли такие значения, или планка битая и лучше её заменить?
-
Вопрос заданболее трёх лет назад
-
13400 просмотров
Это не имеет никакого отношения к повреждению оперативной памяти.
Это часть механизма свопирования — ошибка означает, что при попытке обратиться к памяти выяснилось, что это участок сброшен из оперативной памяти на диск.
Пригласить эксперта
-
Показать ещё
Загружается…
30 янв. 2023, в 21:42
10000 руб./за проект
30 янв. 2023, в 20:37
10000 руб./за проект
30 янв. 2023, в 20:30
3000 руб./за проект
Минуточку внимания
С развитием компьютерных систем объем памяти и объем информации внутри ПК также постепенно увеличивались. Обработка этой информации памяти является нормальной частью серьезных сбоев. Жесткие ошибки не связаны с качеством или маркой памяти, а являются исключением, обычно возникающим при нормальной или нерегулярной обработке. В этом руководстве мы узнаем гораздо больше о серьезных ошибках памяти в секунду, о том, почему возникает чрезмерное количество серьезных ошибок, а также о некоторых методах, которые помогут решить проблему с жесткими ошибками памяти. Если вы ищете решения для серьезных сбоев, связанных с проблемой свободной памяти, присоединяйтесь и ознакомьтесь с некоторыми из эффективных исправлений, которые устранят серьезные сбои монитора ресурсов Windows.
Что такое Жесткие ошибки в секунду? Как это исправить
Как обсуждалось ранее, серьезные сбои, ранее известные как сбои страниц, являются нормальной частью обработки информации о памяти в компьютере. Это не проблема, но возникают серьезные ошибки, когда операционная система извлекает страницы памяти из файла подкачки (виртуальная память), а не из физической памяти (ОЗУ). Однако, как излишество во всем плохо, так и в случае с жесткими недостатками. Если вы испытываете большее количество серьезных сбоев, чем обычно, это может означать, что вашему компьютеру требуется больше физической памяти (ОЗУ). Количество серьезных сбоев полностью зависит от характеристик и задач вашего ПК.
Что вызывает серьезные сбои со свободной памятью?
Несмотря на то, что вы уже знакомы с основной причиной серьезных сбоев, которая заключается в нехватке оперативной памяти в ПК, при проверке системы. Многие пользователи сообщают о наличии свободной памяти, сталкиваясь с десятками серьезных сбоев. В этом случае не вводите в заблуждение доступную или свободную память, отображаемую в диспетчере задач вашего ПК. Большая часть этой памяти не свободна и уже используется, что приводит к большому противоречию.
Помимо проблем с памятью, число выше обычного (20 или меньше, учитывая объем вашей оперативной памяти) является проблемой для вас. Это может быть вызвано различными причинами, перечисленными ниже:
- Жесткие ошибки в секунду возникают, когда адресная память конкретной программы была переключена на основной файл подкачки, а не на слот основной памяти. Это приводит к замедлению работы ПК и повышению активности жесткого диска из-за попыток найти недостающую память.
- Кроме того, проблема высоких аппаратных сбоев может возникнуть во время перегрузки жесткого диска. В этом случае жесткий диск продолжает работать на полной скорости, пока на вашем компьютере происходит перегрузка диска или когда программа перестает отвечать на запросы.
- Кроме того, серьезные сбои могут возникнуть при одновременном запуске слишком большого количества программ на ПК.
Что такое серьезные сбои монитора ресурсов Windows?
Монитор ресурсов является важным инструментом для ПК, который передает информацию о потоках данных в режиме реального времени о важных системах, работающих на вашем компьютере. Утилита чрезвычайно полезна для мониторинга состояния вашей системы и устранения проблем, связанных с ее производительностью. Вы можете проверить наличие и распределение нескольких ресурсов в вашей системе с помощью монитора ресурсов. Вы также можете проверить информацию об использовании оборудования, включая память, ЦП, диск и сеть, а также программное обеспечение, включая дескрипторы файлов и модули. В разделе «Память» вы, скорее всего, проверите количество серьезных сбоев в секунду, представляющее процент используемой физической памяти. В общем, Resource Monitor — удивительно важная утилита во всех версиях Windows.
Как исправить серьезные ошибки памяти в секунду
Если вы столкнулись с большим количеством серьезных сбоев (сотни в секунду) в вашей системе, вам необходимо решить проблему, помня о возможных причинах, упомянутых выше, которые могут вызвать эту ситуацию. Итак, давайте начнем с методов устранения неполадок, чтобы исправить эту ситуацию для вас.
Способ 1: добавить больше оперативной памяти
Как мы уже обсуждали, основной причиной большего количества серьезных сбоев в секунду является нехватка оперативной памяти. Следовательно, чтобы решить проблему серьезных сбоев, вам нужно больше оперативной памяти. Чем больше у вас их, тем меньше серьезных ошибок в секунду вы будете сталкиваться. Для этого вы можете начать с проверки конфигурации вашей системы, чтобы узнать, достаточно ли у вас оперативной памяти в текущей версии Windows. Если вы не соответствуете требованиям (для 64-битной версии требуется в два раза больше памяти, чем для 32-битной версии), вам необходимо купить дополнительную оперативную память или добавить больше на свой компьютер. Вы можете ознакомиться с нашим руководством о том, как увеличить объем оперативной памяти в Windows 7 и 10.
Кроме того, чтобы увеличить видеопамять (VRAM), вы можете ознакомиться с нашим руководством по 3 способам увеличения выделенной видеопамяти в Windows 10.
Способ 2: повторно включить Pagefile.sys
В случае, если у вас возникли серьезные проблемы со свободной памятью, этот метод поможет вам решить проблему довольно эффективно. Это включает в себя отключение и повторное включение Pagefile.sys. Ваш ПК с Windows предназначен для использования файла подкачки.
- Файл подкачки помогает более эффективно использовать физическую память, удаляя из ОЗУ редко используемые измененные страницы.
- Файл подкачки необходим, чтобы максимально эффективно использовать оперативную память. Вы можете вносить в него изменения, регулируя его размер, настраивая его конфигурации, а также отключая его, чтобы уменьшить количество серьезных сбоев.
Вот как вы можете сначала отключить, а затем снова включить Pagefile.sys:
Примечание. Если файл подкачки отключен, некоторые программы не будут работать должным образом, поскольку они предназначены исключительно для его использования.
1. Откройте проводник, одновременно нажав клавиши Windows + E.
2. Теперь щелкните правой кнопкой мыши «Этот компьютер» и выберите «Свойства» в меню.
3. Нажмите Дополнительные параметры системы на боковой панели.
4. На вкладке «Дополнительно» нажмите «Настройки…» в разделе «Производительность».
5. Теперь на вкладке «Дополнительно» нажмите кнопку «Изменить…».
6. Затем снимите флажок Автоматически управлять размером файла подкачки для всех дисков.
7. Теперь выберите диск, для которого вы хотите отключить Pagefile.sys, и выберите «Нет файла подкачки».
8. Затем нажмите Set > OK, чтобы сохранить изменения.
9. После этого перезагрузите компьютер, чтобы изменения вступили в силу.
10. Наконец, вы можете снова включить Pagefile.sys с помощью шагов, описанных выше.
Способ 3: определить сборщик ресурсов и завершить дерево процессов
Если вы все еще боретесь с серьезными сбоями монитора ресурсов Windows, вы должны попытаться определить программу, которая увеличивает число серьезных сбоев в секунду. Этот процесс несет ответственность за слишком много памяти на вашем ПК и, следовательно, является виновником. С помощью Resource Monitor вы можете легко найти основной процесс, ответственный за эту ситуацию. Итак, следуйте инструкциям ниже, чтобы найти пожиратель ресурсов в вашей системе:
1. Нажмите одновременно клавиши Ctrl + Shift + Esc, чтобы запустить диспетчер задач.
2. Перейдите на вкладку «Производительность» и нажмите «Открыть монитор ресурсов».
3. На вкладке «Память» окна «Монитор ресурсов» щелкните столбец «Серьезные сбои».
4. Теперь проверьте процесс, замедляющий работу вашего ПК, и щелкните его правой кнопкой мыши.
5. Выберите в меню Завершить дерево процессов, чтобы завершить задачу.
Примечание. Если программа не важна, ее можно удалить.
Часто задаваемые вопросы (FAQ)
Q1. Сколько серьезных ошибок в секунду является нормальным?
Ответ В среднем 20 или менее серьезных ошибок в секунду являются нормальными, в зависимости от оперативной памяти вашей системы.
Q2. Часто ли возникают серьезные сбои памяти?
Ответ Да. Жесткие ошибки памяти распространены и являются частью обработки памяти. Их не следует воспринимать как ошибки. Они означают, что блочная память должна была быть извлечена из виртуальной памяти, а не из ОЗУ.
Q3. Как я могу отслеживать отказы жестких страниц?
Ответ Сбои жесткой страницы можно отслеживать с помощью консоли Performance Monitor (Perfmon). Он представляет собой кумулятивное количество ошибок страниц в системе.
Q4. Что приводит к зависанию диска?
Ответ Пробуксовка диска вызвана использованием виртуальной памяти. Он включает в себя быстрый обмен данными с жесткого диска, когда программа перестает отвечать на запросы.
Q5. В чем причина высокого использования памяти?
Ответ Высокое использование памяти в системе является результатом перегрузки многих внутренних процессов.
***
Мы надеемся, что наш документ поможет вам, и вы сможете много узнать о серьезных ошибках в секунду и способах устранения избыточных серьезных ошибок в вашей системе. Если да, то сообщите нам, какой из методов помог вам решить проблему с памятью. Вы можете оставить свои вопросы или предложения в разделе комментариев ниже.
Вытесняющие/невытесняющие алгоритмы.
В случае вытесняющего алгоритма операционная система в любой момент времени может прервать выполнение текущего потока и переключить процессор на другой поток. В невытесняющих алгоритмах поток, которому предоставлен процессор, только сам решает, когда передать управление операционной системе.
Алгоритмы с квантованием.
Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера1.
Алгоритмы с приоритетами.
Каждому потоку назначается приоритет (priority) – целое число, обозначающее степень привилегированности потока. Операционная система при наличии нескольких готовых к выполнению потоков выбирает из них поток с наибольшим приоритетом.
В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.
- Тип многозадачности для приложения DOS
- Гарантии обслуживания
- Планирование процессов переднего плана
- Назначение файла подкачки
- Процессы Р1, Р2, Р3 выделяют 100, 20, 80 Мб памяти. В системе 128Мб ОП. Каков размер занятой памяти в файле подкачки. Какой размер файла подкачки.
- Что такое «страничная ошибка»?
Прерывание 14 —Страничная ошибка(#PF): Intel386 …
Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:
- элемент таблицы страниц или каталога страниц, используемый при трансляции адреса, имеет нулевой бит присутствия, т.е. нужная таблица страниц или страница не присутствует в физической памяти;
- процедура не располагает уровнем привилегий, достаточным для доступа к выбранной странице или пытается произвести запись в страницу, защищенную от записи для текущего уровня привилегий.
Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).
Прерванная программа после устранения причин, вызвавших страничную ошибку (например, загризки страницы в физическую память), может быть продолжена без каких-либо дополнительных корректировок.
Если страничная ошибка была вызвана в связи с нарушением привилегий страничной защиты, то бит доступа (A) в соответствующем элементе каталога страниц устанавливается. Поведение бита доступа в соответствующем элементе таблиц страниц для этого случая не регламентируется в процессорах Intel и может быть разным в различных моделях.
- Высокая интенсивность ошибок страниц говорит о:
— ненадежности программы
— ненадежности оперативной памяти
— иное: пояснить
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
- Как формируется приоритет потока в Windows
Приоритеты
В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. Синхронизация потоков ). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.
В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).
Рис. 6.2.Приоритеты потоков
Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов. Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:
- реального времени ( REALTIME_PRIORITY_CLASS ) — 24
- высокий ( HIGH_PRIORITY_CLASS ) — 13
- выше нормы ( ABOVE_NORMAL_PRIORITY_CLASS ) 10
- нормальный ( NORMAL_PRIORITY_CLASS ) — 8
- ниже нормы ( BELOW_NORMAL_PRIORITY_CLASS ) — 6
- и неработающий ( IDLE_PRIORITY_CLASS ) 4
Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:
Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока
Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.
Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. Функционирование менеджера памяти ) и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.
Статьи к прочтению:
- Оделирование в сапр. пакет nastran.
- Одели случайных и хаотических блужданий.
Пусть говорят — «Вы мне не верили, а я умерла»Выпуск от 11.09.217
Похожие статьи:
-
Размещение памяти с перемещаемыми разделами.
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов так, чтобы все…
-
Страничное распределение памяти
На рис. 10 показана схема страничного распределения памяти. Виртуальное адресное пространство каждого процесса делится на части одинакового,…
Memory: Available Bytes
Порог: Этот счётчик должен быть постоянно выше 5 000 КВ (если не разбираться в нюансах)
Значение: Отслеживает количество доступной памяти в байтах для выполнения различных процессов.. Низкие показатели означают нехватку памяти. Решение — увеличить память.
Есть смысл выставлять порог для \Memory\Available Mbytesвручную из соображений:
•50% свободной памяти доступно = Отлично
•25% доступно памяти = Требует внимания
•10% свободно = Возможны проблемы
•Меньше 5% доступно памяти= Критично для скорости, нужно вмешиваться
Memory: Pages Faults/sec
Порог: Этот счётчик не должен быть, продолжительное время, больше 1000
Значение: Это значение счетчика ошибок страницы. Ошибка страницы возникает, когда процесс ссылается на страницу виртуальной памяти, которая не находится в рабочем множестве оперативной памяти. Данный счетчик учитывает как те ошибки страницы, которые требуют обращения к диску, так и те, которые вызваны нахождением страницы вне рабочего множества в оперативной памяти. Большинство процессоров могут обрабатывать ошибки страницы второго типа без особых задержек. Однако, обработка ошибок страницы первого типа, требующая доступа к диску, может привести к значительным задержкам.
Если значение этого счётчика постоянно больше 0, то это указывает на то что Windows очень интенсивно свопит на диск из-за недостатка памяти.
Process: Page Faults/sec/SQL Server Instance
Порог: Этот счётчик не должен быть, продолжительное время, больше 0
Значение: — отслеживает ошибки страниц памяти из-за того что WIndows обрезает размер working-set для данного процесса. Высокие значения этого счётчика указывают что кто-то усиленно свопит. Решение — найти тот процесс, который это вызывает, потом проанализировать полученную информацию. В любом случае своп указывает на недостаток памяти.
Process: Working Set/SQL Server Instance
— отслеживает память, которую использует процесс SQL для данной instance. Счётчик должен быть больше 5000 КВ, если значение падает ниже, то это означает нехватку памяти для SQL.
SQL Server: Buffer Manager: Buffer Cache Hit Ratio
Порог: Этот счётчик не должен быть, продолжительное время, меньше 90%.
Значение: Счетчик отслеживает, в процентах, долю страниц в буфере кэша. При этом не делает разницы между физической памятью и свопом.
SQL Server: Buffer Manager: Total Pages
— отслеживает общее количество станиц в буфере кэша. Низкие значения счётчика могут означать частые обращения к винту. Решение — увеличить память.
SQL Server: Memory Manager: Total Server Memory
Порог: Этот счётчик не должен быть, продолжительное время, больше физически доступной памяти.
Значние: Счетчик отслеживает общее количество динамической памяти, которую использует SQL. Если значения счётчика, продолжительное время, больше чем физическая память, надо увеличивать физическую память.
Этот счетчик есть смысл рассматривать вместе
SQL Server: Memory Manager: Target Server Memory
Порог: Этот счётчик не должен быть, продолжительное время, больше физически значения счетчика SQL Server: Memory Manager: Total Server Memory
Значение: Счетчик показывает требуемый объем ресурсов.
Для анализа используйте онлайн-сервис. При желании подобрать сервер воспользуйтесь нашими услугами по подбору серверов.
Смотрите также http://www.gilev.ru/ram/
Для мониторинга и оптимизации работы
компьютера в системе Windows 2000 доступны
следующие три инструмента:
Производительность |
|
Диспетчер |
|
Оснастка |
Диспетчер задач
(Task Manager)
В системе Windows 2000 сохранено известное
по Windows NT 4.0 средство мониторинга
производительности — Диспетчер задач,
который предоставляет информацию о
программах и процессах, запущенных на
компьютере, и отображает наиболее общие
показатели производительности процессов.
Диспетчер задач можно использовать для
отслеживания ключевых индикаторов
производительности вашего компьютера.
Вы можете быстро отслеживать статус
запущенных программ и завершать
приложения, которые перестали отвечать
на запросы системы. С помощью диспетчера
задач можно отслеживать активность
запущенных процессов по 15 параметрам
и просматривать графики использования
процессора и памяти.
Запуск диспетчера
задач
Для запуска диспетчера задач можно
выбрать один из следующих методов:
Щелкнуть |
|
Нажать |
|
Вызвать |
Если диспетчер задач запущен, то в правой
части панели задач (на systray) появляется
индикатор загрузки процессора. Если
подвести указатель мыши к этому
индикатору, то будет показана степень
загруженности процессора в процентах.
Окно диспетчера задач можно открыть
двойным щелчком на значке индикатора
загрузки на панели задач. Если вы не
хотите, чтобы свернутое окно диспетчера
оставалось на панели задач среди других
запущенных программ, то в окне диспетчера
в меню Параметры (Options) установите
флажокСкрывать свернутое (Hide When
Minimized).
Мониторинг
процессов
Для просмотра запущенных процессов и
показателей их производительности
выберите вкладку Процессы (Processes) в окне
Диспетчер задач Windows (рис. 8). Таблица
процессов содержит все процессы,
запущенные в собственном адресном
пространстве, включая все приложения
и системные сервисы. Если требуется
просмотреть 16-разрядные процессы, то в
меню Параметры выберите командуОтображать 16-разрядные задачи (Show
16-bit tasks).
С помощью команды Выбрать столбцы
(Select Columns) меню Вид (View) можно добавить
на экран новые столбцы показателей. В
открывшемся диалоговом окнеВыбор
столбцов установите флажки рядом с
теми показателями, которые должны быть
отображены в таблице. В табл. 8 кратко
описаны основные столбцы таблицы и
соответствующие им счетчики.
|
Рис. 8. |
Таблица 8. Основные счетчики
диспетчера задач
Счетчик |
Описание |
Имя образа |
Имя процесса |
Идентификатор |
Числовое |
Загрузка |
Выраженное |
Время ЦП |
Суммарное |
Память- |
Объем |
Память- |
Изменение |
Память- |
Максимальный |
Ошибки |
Число |
Объекты |
Число |
Число чтений |
Число |
Прочитано |
Число байт, |
Ошибки |
Изменение |
Объем |
Объем |
Выгружаемый |
Виртуальная |
Невыгружаемый |
Объем памяти |
Базовый |
Определяет |
Счетчик |
Число |
Счетчик |
Число |
Объекты GDI |
Число объектов GDI, используемых в Объекты из |
Число записей |
Число операций ввода/вывода, устройств |
Записано |
Число байт, |
Прочий |
Число |
Прочих байт |
Число байт, |
Код сеанса |
Идентификатор |
Имя |
Имя |
Изменение
приоритета запущенной программы
Базовый приоритет задается, как правило,
кодом приложения. С помощью диспетчера
задач можно изменить базовый приоритет
процесса. Внесенное изменение будет
действительно только в течение времени
работы процесса. При следующем запуске
процесс будет выполняться с базовым
значением приоритета. Для изменения
приоритета процесса выделите имя
процесса на вкладке Процессы и
щелкните на нем правой кнопкой мыши.
Затем в контекстном меню выберите пунктПриоритет (Set Priority) и укажите новый
уровень приоритета (рис. 9).
|
Рис. 9. |
Мониторинг
производительности системы
Для отслеживания производительности
системы откройте вкладку Быстродействие
(Performance) (рис. 10).
Для вывода на экран числового значения
(в процентах) процессорного времени, в
течение которого процессор работал в
режиме ядра, выберите команду Вывод
времени ядра (Show Kernel Times) в меню Вид.
Данное значение равно периоду времени,
в течение которого приложения пользовались
сервисами операционной системы. Остальную
часть времени процессор работал в режиме
пользователя, выполняя потоки в режиме
работы приложений.
Пользователи многопроцессорных систем
могут выбрать команду Загрузка ЦП
(CPU History) меню Вид, чтобы вывести график
занятости для каждого процессора
|
Рис. 10. |
Оснастка Просмотр
событий (Event
Viewer)
В операционной системе Windows 2000 событием
называется любое значительное
«происшествие» в работе системы
или приложения, о котором следует
уведомить пользователей. В случае
возникновения критических событий,
таких как переполнение диска сервера
или неполадки с электропитанием, на
экран монитора будет выведено
соответствующее сообщение. Остальные
события, которые не требуют немедленных
действий от пользователя, регистрируются
в системных журналах. Служба регистрации
робытдй в системных журналах активизируется
автоматически при каждом запуске системы
Windows 2000.
Окно оснастки
В системе Windows 2000 для просмотра системных
журналов можно использовать оснастку
Просмотр событий (группаАдминистрирование (Administrative Tools) на
панели управления). Эту оснастку можно
также запустить из окна оснасткиУправление компьютером (Computer
Management). На рис. 11 показан пример окна
оснасткиПросмотр событий для
контроллера домена.
|
Рис. 11. |
Примечание |
|
Оснастку |
С помощью оснастки Просмотр событийможно просматривать три типа
стандартных (основных) журналов:
Журнал |
|
Журнал |
|
Журнал |
Примечание |
|
Помимо |
Примечание |
|
Журнал |
Типы событий
В журналах регистрируются следующие
типы событий:
Ошибка |
|
Предупреждение |
|
Аудит |
|
Аудит |
Параметры событий
Информация о событиях содержит следующие
параметры:
Тип (Туре) |
Тип события |
Дата (Date) |
Дата генерации |
Время (Time) |
Время |
Источник |
Источник (имя программы, системного компонента |
Категория |
Классификация |
Событие |
Идентификатор |
Пользователь |
Имя учетной |
Компьютер |
Компьютер, |
Для просмотра дополнительной информации
о событии выберите в меню Действие
(Action) пунктСвойства (Properties) (либо
щелкните правой кнопкой мыши на названии
события и выберите пунктСвойства в
открывшемся контекстном меню). На панелиОписание (Description) приведена общая
информация о событии; На панелиДанные
(Data) отображаются двоичные данные,
которые могут быть представлены какБайты (Bytes) или как Слова (Words). Эти
данные могут быть интерпретированы
опытным программистом или техническим
специалистом службы поддержки, знакомым
с исходным кодом приложения.
Оснастка
Производительность
(Performance)
Для запуска оснастки Производительность
откройте на панели управления папкуАдминистрирование (Administrative Tools) и
выберите значокСистемный монитор.
Другой способ запуска — с помощью
командыПуск | Программы | Администрирование
| Системный монитор.
Оснастка Производительность на
самом деле представляет собой два
инструмента:
Собственно |
|
Оповещения |
System Monitor
С помощью System Monitor вы можете измерять
производительность вашего компьютера
или других компьютеров в сети:
Собирать и |
|
Просматривать |
|
Представлять |
|
Внедрять |
|
Создавать |
|
Создавать |
Объекты и счетчики
производительности
Система Windows 2000 получает информацию о
производительности от компонентов
компьютера. Системные компоненты в ходе
своей работы генерируют данные о
производительности. Такие компоненты
называются объектами производительности.
В операционной системе имеется ряд
объектов производительности, обычно
соответствующих главным аппаратным
компонентам, таким как память, процессоры
и т. д. Приложения могут также инсталлировать
свои объекты производительности.
Каждый объект производительности
предоставляет счетчики, которые собирают
данные производительности. Например,
счетчик Обмен страниц/сек (Pages/sec) объекта
Память (Memory) отслеживает степень
кэширования страниц.
Ниже перечислены объекты, которые
наиболее часто используются для
отслеживания работы системных компонентов:
Кэш (Cache) |
|
Процесс |
|
Логический |
|
Процессор |
|
Объекты |
|
Система |
|
Память |
|
Файл подкачки |
|
Поток |
|
Физический |
Внимание |
|
В Windows 2000 |
Для просмотра пояснений о том, какие
данные предоставляет конкретный счетчик,
нажмите кнопку Объяснение (Explain) в
диалоговом окнеДобавить счетчики
(Add Counters) (рис. 13).
Некоторые объекты (такие как Память и
Сервер) имеют только один экземпляр,
хотя другие объекты производительности
могут иметь множество экземпляров. Если
объект имеет множество экземпляров, то
вы можете добавить счетчики для
отслеживания статистики по каждому
экземпляру или для всех экземпляров
одновременно.
Например, если в системе установлены
несколько процессоров, то объект
Процессор будет иметь множество
экземпляров. Более того, если объект
поддерживает множество экземпляров,
то при объединении экземпляров в группу
появятся родительский экземпляр и
дочерние экземпляры, которые будут
принадлежать данному родительскому
экземпляру.
|
Рис. 13. |
Настройка
счетчиков
При выборе оснастки System Monitor в панели
результатов по умолчанию будет открыто
окно для построения графиков. Для
добавления счетчиков;
1. |
В панели |
2. |
В открывшемся |
3. |
В списке |
4. |
В списке |
5. |
Для мониторинга всех выбранных (Select instances |
6. |
Нажмите |
На рис. 14 приведен пример окна оснастки
с диаграммами, представляющими изменение
значений некоторых выбранных счетчиков.
Рис. 14.
Практическая
часть.
Задания по работе:
-
Сделать основной системой компьютера
ОС WindowsXP.
Для этого: правый клик на «Мой компьютер»
— закладка «Дополнительно» — «Загрузка
и восстановление». В открывшемся окне
выбрать ОС по умолчанию –WindowsXP, время отображения
списка указать 10 с. Привести в отчете
скриншот этого окна. -
Проверить уникальность задания имени
своего сервера. «Мой компьютер» —
закладка «Имя компьютера». -
Изучить раздел теории по консоли
управления Microsoft(MMC).
Открыть консоль на своем сервере.
Изучить работу с консолью. В отчете
привести скриншот консоли своего
сервера. -
Изучить раздел теории по управлению
учетными записями. Создать как минимум
три новых учетных записи с различными
правами и членством в разных группах.
Создать новую локальную группу. Включить
в нее все новые учетные записи. Убрать
одну из учетных записей из рабочей
группы. Вывести на экран и изучить
структуру профиля пользователя. Все
действия проиллюстрировать скриншотами. -
Изучить раздел теории по управлению
разрешениями на ресурсы. Создать как
минимум три каталога на диске D:
со вложенными папками и файлами
различного вида – текстовые документы,
рисунки, пр. Используя созданные ранее
учетные записи, назначить различные
разрешения на файлы и папки для разных
пользователей. Действия проиллюстрировать
скриншотами. -
Изучить раздел теории по мониторингу
производительности. Запустить несколько
приложений и открыть диспетчер задач.
Дать описание запущенным приложениям,
пользуясь данными диспетчера задач.
Привести скриншот диспетчера задач. -
Открыть закладку «Быстродействие».
Изучить ее. Привести в отчете скриншот
и описание. -
Открыть «Просмотр событий». Посмотреть
имеющиеся события, описать их. Привести
скриншоты. -
Открыть оснастку «Производительность».
Описать имеющиеся датчики и их показания.
Добавить новый счетчик. Привести
скриншоты.
Как выявить неисправность оперативной памяти на компьютере с Windows 10
Если на компьютере под управлением Windows 10 стали часто возникать сбои, случайные перезагрузки, зависания, ошибки BSOD, а приложения стали работать очень медленно, то определить причину проблемы может быть довольно сложно — она может быть связана с программным обеспечением или аппаратной частью.
Тем не менее, оперативная память — это то, что нужно проверить в первую очередь. Дело в том, что неисправный модуль памяти может привести не только к неправильному функционированию компьютера, но и к повреждению пользовательских файлов.
Несмотря на то, что в Интернете доступные сторонние инструменты для диагностики памяти, Windows 10 включает собственное средство проверки памяти для выявления потенциальных проблем с ОЗУ.
В этом руководстве приведены шаги по использованию Средства проверки памяти Windows для обнаружения неисправного модуля памяти.
Как диагностировать проблемы с памятью в Windows 10
- Откройте Панель управления (нажмите клавишу Windows и введите “панель управления”, затем выберите соответствующий вариант в результатах поиска).
- Выберите “Просмотр: Категория”, затем перейдите в раздел Система и безопасность.
- Выберите секцию Администрирование.
- Дважды щелкните по иконке Средство проверки памяти Windows.
Совет: в качестве альтернативы можете использовать сочетание клавиш Windows + R , затем введите mdsched.exe и нажмите OK для запуска инструмента.
- Выберите вариант Выполнить перезагрузку и проверку (рекомендуется). Инструмент также предлагает альтернативную опцию — выполнить проверку при следующем включении компьютера.
- После перезагрузки компьютера запуститься среда “Средство диагностики памяти Windows”, и тестирование будет проведено в режиме “Обычный”. В данном режиме инструмент проводит все проверки режима “Базовый”, а также тесты LRAND, Stride6 (с включенным кэшем), CHCKR3, WMATS+ и WINVC.
Вы можете использовать режим “Обычный” для тестирования памяти компьютера, а можете нажать клавишу F1 в любое время, чтобы открыть страницу “Параметры” для изменения настроек сканера.
На странице “Параметры” вы можете выбрать режим “Базовый”, который включает только тесты MATS+, INVC и SCHCKR (с включенным кэшем).
Также можно выбрать режим “Широкий”, который включает все доступные тесты режима “Обычный”, а также MATS+ (с отключенным кэшем), Stride38, WSCHCKR, WStride-6, CHCKR4, WCHCKR3, ERAND, Stride6 (с отключенным кэшем) и CHCKR8.
При необходимости вы можете перемещаться по различным параметрам с помощью клавиши TAB для изменения настроек кэша. Если вы отключите кэш, инструмент будет обращаться напрямую к данным в ОЗУ, что обеспечивает полноту теста. Кроме того, вы можете также установить число проходов сканера.
После того, как вы закончите выбирать свои параметры, просто нажмите клавишу F10, чтобы вернуться на главную страницу, и сканирование запустится автоматически.
Анализ результатов сканирования
- Откройте меню “Пуск”, выполните поиск eventvwr.exe и нажмите клавишу Enter, чтобы открыть приложение “Просмотр событий”.
- Раскройте пункт “Журналы Windows”.
- Щелкните правой кнопкой мыши по пункту “Система” и выберите опцию “Найти”.
- Введите MemoryDiagnostics-Results и нажмите кнопку “Найти далее”.
- Закройте диалоговое окно “Найти”.
- В окне приложения “Просмотр событий” дважды кликните по записи MemoryDiagnostics-Results и посмотрите сообщение. Если в описании указано “Память компьютера проверена с помощью средства проверки памяти Windows; ошибок не обнаружено”, значит можно исключить проблемы с оперативной памятью в качестве причины неполадок.
Если результат показывает одну или несколько ошибок, вы можете попробовать запустить тест памяти “Широкий” и перепроверить результаты. Если вы по-прежнему видите хотя бы одну ошибку на одном из модулей ОЗУ, вероятно планку памяти придется заменить.
Иногда, когда тест завершается сбоем, инструмент может указать, какой из модулей имеет проблему с результатами. Однако, если он не может предоставить эту информацию, вам может потребоваться вручную отключить и протестировать каждый модуль памяти, пока не выясните, какой модуль неисправен.
Хотя это руководство предназначено для пользователей Windows 10, средство проверки памяти Windows доступно для использования также в Windows 8.1 и Windows 7.
Источник
Анализ использования памяти с помощью Монитора ресурсов Windows 7
В своей прошлой статье «Как использовать Монитор ресурсов Windows 7 для эффективной диагностики» я рассказал о возможностях Монитора ресурсов Windows 7 (Resource Monitor), объяснил, как с его помощью наблюдать за распределением системных ресурсов между процессами и службами, а также упомянул, что его можно использовать для решения конкретных задач — например, для анализа расходования памяти. Именно об этом и пойдет речь в данной статье.
Прежде чем приступать к анализу, коротко расскажу о том, как Microsoft Windows 7 управляет памятью. После этого вам будет проще понять, какая информация представлена в Мониторе ресурсов Windows 7.
Диспетчер памяти Windows 7 создает виртуальную систему памяти, которая состоит из доступной физической RAM и файла подкачки на жестком диске. Это позволяет операционной системе выделять блоки памяти фиксированной длины (страницы) с последовательными адресами в физической и виртуальной памяти.
Запуск Монитора ресурсов Windows 7
Чтобы запустить Монитор ресурсов Windows 7, откройте меню «Пуск» (Start), введите в строке поиска «Resmon.exe» и нажмите [Enter]. В открывшемся окне выберите вкладку «Память» (Memory, рис. A).
На вкладке «Память» есть таблица «Процессы» (Processes, рис. B), в которой перечислены все запущенные процессы, а сведения об используемой памяти разбиты на несколько категорий.
В колонке «Образ» (Image) указывается имя исполняемого файла процесса. Процессы, запущенные приложениями, узнать очень легко — например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad). Процессы с именем «svchost.exe» представляют различные службы операционной системы. Название службы указывается в скобках рядом с именем процесса.
В колонке «ИД процесса» (PID) указывается номер процесса — уникальное сочетание цифр, позволяющее идентифицировать запущенный процесс.
В столбце «Завершено» (Commit) указывается объем виртуальной памяти в килобайтах, зарезервированный системой для данного процесса. Сюда входит и используемая физическая память, и сохраненные в файле подкачки страницы.
Графа «Рабочий набор»
В графе «Рабочий набор» (Working Set) указывается объем физической памяти в килобайтах, используемой процессом в данный момент времени. Рабочий набор складывается из общей и частной памяти.
В колонке «Общий» (Shareable) указан объем физической памяти в килобайтах, которую данный процесс использует совместно с другими. Использование одного сегмента памяти или страницы подкачки для родственных процессов позволяет сэкономить место в памяти. При этом физически сохраняется только одна копия страницы, которая затем сопоставляется с виртуальным адресным пространством других процессов, которые к ней обращаются. Например, все процессы, инициированные системными библиотеками DLL — Ntdll, Kernel32, Gdi32 и User32 — используют общую память.
В столбце «Частный» (Private) указывается объем физической памяти в килобайтах, используемой исключительно данным процессом. Именно это значение позволяет определить, сколько памяти нужно тому или иному приложению для работы.
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
Таблица «Физическая память»
В таблице «Процессы» приводятся детальные сведения о распределении памяти между отдельными процессами, а таблица «Физическая память» (Physical Memory) дает общую картину использования RAM. Ее ключевой компонент — уникальная гистограмма, показанная на рис. C.
Каждая секция гистограммы обозначена собственным цветом и представляет определенную группу страниц памяти. По мере использования системы, диспетчер памяти в фоновом режиме перемещает данные между этими группами, поддерживая тонкий баланс между физической и виртуальной памятью для обеспечения эффективной работы всех приложений. Давайте рассмотрим гистограмму поподробнее.
Секция «Зарезервированное оборудование»
Слева расположена секция «Зарезервированное оборудование» (Hardware Reserved), обозначенная серым цветом: это память, выделенная на нужды подключенного оборудования, которую оно использует для взаимодействия с операционной системой. Зарезервированная для оборудования память заблокирована и недоступна диспетчеру памяти.
Обычно объем памяти, выделенной оборудованию, составляет от 10 до 70 Мбайт, однако этот показатель зависит от конкретной конфигурации системы и в некоторых случаях может достигать нескольких сотен мегабайт. К компонентам, влияющим на объем зарезервированной памяти, относятся:
• BIOS;
• компоненты материнской платы — например, усовершенствованный программируемый контроллер прерываний ввода/вывода (APIC);
• звуковые карты и другие устройства, осуществляющие ввод/вывод с отображением на память;
• шина PCI Express (PCIe);
• видеокарты;
• различные наборы микросхем;
• флеш-накопители.
Некоторые пользователи жалуются, что в их системах для оборудования зарезервировано ненормально много памяти. Мне с такой ситуацией сталкиваться не приходилось и потому я не могу ручаться за действенность предложенного решения, но многие отмечают, что обновление версии BIOS позволяет решить проблему.
Секция «Используется» (In Use, рис C), обозначенная зеленым цветом, представляет количество памяти, используемой системой, драйверами и запущенными процессами. Количество используемой памяти рассчитывается, как значение «Всего» (Total) за вычетом суммы показателей «Изменено» (Modified), «Ожидание» (Standby) и «Свободно» (Free). В свою очередь, значение «Всего» — это показатель «Установлено» (Installed RAM) за вычетом показателя «Зарезервированное оборудование».
Оранжевым цветом выделена секция «Изменено» (Modified), в которой представлена измененная, но не задействованная память. Фактически она не используется, но может быть в любой момент задействована, если снова понадобится. Если память не используется достаточно давно, данные переносятся в файл подкачки, а память переходит в категорию «Ожидание».
Секция «Ожидание», обозначенная синим цветом, представляет страницы памяти, удаленные из рабочих наборов, но по-прежнему с ними связанные. Другими словами, категория «Ожидание» — это фактически кэш. Страницам памяти в этой категории присваивается приоритет от 0 до 7 (максимум). Страницы, связанные с высокоприоритетными процессами, получают максимальный приоритет. Например, совместно используемые процессы обладают высоким приоритетом, поэтому связанным с ними страницам присваивается наивысший приоритет в категории «Ожидание».
Если процессу требуются данные с ожидающей страницы, диспетчер памяти сразу же возвращает эту страницу в рабочий набор. Тем не менее, все страницы в категории «Ожидание» доступны для записи данных от других процессов. Когда процессу требуется дополнительная память, а свободной памяти недостаточно, диспетчер памяти выбирает ожидающую страницу с наименьшим приоритетом, инициализирует ее и выделяет запросившему процессу.
В категории «Свободно», обозначенной голубым цветом, представлены страницы памяти, еще не выделенные ни одному процессу или освободившиеся после завершения процесса. В этой секции отображается как еще не задействованная, так и уже освобожденная память, но на самом деле, еще не задействованная память относится к другой категории — «Нулевые страницы» (Zero Page), которая так называется, потому что эти страницы инициализированы нулевым значением и готовы для использования.
О проблеме свободной памяти
Теперь, когда вы в общих чертах представляете, как работает диспетчер памяти, ненадолго остановимся на распространенном заблуждении, связанном с системой управления памятью в Windows 7. Как видно из рис. C, секция свободной памяти — одна из самых маленьких в гистограмме. Тем не менее, ошибочно на этом основании полагать, будто Windows 7 потребляет чересчур много памяти и что система не может нормально работать, если свободной памяти так мало.
На самом деле, все совсем наоборот. В контексте принятого в Windows 7 подхода к управлению памятью, свободная память бесполезна. Чем больше памяти задействовано, тем лучше. Заполняя память до максимума и постоянно перемещая страницы из одной категории в другую с использованием системы приоритетов, Windows 7 повышает эффективность работы и предотвращает попадание данных в файл подкачки, не давая ошибкам отсутствия страницы в памяти замедлить быстродействие.
Хотите понаблюдать систему управления памятью Windows 7 в действии? Перезагрузите компьютер и сразу же после запуска откройте Монитор ресурсов Windows 7. Перейдите на вкладку «Память» и обратите внимание на соотношение секций в гистограмме физической памяти.
Затем начните запускать приложения. По мере запуска следите за изменением гистограммы. Запустив как можно больше приложений, начните закрывать их по одному и наблюдайте, как изменяется соотношение секций в гистограмме физической памяти.
Проделав этот экстремальный эксперимент, вы поймете, как Windows 7 управляет памятью на вашем конкретном компьютере, и сможете использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти в нормальных условиях повседневной работы.
Нравится ли вам идея использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти? Поделитесь своим мнением в комментариях!
Источник
Вытесняющие/невытесняющие алгоритмы.
В случае вытесняющего алгоритма операционная система в любой момент времени может прервать выполнение текущего потока и переключить процессор на другой поток. В невытесняющих алгоритмах поток, которому предоставлен процессор, только сам решает, когда передать управление операционной системе.
Алгоритмы с квантованием.
Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера 1 .
Алгоритмы с приоритетами.
Каждому потоку назначается приоритет (priority) – целое число, обозначающее степень привилегированности потока. Операционная система при наличии нескольких готовых к выполнению потоков выбирает из них поток с наибольшим приоритетом.
В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.
- Тип многозадачности для приложения DOS
- Гарантии обслуживания
- Планирование процессов переднего плана
- Назначение файла подкачки
- Процессы Р1, Р2, Р3 выделяют 100, 20, 80 Мб памяти. В системе 128Мб ОП. Каков размер занятой памяти в файле подкачки. Какой размер файла подкачки.
- Что такое «страничная ошибка»?
Прерывание 14 —
Страничная ошибка
(#PF): Intel386 …
Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:
- элемент таблицы страниц или каталога страниц, используемый при трансляции адреса, имеет нулевой бит присутствия
, т.е. нужная таблица страниц или страница не присутствует в физической памяти; - процедура не располагает уровнем привилегий
, достаточным для доступа к выбранной странице или пытается произвести запись в страницу, защищенную от записи для текущего уровня привилегий.
Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).
Прерванная программа после устранения причин, вызвавших страничную ошибку (например, загризки страницы в физическую память), может быть продолжена без каких-либо дополнительных корректировок.
Если страничная ошибка была вызвана в связи с нарушением привилегий страничной защиты, то бит доступа (A) в соответствующем элементе каталога страниц устанавливается. Поведение бита доступа в соответствующем элементе таблиц страниц для этого случая не регламентируется в процессорах Intel и может быть разным в различных моделях.
- Высокая интенсивность ошибок страниц говорит о:
Ненадежности программы
Ненадежности оперативной памяти
Иное: пояснить
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы
. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
- Как формируется приоритет потока в Windows
Приоритеты
В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. «Синхронизация потоков»). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.
В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).
Рис. 6.2.
Приоритеты потоков
Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов
. Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:
- реального времени (REALTIME_PRIORITY_CLASS) — 24
- высокий (HIGH_PRIORITY_CLASS) — 13
- выше нормы (ABOVE_NORMAL_PRIORITY_CLASS) 10
- нормальный (NORMAL_PRIORITY_CLASS) — 8
- ниже нормы (BELOW_NORMAL_PRIORITY_CLASS) — 6
- и неработающий (IDLE_PRIORITY_CLASS) 4
Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:
Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока
Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4
). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.
Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. «Функционирование менеджера памяти») и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.
Похожая информация.
ы подключили новое устройство, а оно не спешит работать, или старое устройство перестало функционировать, или делает свою работу некорректно. Что же делать в этих случаях? Переустанавливать всё? Хлопотно, да и не всегда в этом есть необходимость. Как же узнать в чём причина и как её устранить? Очень просто. Дело в том, что в ОС семейства Windows,
и не только, имеется, некий
Диспетчер устройств,
на самом деле очень нужный и полезный менеджер, если его можно так назвать. Вот он то, нам и поможет выяснить в чём причина неполадки, а моя шпаргалка — устранить проблему. Итак, в выше упомянутом
Диспетчере устройств
остаються следы ошибок в работе устройств в виде кодов. Зная код ошибки, нетрудно установить причину неполадки. Для непосвящённых, коды — это всего лишь непонятные и ничего не говорящие цифры. Но знающему пользователю, они могут сказать о многом. Постараюсь, насколько мне это удасться, пролить свет на эту тему.
Для просмотра ошибок устройств, нам прежде всего необходимо войти в сам Диспетчер устройств. Делается это так. Войдите в
Панель управления
из меню
Пуск (
можно,
Мой
компьютер
, правой клавишей —
Свойства
—
Диспетчер устройств,
а можно и через задание команды в
выполнить
, но зачем всё усложнять). Если мы входим через
Панель
управления
, то путь таков:
Система — Оборудование — Диспетчерн устройств
. Выберем, войдя в меню
Диспетчер устройств
, тип интересующего нас устройства (клавиатура, принтер, модем и т.д.), щёлкнем на нём дважды, в результате увидим входящие в этот тип устройства. Выбирем нужное нам устройство и дважды щёлкнем на нём. Смотрим графу на вкладке О
бщие, Состояние устройства.
Если имеется проблема с работой устройства, то она будет отображена здесь в виде кода ошибки. Итак мы видим цифры и числа. Что же они обозначают. Ниже я привожу полный список ошибок, с кратким описанием ошибки и возможных способах устранения. Красным цветом выделен код ошибки, синим её описание и чёрным устранение.
Код 1
Проблема с настройкой устройства, не правильные настройки или отсутствует драйвер.
Нажмите кнопку
Обновить драйвер
, для запуска мастера
Обновление оборудования
. Если вообще нет драйвера — установите его.
Код 3
Повреждён драйвер устройства, как вариант не хватает оперативной памяти для корректной работы устройства.
1.
Удалим повреждённый драйвер и установим новый. Для этого: Свойства — Драйвер — Удалить, далее следуем указаниям мастера. Перезагрузка. Открываем опять
Диспетчер устройств
—
Действие
—
Обновить конфигурацию оборудования
и следуем указаниям мастера. 2. Если проблема в нехватке виртуальной памяти, закроем работающие приложения, что бы разгрузить память. Что бы проверить состояние памяти нам нужно попасть в
Диспетчер задач
, для этого жмём сочетание клавиш
Ctrl+Shift+Esc.
Настройки виртуальной памяти мы можем посмотреть ещё щёлкнув правой клавишей
Мой компьютер
—
Свойства — Дополнительно — Быстродействие — Настройки (Параметры)
. Вы можете попробовать увеличить файл подкачки (как это делается, я описывал в одной из предыдущих статей моего блога ), но это далеко не радикальная мера. Придётся вам увеличивать оперативную память. Как это делается — отдельная тема, выходящая за рамки этого поста.
Код 10
В разделе реестра имеется соответствующий устройству параметр
FailReasonString,
значение этого параметра и отображается в данных ошибки, то есть, если параметра, как такового нет, то появляется код ошибки, проще говоря — запуск устройства не возможен.
Обновите драйвер, как указано выше. Или установите более новый.
Код 12
Нет запаса ресурсов, необходимых для этого устройства.
Отключите другие работающие устройства, хотя бы одно, для этого воспользуйтесь мастером устранения неполадок, который, если вы будете следовать его указаниям, отключит конфликтное устройство. (В кратце напомню: Свойства — Общие — Устранение неполадок.)
Код 14
Требует перезагрузки ПК для работы этого устройства.
Код 16
Невозможно выявить ресурсы, которые необходимы для работы устройства, устройство настроено не полностью.
Нужно назначить устройству дополнительные ресурсы. Но это можно сделать без проблем если устройство относится к
Plug and Play.
Свойства — Ресурсы.
Если в списке ресурсов есть ресурс с знаком?, выбираем его, чтобы назначить выбранному устройству. Если ресурс не возможно изменить, жмём
Изменить параметры
, если эта функция недоступна, снимаем галочку с
Автоматическая настройка
Код 18
Переустановите драйвер для устройства.
Пробуем обновить драйвер или удалить и сделать, как в примере с
кодом 3.
Код 19
Недостаточные сведения в реестре о настройках устройства, либо настройки повреждены.
Запустите
Мастер устранения неполадок
и следуйте его указаниям, не поможет — переустановите устройство, как было сказано выше. (код 3). Либо, если не поможет, загрузите
Последнюю удачную конфигурацию.
Если и это не поможет — вам нужна помощь специалиста, так, как необходимо редактировать системный реестр. Неимея знаний и опыта, самостоятельно, там вам делать нечего, любой сисадмин вам это подтвердит. Знающий и умеющий, сам знает, как это сделать, без меня. А неопытному, лучше и не пробовать. Реестр — сердце операционной системы и проводить операции на нём должен только опытный специалист, или под его руководством. Ни в коей мере не хочу ни кого обидеть, но если вы не работали с системным реестром и если вам дорог ваш компьютер, мой совет — забудьте туда дорогу. Я пишу не для профессионалов, им это не нужно, а для среднего пользователя. Конечно, я могу написать, как и что там делать, но это будет объяснение на пальцах и если вы, в результате малейшей ошибки, повредите свой компьютер, буду виноват я. Мне это совсем не нужно, да и вам то же.
Код 21 Устройство удаляется из системы, то есть операционная система пытается удалить устройство, но процесс ещё не завершён.
Выдержите паузу в несколько секунд и нажмите клавишу
Код 22 Устройство отключено.
Необходимо включить устройство.
Действие — Включить
и следуем дальнейшим инструкциям.
Код 24 Устройства нет или неправильно установлено, сбой в работе драйвера, может быть устройство было подготовлено к удалению.
Удалите устройство и установите заново.
Код 28 Нет драйвера.
Установите драйвер. Для этого нужно Обновить драйвер, действия, как в инструкции к Коду 1.
Код 29
Отключено устройство
. Необходимо разрешить работу устройства в
настройках
BIOS,
изучите инструкции к использованию устройства.
Код 31
Системе не удалось загрузить драйверы к этому устройству
. Обновите драйверы, как описывалось выше.
Код 32
Драйвер к этому устройству отключен в системном реестре
. Удалите и по-новой установите драйвер (описывалось выше)
Код 33
Операционная система не может определить ресурсы для данного
устройства
. Настройте устройство или замените его.
Код 34
Операционная система не может определить настройки
устройства
. Изучите прилагаемую документацию к оборудованию и настройте конфигурацию вручную на вкладке Ресурсы.
Код 35
Микропрограмма ПК неимеет нужных сведений для правильной
работы устройства
. Необходимо обновить
BIOS.
За инструкциями, как это сделать обратитесь к поставщику, а лучше воспользоваться услугами опытного мастера.
Код 36
Для работы устройства требуется прерывание
PCI,
а устройство настроено на прерывание
ISA,
или наоборот
. Необходимо изменить настройки
BIOS,
обратитесь к опытному мастеру.
Код 37
Операционная система неопознаёт драйвер к этому устройству
. Переустановите драйвер (описывалось выше).
Код 38
ОС не может загрузить драйвер для устройства, так как,
предыдущая версия драйвера осталась в памяти
. Необходимо перезагрузить ПК. Запустите мастер Устранения неполадок, если он не запустился (Свойства — Общие — Устранение неполадок) и следуйте указаниям мастера. После обязательная перезагрузка.
Код 39
ОС не может загрузить драйвер устройства. Драйвер повреждён
или его нет вовсе
. Переустановите драйвер, как было описано выше.
Код 40
Нет доступа к оборудованию, так, как нет информации в системном реестре или информация содержит ошибку
. Переустановите драйвер.
Код 41
Необнаружено устройство
. Запустите мастер Устранения неполадок (описано выше), если не помогло обновите конфигурацию оборудования (см. выше) или обновите драйвер. Если нет, установите более новую версию драйвера.
Код 42
В системе уже имеется такой драйвер. То есть имеются два разных устройства с одинаковым именем, возможно из-за ошибки
. Перезагрузите ПК.
Код 43
Остановка работы устройства из-за возникших проблем в его работе
. Запустите мастер Устранения неполадок и следуйте его указаниям.
Код 44
Приложение или служба остановили работу устройства
. Перезагрузите ПК.
Код 45
Устройство не подключено
. Подключите устройство.
Код 46
Такая ошибка появляется, если операционная система завершает свою работу. Ни чего не нужно делать, при следующем запуске ОС всё будет работать.
Код 47 Устройство было подготовлено для безопасного удаления, но ещё не удалено (например флеш)
. Извлеките устройство, затем подключите снова, перезагрузите ПК.
Код 48
Устройство, вернее его програмное обеспечение, заблокировано
. Обновите драйвер, или установите новый.
Код 49
Устройство не может быть запущено, так, как имеет большой объём системного куста реестра, который превышает допустимые параметры реестра
. Удалите из реестра устройства которые не используются. Можно сделать так: Диспетчер устройств — Вид — Показать скрытые устройства. Здесь вы увидите скрытые устройства, которые не подключены к вашему ПК. Выберите те устройства которые хотите удалить, кликнете Свойства для устройства — Драйвер — Удалить, далее следуйте указаниям мастера и в завершении перезагрузка ПК.
Пособие по удалению любых вирусов с ПК собственноручно. Все способы удаления вирусов реально работающие и проверенные на практике, пошаговая инструкция с илюстрациями — просто и доступно даже для школьника + видеоуроки + программа ultraiso
для создания загрузчиков+ полезные ссылки на инструменты в борьбе с вирусами. Скачать архив
Распределение
памяти в Windows9xи вWindowsNT.
Монитор ресурсов Windows 7. Изучение пунктов
и вкладок, связанных с памятью.
Использование монитора ресурсов Windows
7 для наблюдения за распределением
памяти. Увеличение объема файла подкачки
(виртуальной памяти). Проверка памяти
средствами Windows.
3.1. Распределение памяти в
Windows 9x
ОС Windows 9x — это 32-разрядные
многопотоковые ОС с вытесняющей
многозадачностью и графическим
пользовательским интерфейсом. Для своей
загрузки они используют MS-DOS 7.0, которая
обеспечивает два режима работы процессора
– реальный (в файле MSDOS.SYS в секции
прописано BootGUI=0) и защищённый
(BootGUI=1). Защищённый режим устанавливается
непосредственно перед загрузкой Windows
9x, в результате чего процессор начинает
управлять памятью с использованием
страничного механизма преобразования
виртуальных адресов в физические.
Область виртуального адресного
пространства состоит из 4-х килобайтных
страниц, которые размещаются в оперативной
памяти или на диске.
Младшие адреса виртуального
адресного пространства используются
совместно всеми процессами для обеспечения
совместимости с драйверами устройств
реального времени, резидентными
программами Windows и др. Это с одной стороны
удобно, но, с другой, снижает надёжность
(одно из основных качеств ОС), т.к. любой
процесс может запортить компоненты,
расположенные по этим адресам.
Каждая прикладная 32-разрядная
Windows-программа выполняется в своём
адресном пространстве, однако доступ
к нужным адресам возможен, т.е. организация
виртуальных адресов не использует всех
аппаратных средств защиты, заложенных
в микропроцессор. 16-разрядные программы
разделяют общее адресное пространство
и также уязвимы друг перед другом. Модель
памяти Windows 9x представлена на рис.3.1.
Рис. 3.1. Распределения ОП в Windows
9x
Нижние 64 Кб ОП недоступны
32-разрядным программам, но 16-разрядные
программы могут записывать сюда свои
данные. Адреса ниже 4 Мб отображаются в
адресное пространство каждой прикладной
программы и совместно используются
всеми процессами. Это делает эту область
незащищенной от случайной записи.
Минимально необходимый объем
памяти для функционирования Windows 9х
составляет 4 Мб, однако практически при
таком объеме памяти работать невозможно.
Страничный файл
, с помощью
которого реализуется механизм виртуальной
памяти, расположен в каталоге Windows и
имеет переменный размер, изменяемый
при необходимости самой системой. Его
размеры могут быть заданы с помощью
системных средств (Панель управления
→ Система → Быстродействие → Файловая
система), либо заданы в секции файла
SYSTEM.INI – строки с указанием диска и имени
файла:
Pagingfive=c:PageFile.sys
MinPagingFileSize=65536
(64 Мб)
MaxPagingFileSize=262144
(256 Мб)
Первая и вторая строки определяют
имя файла и его размещение, а две последние
– начальный и предельный размер
страничного файла в Кб.
Минимальный размер файла подкачки
можно получить, запустив программу
SysMon (системный монитор) и, выбрав в
качестве необходимых параметров размер
файла подкачки и объем свободной памяти,
оценить потребности в памяти наиболее
часто используемых приложений.
3.2. Распределение памяти в
Windows NT
Отличия схемы распределения от
Windows 9х сводятся к следующему:
1) более серьезное использование
аппаратных средств защиты памяти,
предусмотренных в микропроцессоре;
2) все системные программные
модули расположены в собственных
виртуальных адресных пространствах и
доступ прикладных программ к ним
невозможен.
Распределение адресного
пространства в Windows NT представлено на
рис. 3.2.
Рис. 3.2. Распределения ОП в Windows
NT
Прикладным программам выделяется
2 Гб локального (собственного) линейного
(неструктурированного) адресного
пространства (первые 64 Кб недоступны).
Они изолированы друг от друга и могут
общаться друг с другом только через
буфер обмена (clipboard), либо через механизмы
DDE (Dynamic Data Exchange – динамический обмен
данными) и OLE (Object Linking and Embedding – связь и
внедрение объектов).
В верхней части 2 Гб-й области
размещается код системных DLL (динамически
связанные библиотеки), выполняющих роль
сервер-процессов. Они проверяют значения
параметров запросов, исполняют запрошенную
функцию и пересылают результаты назад
в адресное пространство вызывающей
программы.
В интервале адресов 2-4 Гб
располагаются системные (низкоуровневые)
компоненты Windows (т.е. самого высокого
уровня защиты от несанкционированного
доступа: ядро, планировщик потоков,
диспетчер памяти).
Для 16-разрядных прикладных
Windows-программ реализуются сеансы WOW
(Windows On Windows) в режиме вытесняющей
многозадачности индивидуально в
собственных адресных пространствах
или совместно в разделяемом адресном
пространстве.
При запуске приложения создаётся
процесс со своей информационной
структурой, в рамках которого запускается
задача. Она может запускать другие
задачи. В результате чего организуется
мультизадачный режим работы.
Управление памятью (выделение,
резервирование, освобождение, подкачка)
производится диспетчером виртуальной
памяти VMM (Virtual Memory Manager). Каждая виртуальная
страница переносится на физическую
страницу − страничный фрейм (page frame),
заполненный в исходном состоянии нулями
(это основное требование стандарта на
системы безопасности уровня С2,
определяющее невозможность использования
их предыдущего содержимого другими
процессами). Место для выгрузки страницы
резервируется в файле подкачки
Pagefile.sys, представляющим собой
зарезервированный блок дискового
пространства.
Вся память Windows NT подразделяется
на зарезервированную
(для динамического
использования процессами при выполнении
задач),выделенную
(для выгрузки
которой резервируется в Pagefile.sys) идоступную
(остальная часть свободной
памяти).
Виртуальная память в Windows
Самая частая причина замедления
работы системы под управлением Windows —
заполнение физической памяти. При этом
Windows начинает так называемую «подкачку»
(paging) — перемещение блоков кода и данных
программ (каждый такой блок называется
страницей — page) из физической памяти на
жесткий диск. Обращение к файлу подкачки
время от времени — нормальное явление,
не ухудшающее производительность
системы, но частые запросы данных из
файла на диске могут заметно снизить
общую скорость работы системы. Эта
проблема становится особенно заметной
при переключении между несколькими
программами, активно использующими
память, на компьютере, который не содержит
достаточного количества физической
памяти. В результате диск почти постоянно
находится в работе, потому что система
пытается «перекачать» данные с
него в память и обратно.
Если общий размер выделенной
памяти превышает общий объем физической
памяти, Windows приходится «перекачивать»
страницы между быстрой оперативной
памятью и гораздо более медленной
виртуальной памятью в файле подкачки,
что приводит к замедлению скорости
системы.
В процессе установки Windows XP файл
подкачки автоматически создается в
корневой папке на том же диске, где
расположены системные файлы Windows. Размер
файла подкачки определяется, исходя из
объема физической памяти в системе. По
умолчанию минимальный размер файла
подкачки в 1,5 раза больше, чем объем
физической памяти, а максимальный размер
— в 3 раза больше. Файл подкачки можно
увидеть в окне Проводника, если включить
режим отображения скрытых и системных
файлов (рис. 3.3).
Рис. 3.3. Включение режима отображения
скрытых и системных файлов
Обычно операционная система
Windows сама устанавливает оптимальный
объем виртуальной памяти и ее хватает
для большинства задач, но если на
компьютере выполняются приложения,
требующие много памяти, то объем
виртуальной памяти можно изменить.
Для этого нужно выполнить
следующую последовательность действий:
1. Войдите в систему под учетной
записью из группы Администраторы и
откройте окно «Панель управления –
Система».
2. На вкладке «Дополнительно»
нажмите кнопку «Параметры» в разделе
«Быстродействие» (рис. 3.4).
3. В диалоговом окне «Параметры
быстродействия» выберите вкладку
«Дополнительно» и нажмите кнопку
«Изменить» (рис. 3.5) для отображения
диалогового окна «Виртуальная память»,
которое показано на рис. 3.6 для WindowsXPи на рис. 3.7 дляWindows7.
Текущие параметры файла подкачки
отражены в поле «Общий размер файла
подкачки на всех дисках».
4. Выберите любой диск из списка
в верхней части диалогового окна, чтобы
настроить параметры этого диска.
Можно изменить перечисленные
ниже параметры:
— Особый размер
. Укажите
значение в полеИсходный размер
для
задания начального размера файла
pagefile.sys на указанном диске (в мегабайтах).
В полеМаксимальный размер
введите
число не меньшее значения в полеИсходный
размер
, но не превышающее 4096 Мбайт (4
Гбайт).
— Размер по выбору системы.
Выберите этот пункт для включения
динамического управления размером
файла подкачки для данного диска. Этот
вариант следует выбирать, если вы не
хотите изменять предлагаемые Windows по
умолчанию параметры.
— Без файла подкачки
. Используйте
для всех дисков, на которых вам не нужен
файл подкачки. Удостоверьтесь, что файл
подкачки есть хотя бы на одном диске.
5. После внесения каких-либо
изменений нажмите Задать
для записи
изменений.
6. Повторите этапы 4 и 5 для прочих
дисков (при необходимости). Нажмите ОК
для закрытия диалогового окна после
завершения работы с ним.
Рис. 3.4. Кнопка «Параметры» для
перехода к просмотру и/или
изменению параметров виртуальной
памяти
Рис. 3.5. Кнопка «Изменить» для
перехода к изменению параметров
виртуальной памяти в WindowsXP(слева) и вWindows7
Рис. 3.6. Окно просмотра и настройки
размера виртуальной памяти
Рис. 3.7. Окно просмотра и настройки
размера виртуальной памяти в Windows7
Если на компьютере установлено
несколько физических дисков, лучше
всего разместить файл подкачки на самом
быстром
, причем предпочтительно, если
системные файлы Windows будут находиться
на другом диске. Еще лучше разделить
файл подкачки на несколькофизических
дисков, поскольку контроллер дисков
может параллельно обрабатывать несколько
запросов на запись и чтение данных.
Не пытайтесь разместить файл
подкачки на несколько логических дисках
одного физического диска!!!
Если в системе есть один жесткий
диск, разбитый на разделы C, D и E, а файл
подкачки распределен на несколько
разделов, то система может даже
замедлиться, поскольку в такой конфигурации
магнитным головкам жесткого диска
приходится считывать данные из нескольких
областей, а не подряд из одной области
диска.
При уменьшении минимального или
максимального размера файла подкачки
и при создании нового файла подкачки
на диске систему необходимо перезагрузить
для того, чтобы изменения вступили в
силу. Увеличение размера файла подкачки
обычно не требует перезагрузки компьютера.
Если у вас очень много физической
памяти, может возникнуть соблазн вовсе
отключить файл подкачки. Не делайте
этого!
!!
Windows XP была разработана так, что
файл подкачки используется для выполнения
некоторых задач ядра, поэтому некоторые
программы третьих фирм могут выдавать
сообщение о нехватке памяти при попытке
полностью отключить виртуальную память.
Windows не использует файл подкачки,
пока он не понадобится, поэтому отключение
виртуальной памяти не приведет к
повышению производительности!!!
Windows может динамически увеличивать
размер файла подкачки при необходимости.
Эта функция работает только при выборе
пункта «Размер по выбору системы
»,
а также при задании максимального
размера, превышающего текущий размер
файла подкачки.
Исходя из опыта работы с предыдущими
версиями Windows некоторые пользователи
стараются создавать файл подкачки
фиксированного объема с равными исходным
и максимальным размерами. Теоретически,
это должно поднимать производительность,
поскольку исключает возможность
фрагментации файла подкачки. Однако
подсистема подкачки разработана таким
образом, что на практике файл занимает
только большие блоки дискового
пространства, что делает фрагментацию
минимальной. Можно заметить небольшое
падение производительности в тот момент,
когда Windows увеличивает размер файла
подкачки, но это однократная операция,
которая никак не влияет на производительность
в среднем.
Контроль использования памяти
в Windows
Самый простой способ узнать,
сколько оперативной памяти используется
в данный момент времени — открыть
Диспетчер задач (Task Manager), нажав
++, и перейти на вкладку
«Быстродействие» (Performance) (рис.3.8).
Подробное описание информации вкладки
«Быстродействие» для WindowsXPпредставлено в табл.
3.1.
Таблица 3.1. Расшифровка данных
Диспетчера задач
Вкладка «Быстродействие» для
Windows7 имеет значимые
нововведения по сравнению с соответствующей
вкладкой Диспетчером задач Windows XP.
Число в графе «Всего» (Total) раздела
«Физическая память» (Physical Memory) указывает
на общий объем оперативной памяти для
данной системы. В графе «Кэшировано»
(Cached) указано количество физической
памяти, которая недавно использовалась
системными ресурсами. Она остается в
кэше на случай, если снова понадобится
системе, но доступна для других процессов.
В новой графе «Доступно» (Available) указывается
количество неиспользуемой в данный
момент физической памяти, а в графе
«Свободно» (Free) — количество памяти,
которая используется кэшем, но не
содержит полезной информации.
В разделе «Память ядра» (Kernel
Memory) содержатся две графы — «Выгружаемая»
(Paged) и «Невыгружаемая» (Nonpaged). В сумме
они указывают, сколько памяти использует
ядро. Выгружаемая — это виртуальная
память, а невыгружаемая — физическая.
В разделе «Система» (System) появились
графы «Дескрипторов» (Handles) и «Потоков»
(Threads), связанные с составными компонентами
процессов. В графе «Дескрипторов»
указывается количество идентификаторов
объектов (дескрипторов), которые
используются запущенными в данный
момент процессами. В графе «Потоков»
указано число подпроцессов, запущенных
в рамках более крупных процессов. Цифра
в графе «Процессов» (Processes), естественно,
указывает на общее количество запущенных
процессов, которые можно увидеть на
вкладке «Процессы».
В графе «Время работы» (Up Time)
указано, сколько времени прошло с
последнего запуска компьютера. В графе
«Выделено» (Commit) содержится информация
о файле подкачки. Первая цифра указывает
на общий объем используемой в данный
момент физической и виртуальной памяти,
а вторая — на общий объем памяти для
данного компьютера в принципе.
Еще более подробную информацию
можно получить, нажав кнопку «Монитор
ресурсов» и выбрав вкладку «Память»
(рис. 3.9).
Рис. 3.9. Вкладка «Память» окна
монитора ресурсов Windows7
На вкладке «Память» есть таблица
«Процессы», в которой перечислены все
запущенные процессы, а сведения об
используемой памяти для каждого процесса
разбиты на несколько категорий
(рис.3.10).
Рис. 3.10. Таблица «Процессы»
В колонке «Образ
» указывается
имя исполняемого файла процесса.
Процессы, запущенные приложениями,
узнать очень легко — например, процесс
«Winword.exe» со всей очевидностью
принадлежит текстовому редакторуWord.
Процессы с именем «svchost.exe» представляют
различные службы операционной системы.
Название службы указывается в скобках
рядом с именем процесса.
В колонке «ИД процесса
»
указывается номер процесса — уникальное
сочетание цифр, позволяющее идентифицировать
запущенный процесс.
В столбце «Завершено
»
указывается объем виртуальной памяти
в килобайтах, зарезервированный системой
для данного процесса. Сюда входит и
используемая физическая память, и
сохраненные в файле подкачки страницы.
В графе «Рабочий набор
»
указывается объем физической памяти в
килобайтах, используемой процессом в
данный момент времени. Рабочий набор
складывается из общей и частной памяти.
В колонке «Общий
» указан
объем физической памяти в килобайтах,
которую данный процесс использует
совместно с другими. Использование
одного сегмента памяти или страницы
подкачки для родственных процессов
позволяет сэкономить место в памяти.
При этом физически сохраняется только
одна копия страницы, которая затем
сопоставляется с виртуальным адресным
пространством других процессов, которые
к ней обращаются. Например, все процессы,
инициированные системными библиотеками
DLL — Ntdll, Kernel32, Gdi32 и User32 — используют
общую память.
В столбце «Частный
» указывается
объем физической памяти в килобайтах,
используемой исключительно данным
процессом. Именно это значение позволяет
определить, сколько памяти нужно тому
или иному приложению для работы.
В графе «Ошибок отсутствия
страницы в памяти/сек.
» указано среднее
за последнюю минуту количество ошибок
отсутствия страницы в памяти в секунду.
Если процесс пытается использовать
больше физической памяти, чем доступно
в данный момент времени, система
записывает часть данных из памяти на
диск — в файл подкачки. Последующее
обращение к данным, сохраненным на диск,
и называется ошибкой отсутствия страницы
в памяти.
При запуске приложений и работе
с файлами диспетчер памяти отслеживает
объем рабочего набора для каждого
процесса и фиксирует запросы на
дополнительные ресурсы памяти. По мере
увеличения рабочего набора процесса,
диспетчер соотносит эти запросы с
потребностями ядра и других процессов.
Если доступного адресного пространства
недостаточно, диспетчер уменьшает объем
рабочего набора, сохраняя данные из
памяти на диск.
В дальнейшем при чтении этих
данных с диска возникает ошибка отсутствия
страницы в памяти. Это вполне нормально,
но если ошибки происходят одновременно
для разных процессов, системе требуется
дополнительное время для чтения данных
с диска. Слишком частые ошибки отсутствия
страницы в памяти, соответственно,
снижают быстродействие системы. Это
проявляется в неожиданном замедлении
работы всех приложений, которое затем
также неожиданно прекращается. Замедление
связано с активным перераспределением
данных между физической памятью и
подкачкой.
Отсюда следует вывод: если ошибки
отсутствия страницы в памяти для того
или иного процесса происходят слишком
часто и притом регулярно, компьютеру
не хватает физической памяти.
Чтобы было удобнее наблюдать за
процессами, вызывающими частые ошибки
отсутствия страницы в памяти, можно
отметить их флажками. При этом выбранные
процессы переместятся наверх списка,
а в графике ошибок отсутствия страницы
в памяти будут представлены оранжевой
кривой.
Стоит учитывать, что распределение
памяти зависит от целого ряда других
факторов, и мониторинг ошибок отсутствия
страницы в памяти — не лучший и не
единственный способ выявления проблем.
Тем не менее, он может послужить неплохой
отправной точкой для наблюдения.
В таблице «Процессы» приводятся
детальные сведения о распределении
памяти между отдельными процессами, а
таблица «Физическая память» дает общую
картину использования RAM. Ее ключевой
компонент — уникальная гистограмма,
показанная на рис. 3.11.
Рисунок
3.11. Гистограмма в таблице «Физическая
память» позволяет составить общее
представление о распределении памяти
в Windows 7
Каждая секция гистограммы
обозначена собственным цветом и
представляет определенную группу
страниц памяти. По мере использования
системы, диспетчер памяти в фоновом
режиме перемещает данные между этими
группами, поддерживая тонкий баланс
между физической и виртуальной памятью
для обеспечения эффективной работы
всех приложений. Рассмотрим гистограмму
поподробнее.
Слева расположена секция
«Зарезервированное оборудование
»,
обозначенная серым цветом: это память,
выделенная на нужды подключенного
оборудования, которую оно использует
для взаимодействия с операционной
системой. Зарезервированная для
оборудования память заблокирована и
недоступна диспетчеру памяти. Обычно
объем памяти, выделенной оборудованию,
составляет от 10 до 70 Мбайт, однако этот
показатель зависит от конкретной
конфигурации системы и в некоторых
случаях может достигать нескольких
сотен мегабайт.
К компонентам, влияющим на объем
зарезервированной памяти, относятся:
Компоненты материнской платы
— например, усовершенствованный
программируемый контроллер прерываний
ввода/вывода (APIC);
Звуковые карты и другие
устройства, осуществляющие ввод/вывод
с отображением на память;
Шина PCI Express (PCIe);
Видеокарты;
Различные наборы микросхем;
Флеш-накопители.
Секция «Используется
»,
обозначенная зеленым цветом, представляет
количество памяти, используемой системой,
драйверами и запущенными процессами.
Количество используемой памяти
рассчитывается, как значение «Всего
»
за вычетом суммы показателей «Изменено
»,
«Ожидание
» и «Свободно
». В свою
очередь, значение «Всего
» — это
показатель «Установлено
» за вычетом
показателя «Зарезервированное
оборудование
».
Когда в Windows запускается процесс, многие из отображающих образы файлов EXE и DLL страниц могут уже находиться в памяти, поскольку они используются другими процессами. Пригодные для записи страницы образов помечены как «копирование при записи», чтобы их можно было совместно использовать до того момента, когда их понадобится модифицировать. Если операционная система узнает уже выполнявшийся ЕХЕ, то она может записать шаблон страничных ссылок (при помощи технологии, которую компания Microsoft называет Super-Fetch). Эта технология старается заблаговременно подкачать много нужных страниц (хотя процесс еще не получил по ним страничные ошибки). Это снижает латентность запуска приложений (чтение страниц с диска накладывается на выполнение инициализационного кода образов). Эта технология повышает производительность вывода на диск, поскольку дисковым драйверам легче организовать операции чтения (чтобы уменьшить необходимое время поиска). Этот процесс упреждающей подкачки страниц используется и во время загрузки системы, а также когда фоновое приложение выходит на передний план и при выходе системы из гибернации.
Упреждающая подкачка страниц поддерживается диспетчером памяти, но реализована она как отдельный компонент системы. Подкачиваемые страницы не вставляются в таблицу страниц процесса, вместо этого они вставляются в резервный список, из которого могут быть быстро вставлены в процесс (без обращения к диску).
Неотображенные страницы несколько отличаются — они не инициализируются путем чтения из файла. Вместо этого при первом обращении к неотображенной странице диспетчер памяти предоставляет новую физическую страницу (убедившись, что ее содержимое заполнено нулями, — из соображений безопасности). При последующих страничных ошибках неотображенную страницу может понадобиться найти в памяти или ее придется прочитать из файла подкачки.
Подкачка по требованию в диспетчере памяти управляется страничными ошибками. При каждой ошибке происходит прерывание в ядро. Затем ядро строит машинно независимый дескриптор (который сообщает о происшедшем) и передает его в диспетчер памяти исполнительного уровня. Диспетчер памяти затем проверяет обращение на действительность. Если давшая сбой страница попадает в зафиксированную область, то он ищет адрес в списке VAD и находит (или создает) элемент таблицы страниц процесса. В случае совместно используемой страницы диспетчер памяти использует элемент таблицы страниц прототипов (связанный с объектом сегмента) для заполнения нового элемента таблицы страниц процесса.
Формат элемента таблицы страниц различается в зависимости от архитектуры процессора. Для процессоров х86 и х64 элементы отображаемой страницы показаны на рис. 11.17. Если элемент помечен как действительный, то его содержимое интерпретируется аппаратным обеспечением (чтобы виртуальный адрес можно было преобразовать в правильную физическую страницу). Неотображенные страницы также имеют свои элементы, но они помечены как недействительные (invalid), и аппаратное обеспечение игнорирует остальную часть элемента. Программный формат несколько отличается от аппаратного и определяется диспетчером памяти. Например, для неотображенной страницы (которая должна быть размещена и обнулена до использования) этот факт отмечен в элементе таблицы страниц.
Два важных бита элемента таблицы страниц обновляются непосредственно аппаратным обеспечением. Это бит доступа (А) и бит «измененная» (D). Эти биты отслеживают использование данного отображения страницы для доступа к странице и возможность модифицирования страницы при этом доступе. Это реально повышает производительность системы, поскольку диспетчер памяти может использовать бит доступа для реализации подкачки по схеме наиболее давнего использования (Least- Recently Used (LRU)). Принцип LRU состоит в том, что те страницы, которые дольше всех не используются, имеют самую низкую вероятность повторного использования в ближайшее время. Бит доступа позволяет диспетчеру памяти определить, что к странице был произведен доступ. Бит «измененная» говорит диспетчеру памяти о том, что страница, возможно, была модифицирована (или, что более важно, она не была модифицирована). Если страница не была модифицирована с момента считывания с диска, то диспетчеру памяти не нужно записывать ее содержимое на диск (перед тем, как использовать ее для чего-то другого).
В обеих архитектурах, х86 и x64, используется элемент таблицы страниц размером 64 бита (см. рис. 11.17).
Каждая страничная ошибка может быть отнесена к одной из пяти категорий:
1. Страница не зафиксирована.
2. Попытка обращения к странице с нарушением разрешений.
3. Попытка модификации страницы типа «копирование при записи».
1. Необходимо увеличение стека.
2. Страница зафиксирована, но в данное время не отображена.
Первый и второй случаи — это ошибки программирования. Если программа пытается использовать адрес, который не имеет действительного отображения, или пытается выполнить недопустимую операцию (наподобие попытки записи в страницу «только для чтения»), это называется нарушением доступа (access violation) и обычно приводит к завершению процесса. Нарушение доступа часто является результатом недопустимых значений указателей, в том числе результатом обращения к памяти, которая была освобождена и откреплена от процесса.
Третий случай имеет такие же симптомы, что и второй (попытка записи в страницу «только для чтения»), но его обработка иная. Поскольку страница была помечена как «копирование при записи», то диспетчер памяти не выдает нарушение доступа. Вместо этого он создает закрытую копию страницы для текущего процесса, а затем возвращает управление тому потоку, который пытался выполнить запись в страницу. Поток повторяет операцию записи, которая теперь завершится без страничной ошибки.
Четвертый случай происходит тогда, когда поток помещает значение в свой стек и попадает на страницу, которая еще не была выделена. Диспетчер памяти распознает это как особый случай. Пока есть место в зарезервированных под стек виртуальных страницах, диспетчер памяти будет поставлять новые страницы, обнулять их и отображать в процесс. Когда поток возобновит выполнение, он повторит попытку доступа, и на этот раз она будет успешной.
И наконец, пятый случай — это нормальная страничная ошибка. Однако она имеет несколько подвариантов. Если страница отображена на файл, то диспетчер памяти должен просмотреть ее структуры данных (такие, как таблица страниц прототипов, связанная с объектом сегмента), чтобы быть уверенным в том, что в памяти нет ее копии. Если копия есть (например, в другом процессе, в резервном списке либо в списке модифицированных страниц), то он просто сделает ее совместно используемой (возможно, что для этого ему придется пометить ее как страницу «копирование при записи», если изменения совместно использовать не предполагается). Если копии еще нет, то диспетчер памяти выделит свободную физическую страницу и подготовит ее для копирования в нее страницы файла с диска, если только в этот момент не осуществляется перенос с диска другой страницы (тогда нужно лишь подождать, пока этот перенос не завершится).
Если диспетчер памяти может обработать страничную ошибку, находя нужную страницу в памяти (а не считывая ее с диска), то такая ошибка называется мягкой ошибкой (soft fault). Если нужна копия с диска, то это жесткая ошибка (hard fault). Мягкие ошибки гораздо дешевле, они мало влияют на производительность приложения (по сравнению с жесткими ошибками). Мягкие ошибки могут происходить потому, что совместно используемая страница уже была отображена на другой процесс, либо нужна просто новая обнуленная страница, либо нужная страница была удалена из рабочего набора процесса, но запрашивается повторно до того, как ее повторно использовали. Мягкие ошибки могут возникать также из-за того, что страницы были сжаты для эффективного увеличения размера физической памяти. Для большинства конфигураций центрального процессора память и ввод-вывод в текущих системах эффективнее сжимать, вместо того чтобы тратиться на дорогостоящий ввод-вывод (с точки зрения производительности и энергозатрат), требующий чтения страницы с диска.
Когда физическая страница больше не отображается таблицей страниц ни одного из процессов, она попадает в один из трех списков: свободных, модифицированных или резервных. Те страницы, которые никогда больше не понадобятся (такие, как страницы стека завершающегося процесса), освобождаются немедленно. Те страницы, которые могут снова дать страничную ошибку, попадают либо в список модифицированных, либо в список резервных (в зависимости от того, был ли бит «измененная» установлен для какого-либо элемента таблицы страниц, который отображал эту страницу с момента ее последнего считывания с диска). Страницы из модифицированного списка будут в конечном итоге записаны на диск, а затем перемещены в список резервных.
Диспетчер памяти может выделять страницы по мере необходимости (используя список либо свободных, либо резервных страниц). Перед размещением страницы и копированием с диска диспетчер памяти всегда проверяет списки резервных и модифицированных страниц, чтобы проверить, нет ли уже этой страницы в памяти. Схема опережающей подкачки в Windows преобразует будущие жесткие ошибки в мягкие (путем чтения страниц, которые могут понадобиться, и помещения их в список резервных страниц). Диспетчер памяти и сам выполняет небольшой объем опережающей подкачки — он обращается к группам последовательных страниц (а не к отдельным страницам). Дополнительные страницы немедленно размещаются в списке резервных страниц. Это не является расточительством, поскольку издержки диспетчера памяти гораздо меньше, чем стоимость выполнения операций ввода-вывода. Чтение целого кластера страниц чуть дороже, чем чтение одной страницы.
Элементы таблицы страниц на рис. 11.17 относятся к номерам физических (а не виртуальных) страниц. Для обновления элемента таблицы страниц (и каталога страниц) ядру нужно использовать виртуальные адреса. Windows отображает таблицы страниц и каталоги страниц для текущего процесса на виртуальное адресное пространство ядра при помощи элемента self-map в каталоге страниц (рис. 11.18). Отображая элемент каталога страниц на каталог страниц (карта self-map), мы получаем виртуальные адреса, которые можно использовать для ссылки на элементы каталога страниц (рис. 11.18, а) и на элементы таблицы страниц (рис. 11.18, б). Карта self-map занимает 8 Мбайт виртуальных адресов ядра для каждого процесса (на процессорах х86). Для простоты на рисунке показан элемент x86 self-map для 32-разрядных PTE-записей (Page-Table Entries). На самом деле Windows использует 64-разрядные PTE-записи, поэтому система может воспользоваться более чем 4 Гбайт физической памяти. С 32-разрядными PTE-записями элемент self-map использует в каталоге страниц только одну PDE- запись (Page-Directory Entry) и поэтому занимает только 4 Мбайт адресов, а не 8 Мбайт.
Какое допустимое количество ошибок страницы физической памяти?
Есть небольшой сервер под управлением Windows Server 2016.
После замены планки памяти наблюдаю в мониторе ресурсов много «ошибок страницы физической памяти»:
Допустимы ли такие значения, или планка битая и лучше её заменить?
-
Вопрос задан
-
23361 просмотр
Это не имеет никакого отношения к повреждению оперативной памяти.
Это часть механизма свопирования — ошибка означает, что при попытке обратиться к памяти выяснилось, что это участок сброшен из оперативной памяти на диск.
Пригласить эксперта
Войдите, чтобы написать ответ
-
Показать ещё
Загружается…