Приоритет операций ввода вывода в windows vista резерв

Это — первая статья серии, посвященной нововведениям в ядре ОС Windows Vista. В этой работебудут затронуты изменения в области процессов, потоков и ввода-вывода. Следующие статьи будут посвящены управлению памятью, запуску и завершению работы, надежности и восстановлению, а также безопасности.
Это — первая статья серии, посвященной нововведениям в ядре ОС Windows Vista. В этой работебудут затронуты изменения в области процессов, потоков и ввода-вывода. Следующие статьи будут посвящены управлению памятью, запуску и завершению работы, надежности и восстановлению, а также безопасности.

Данная статья охватывает изменения только ядра ОС Windows Vista™, в особенности файла Ntoskrnl.exe и связанных с ним компонентов. Следует помнить, что многие существенные изменения в ОС Windows Vista не затрагивают собственно ядро системы, и следовательно, здесь рассмотрены не будут. Это касается усовершенствований оболочки (например интегрированный поиск на рабочем столе), работы в сети (например новый стек IPv6 и двусторонний брандмауэр) и графической модели нового поколения (Aero™ Glass, платформа Windows® Presentation Foundation, диспетчер окон рабочего стола и новая модель графических драйверов). Также не будет рассмотрена новая инфраструктура драйверов пользовательского режима (UMDF) и режима ядра (KMDF) ОС Windows, поскольку ее можно устанавливать и на более ранние версии этой операционной системы.

Счетчик циклов центрального процессора

ОС Windows Vista содержит множество усовершенствований в области процессов и потоков, включая использование счетчика циклов центрального процессора для более равномерного выделения ресурсов, а также новую службу Multimedia Class Scheduler Service (MMCSS), способствующую безошибочному воспроизведению содержимого мультимедийными приложениями.

Все версии ОС Windows NT® до Windows Vista включительно выполняют подпрограммы прерывания интервального таймера примерно каждые 10 или 15 мс, в зависимости от аппаратной платформы. Данная подпрограмма обновляет статистику загрузки центрального процессора (ЦП) потоком, который ею прерван, так как если бы этот поток выполнялся весь интервал, хотя в действительности выполнение потока могло начаться перед самым завершением данного интервала. Далее поток мог формально получить ресурсы ЦП, но не получить возможности выполняться, поскольку вместо этого могли быть выполнены подпрограммы аппаратного или программного прерывания .

Подсчет времени на основе интервалов может подходить средствам диагностики, сообщающим загрузку ЦП процессами и потоками, но использование этого способа планировщиком потоков может приводить к нерациональному распределению ресурсов ЦП. По умолчанию клиентские версии ОС Windows позволяют выполнение потоков длительностью до 2 тактов (до 6 тактов на переднем плане). Однако на самом деле поток может совсем не получить времени ЦП, или же получить до 6 циклов (до 18 циклов на переднем плане), в зависимости от его поведения и прочей активности в системе.

Рисунок 1 демонстрирует случай нерационального распределения ресурсов, которое может произойти, если два потока с одинаковым приоритетом готовы к выполнению одновременно. Поток A выполняется до завершения следующего временного интервала, когда планировщик предполагает, что он выполнялся в течение всего интервала, и поэтому решает, что очередь потока A закончилась. Более того, потоку A засчитывается еще и прерывание, произошедшее во время его выполнения. На следующий интервал планировщик отдает предпочтение потоку B, который выполняется в течение полного интервала.

Внутреннее устройство ядра ОС Windows Vista: Часть 1

Рисунок 1 Неравномерное выделение ресурсов потокам

В ОС Windows Vista планировщик отслеживает точное количество циклов ЦП, в течение которых выполняется поток, с помощью регистра счетчика циклов современных процессоров. Определив, сколько циклов может выполнить процессор на протяжении интервала времени, планировщик может точнее раздавать ресурсы ЦП. К тому же, планировщик ОС Windows Vista не засчитывает выполнение прерывания во время выполнения потока. Это означает, что поток в ОС Windows Vista всегда получит, по крайней мере, свою очередь выполнения, не превышающую один дополнительный временной интервал, что обеспечивает более справедливое выделение ресурсов и предсказуемое поведение приложений. На рис. 2 показана реакция ОС Windows Vista на ситуацию, изображенную на рис. 1, выделением обоим потокам, по меньшей мере, по одному временному интервалу выполнения.

Внутреннее устройство ядра ОС Windows Vista: Часть 1

Рисунок 2 Планирование распределения ресурсов на основе циклов в ОС Windows Vista

Врезка «Наблюдение за загрузкой ЦП процессом» демонстрирует, как можно наблюдать за использование процессом циклов ЦП с помощью программы Process Explorer.

Служба Multimedia Class Scheduler Service

Пользователи ожидают от мультимедийных приложений, таких как проигрыватели аудио и видео, ровного и безошибочного воспроизведения. Однако из-за занятости ЦП другими параллельно выполняющимися приложениями, например антивирусными программами, индексированием содержимого или даже почтовым клиентом могут возникать неприятные задержки и прерывания. Для обеспечения более качественного воспроизведения в ОС Windows Vista вводится служба MMCSS, управляющая приоритетами мультимедийных потоков для выполнения процессором.

Мультимедийное приложение, например проигрыватель Windows Media®, регистрируется в службе MMCSS с помощью новых функций прикладного интерфейса, отображающих его мультимедийные характеристики, которые должны совпадать с характеристиками, перечисленными по именам в следующем разделе реестра:

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentversionMultimediaSystemProfileTasks

Разделы различных задач указывают, какое предпочтение получают потоки, связанные с разными типами мультимедиа, при выделении ресурсов ЦП и графического процессора (хотя управление ресурсами графического процессора в ОС Windows Vista не реализовано). На рис. 3 показано содержание одного из разделов задач реестра сразу после установки ОС Windows Vista, хотя сторонние разработчики могут добавлять и собственные определения задач.

Внутреннее устройство ядра ОС Windows Vista: Часть 1

Рис. 3 Определение аудиозадачи в планировщике классов мультимедиа.

Служба MMCSS, реализованная в файле %SystemRoot%System32Mmcss.dll и запускаемая в процессе работы узла службы (Svchost.exe), имеет поток управления приоритетами, который выполняется с приоритетом 27. (Приоритеты потоков в ОС Windows находятся в диапазоне от 0 до 31). Этот поток повышает приоритет зарегистрированных потоков мультимедиа до диапазона, связанного со значением Scheduling Category раздела реестра данной задачи, как показано на рисунке 4.

Внутреннее устройство ядра ОС Windows Vista: Часть 1

В системе Windows приоритеты потоков от 16 и выше относятся к диапазону приоритетов реального времени, что выше приоритета любых потоков в системе (за исключением рабочих потоков диспетчера памяти, которые выполняются с приоритетом 28 или 29). Права на увеличение приоритета, необходимые для установки приоритетов потоков реального времени, есть только у учетных записей с правами администратора, например у локальной системной учетной записи, в которой выполняется служба MMCSS.

При проигрывании звукового файла проигрыватель Windows Media регистрирует потоки задачи аудио, а при проигрывании файла видео — потоки задачи воспроизведения. Служба MMCSS повышает приоритет всех потоков, заявивших о доставке потоковых данных, одновременно, когда они выполняются в процессе, которому принадлежит окно переднего плана, и если в разделе определения их задачи значение BackgroundOnly установлено в True.

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

HKLMSoftwareMicrosoftWindows NTCurrentversionMultimediaSystemProfileSystemResponsiveness

По умолчанию это составляет 20 процентов, т.е. служба MMCSS отслеживает загрузку ЦП и не разрешает выполнение потоков с повышенным приоритетом в течение времени свыше 8 мс из 10, если ресурсы ЦП запрашиваются другими потоками. Чтобы потоки мультимедиа не мешали другим потокам в течение остальных 2 мс, планировщик понижает их приоритет до диапазона от 1 до 7.

Повышение приоритета потоков службой MMCSS можно увидеть на врезке «Наблюдение за повышением приоритета службой MMCSS».

Файловые символические ссылки

Изменения, относящиеся к операциям ввода-вывода в ОС Windows Vista, включают в себя файловые символические ссылки, более эффективную обработку завершения операций ввода-вывода, полную поддержку отмены операций ввода-вывода и поддержку приоритетов операций ввода-вывода.

Одной из функций файловой системы, которой по мнению многих недоставало в системе NTFS, является поддержка символических ссылок на файлы (или, как они называются в UNIX-системах, гибких ссылок), которая появилась в ОС Windows Vista. В версии NTFS для Windows 2000 были представлены символические ссылки на каталоги, которые назывались соединениями каталогов, что позволяло создавать каталоги, указывающие на другие каталоги, но до выхода ОС Windows Vista файловая система NTFS поддерживала только жесткие ссылки на файлы.

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

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

Символическую ссылку можно создать из командной строки с помощью команды Mklink. Встроенная команда вывода содержимого каталога командной строки обозначает символические ссылки пометкой

и показывает конечный объект в квадратных скобках, как показано на рисунке 5. Проводник Windows также понимает символические ссылки и отображает их со стрелкой как ярлыки. Конечный объект ссылки можно видеть в Проводнике, если добавить к окну обзора столбец Link Target (Цель ссылки).

Внутреннее устройство ядра ОС Windows Vista: Часть 1

Рисунок 5 Создание символической ссылки с помощью команды Mklink

Завершение и отмена операций ввода-вывода

В систему ввода-вывода введено множество внутренних изменений, которые могут улучшить производительность серверных приложений. Как правило, такие приложения используют объект синхронизации, называемый портом завершения, для ожидания завершения асинхронных запросов ввода-вывода. До выхода ОС Windows Vista при завершении операции ввода-вывода инициировавший данную операцию поток выполнял задачу завершения ввода-вывода, что приводило к переключению в процесс, к которому принадлежал данный поток, и прерыванию прочих действий. Затем система ввода-вывода обновляла состояние порта завершения, что приводило к возобновлению потока, ожидавшего изменения состояния порта.

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

Вероятно, одним из наиболее заметных нововведений в систему ввода-вывода с точки зрения конечного пользователя является поддержка в ОС Windows Vista отмены синхронных операций ввода-вывода. Всем, кто когда-либо выполнял команду net view или пытался обратиться к общему ресурсу на выключенном удаленном компьютере под управлением ОС Windows XP или Windows Server® 2003, знакомы проблемы с операциями ввода-вывода, которые невозможно отменить: команда или окно проводника не отвечали до истечения времени ожидания сети. Приложению не оставалось ничего иного, кроме как ожидать ошибки выполнения операции, поскольку не существовало способа оповестить драйвер устройства, выполняющий операцию ввода-вывода, о том, что данную операцию выполнять уже не нужно.

Большинство операций ввода-вывода в ОС Windows Vista можно отменить, включая операцию открытия файла, которую используют команда Net View и Проводник. Однако для того, чтобы приложения отвечали на запросы пользователя об отмене операции ввода-вывода, их необходимо обновить, и многие служебные программы ОС Windows Vista, взаимодействующих с устройствами, имеющими интервал ожидания, уже поддерживают данную возможность. Например, в диалоговых окнах открытия и сохранения файлов, применяющихся практически во всех приложениях ОС Windows, включая сторонние приложения, теперь во время отображения содержимого папки доступна кнопка Cancel (Отменить). Синхронные операции ввода-вывода команды Net также могут быть отменены нажатием комбинации клавиш Ctrl+C.

В преимуществах возможности отмены операций ввода-вывода легко убедиться, открыв окно командной строки в ОС Windows Vista и набрав команду:

net view (\nonexistentmachine)

Команда не будет отвечать до тех пор, пока ОС Windows будет пытаться связаться с несуществующей системой, но ее можно будет прервать, воспользовавшись сочетанием клавиш Ctrl+C. В ОС Windows XP комбинация клавиш Ctrl+C не действовала и команда не отвечала до истечения срока ожидания сети.

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

Приоритет операций ввода-вывода

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

ОС Windows Vista обеспечивает два новых способа распределения приоритетов для предоставления предпочтения операциям ввода-вывода переднего плана: приоритеты на отдельные операции ввода-вывода и резервирование полосы пропускания ввода-вывода. Система ввода-вывода в ОС Windows Vista обеспечивает внутреннюю поддержку приоритетов операций ввода-вывода, как показано на рисунке 6, но используются только четыре приоритета (возможно, следующие версии ОС Windows будут поддерживать приоритет High (Высокий)).

Внутреннее устройство ядра ОС Windows Vista: Часть 1

Рисунок 6.

Приоритетом по умолчанию для операций ввода-вывода является Medium (Средний), а диспетчер памяти использует приоритет High (Высокий) для записи на диск содержимого памяти в ситуациях нехватки памяти для освобождения ОЗУ для других данных и кода. Планировщик задач ОС Windows устанавливает приоритет по умолчанию для задач ввода-вывода Low (Низкий), а написанные для ОС Windows Vista приложения, осуществляющие фоновую обработку, указывают приоритет Very Low (Очень низкий). Все фоновые операции в ОС Windows Vista, включая сканирование Windows Defender (Защитник ОС Windows) и индексирование поиска на рабочем столе, используют приоритет ввода-вывода Very Low (Очень низкий).

Драйвер устройства класса системного хранения (%SystemRoot%System32Classpnp.sys) обеспечивает приоритеты ввода-вывода, которые автоматически применяются к операциям ввода-вывода, ориентированных на большинство устройств хранения. Этот и другие драйверы хранения помещают в свои очереди операции ввода-вывода с приоритетом Medium (Средний) до операций с приоритетами Low (Низкий) и Very Low (Очень низкий), но при этом выполняют, как минимум, одну операцию с приоритетом Low (Низкий) или Very Low (Очень низкий) в секунду, чтобы не препятствовать выполнению фоновых процессов. Данные, прочитанные операциями с приоритетами Low (Низкий) и Very Low (Очень низкий), также приводят к тому, что диспетчер кэша производит запись изменений на диск незамедлительно, не откладывая, и обходит логику упреждающего чтения для операций чтения, что в противном случае приводило бы к упреждающему чтению из файлов, открытых для чтения. Пример операций с приоритетом Very Low (Очень низкий), выводимых программой Process Monitor, можно увидеть на боковой врезке «Просмотр операций ввода-вывода с приоритетом Very Low (Очень низкий)».

Поддержка резервирования полосы пропускания в ОС Windows Vista удобна для применения приложениями воспроизведения данных мультимедиа, и проигрыватель Windows Media пользуется ею наряду с повышением приоритетов службой MMCSS для почти безошибочного воспроизведения локального содержимого. Приложение проигрывателя мультимедиа запрашивает у системы ввода-вывода гарантии возможности чтения данных на указанной скорости и если устройство может предоставлять данные с указанной скоростью, а существующие ограничения резервирования это позволяют, оно предоставляет приложению данные о допустимой скорости и объеме операций ввода-вывода. Система ввода-вывода станет обслуживать другие операции только в том случае, если возможно удовлетворить требования приложений, зарезервировавших целевое устройство хранения.

В завершение следует упомянуть о еще одном изменении в системе ввода-вывода, относящемся к объему операций ввода-вывода. Со времен первой версии ОС Windows NT диспетчер памяти и система ввода-вывода ограничивали объем данных, обрабатываемых отдельным запросом ввода-вывода для устройства хранения, 64 КБ. Таким образом, даже если запрос ввода-вывода приложения был значительно больше, он разбивался на отдельные запросы, не превышающие 64 КБ. Каждая операция ввода-вывода подразумевала дополнительные затраты ресурсов на переключение в режим ядра и инициирование передачи ввода-вывода на устройство хранения, поэтому в ОС Windows Vista объем операций ввода-вывода больше не ограничивается. Некоторые компоненты пользовательского режима ОС Windows Vista подверглись модификациям для того, чтобы воспользоваться преимуществами большего объема операций ввода-вывода, включая функцию копирования в Проводнике и команду командной строки Copy (Копировать), которые теперь оперируют операциями ввода-вывода объемом 1 МБ.

Что дальше

Были рассмотрены две области, в которых ядро ОС Windows Vista подверглось улучшениям. Более подробное рассмотрение будет представлено в следующем издании книги Windows Internals (Внутренняя структура ОС Windows) (в соавторстве с Дэвидом Соломоном), которое должно выйти одновременно с ОС Windows Server под кодовым названием «Longhorn». В следующей статье данной серии будет продолжено знакомство с новым ядром и обсуждены вопросы управления памятью, а также запуска и завершения работы системы.

Марк Руссинович занимает должность технического специалиста в подразделении Platform and Services корпорации Майкрософт. Он один из соавторов книги Microsoft Windows Internals (Внутренняя структура ОС Microsoft Windows ), издательство Microsoft Press, 2004, и часто выступает с докладами на конференциях для IT-специалистов и разработчиков. Он был принят на работу в корпорацию Майкрософт после недавнего приобретения ею компании Winternals Software, одним из основателем которой он являлся. Он также создал веб-узел Sysinternals, на котором им были опубликованы утилиты Process Explorer, Filemon и Regmon.

Из February 2007 выпуска

TechNet Magazine.

Оцените статью: Голосов

From Wikipedia, the free encyclopedia

Windows Vista introduced a number of new I/O functions to the Microsoft Windows line of operating systems. They are intended to shorten the time taken to boot the system, improve the responsiveness of the system, and improve the reliability of data storage.

I/O subsystem[edit]

Vista modifies the behavior of asynchronous I/O operations. With the new asynchronous I/O APIs, a thread, different from the one that issued the I/O request, can be notified when the operation completes. With this, a single thread can issue all the I/O requests, and then switch to a different worker thread. If this thread is the one that handles the data after the I/O request completes, then a thread-switch, which causes a performance hit, may be avoided. Windows Vista also introduces synchronous I/O cancellation. During a synchronous I/O request, the application is blocked until the request is serviced or fails. In Windows Vista the application may issue a cancellation request. Applications that cancel the operation on user feedback may prefer to enable user feedback during the time the issuing thread is suspended for usability.

Windows Vista also implements I/O scheduling as prioritized I/O.[1] Disk I/O requests in Windows Vista are assigned priorities; a higher priority request is given preferential treatment, over a request that has a lower priority, during the execution of the request. Windows Vista defines five priority classes – Very Low, Low, Normal, High and Critical. By default I/O requests are assigned Normal priority. Windows Vista also allows reservation of bandwidth on a per-application basis during disk access; this aims to guarantee the required throughput rate to the application when it accesses the disk. Both these features are used by Windows Media Player with respect to media playback.[2] Disk Defragmenter, SuperFetch, Windows Defender, Windows Search, and applications that run at startup all use prioritized I/O.[3]

Prior to Windows Vista, all I/O requests were capped at 64 KB; thus larger operations had to be completed in chunks. In Windows Vista, there is no limit on the size of I/O requests. This means an entire I/O operation can be completed by issuing fewer requests, which in turn may lead to higher performance. Windows Explorer and the Command Prompt’s copy command have been modified to issue 1 MB requests.[2]

ReadyBoost[edit]

ReadyBoost, makes PCs running Windows Vista more responsive by using flash memory on a USB drive (USB 2.0 or 3.0 only), SD card, Compact Flash, or other form of flash memory, in order to boost system performance. When such a device is plugged in, the Windows Autoplay dialog offers an additional option to use it to speed up the system; an additional «ReadyBoost» tab is added to the drive’s properties dialog where the amount of space to be used can be configured. Windows ReadyBoost is also available for Windows 7 and Windows 10. Most flash memory devices are formatted in the FAT32 format. This will need to be changed if one wants to properly utilize a larger flash device for ReadyBoost. But if one activates ReadyBoost using Windows Autoplay reformatting the device will become impossible until ReadyBoost for that device is disabled. [4]

ReadyDrive[edit]

ReadyDrive (codenamed Piton[5][6]) is a feature of Windows Vista that enables Windows Vista computers equipped with a hybrid drive or other flash memory caches (such as Intel Turbo Memory) to boot up faster, resume from hibernation in less time, and preserve battery power.[7] Hybrid hard drives are a type of hard disk that integrates non-volatile flash memory with a traditional hard drive. The drive-side functionality is expected to be standardized in ATA-8. When a hybrid hard drive is installed in a Windows Vista machine, the operating system will display a new «NV Cache» property tab as part of the drive’s device properties within the Device Manager.[8]

It was reported in eWeek that the technology is not being utilized to full extent due to lack of hybrid drive-specific drivers[9] for the hybrid drives and instead delegated the job to the device manufacturers.[9] However, Microsoft rebuffed the suggestion that it was not providing specialized drivers for hybrid systems.[10] Also, in June 2006, David Morgenstern wrote an article for eWeek suggesting that ReadyDrive might sacrifice data integrity for speed and battery savings.[11] Documentation from Microsoft, however, claims that a copy of the data is always maintained on the hard disk, so there is no question of data loss even if the flash cache fails.[11][12]

SuperFetch[edit]

SuperFetch is a technology that pre-loads commonly used applications into memory to reduce their load times. It is extended from the «prefetcher» function in Windows XP. SuperFetch attempts to load commonly used libraries and application components into memory before they are required. It does so by continually analyzing application behavior and usage patterns, e.g. what applications are typically used in the morning after logon.[13] The cache memory is marked with low priority, meaning that if another process needs the memory, it will be given up.

By default, the necessary files are loaded into main memory, but using a feature called ReadyBoost, Windows Vista and Windows 7 can use alternative storage such as USB flash drives, thereby freeing up main memory. Although hard disks may have higher sequential data transfer rates, flash drives can be faster for small files or non-sequential I/O because of their short random seek times.

ReadyBoot is a feature that complements SuperFetch by analysing only core boot processes (such as drivers) in order to speed up a computer’ startup. [14]

In Windows 10, the SuperFetch was renamed to SysMain.

Offline Files[edit]

Offline Files is a feature of Windows, introduced in Windows 2000, which maintains a client-side cache of files shared over a network. It locally caches shared files marked for offline access, and uses the cached copy whenever the network connection to the remote files is interrupted. Windows Vista Business, Enterprise and Ultimate editions contain significant improvements to Offline Files. Beginning with Windows Vista, whenever the connection is restored, all open file handles to the cached copy are redirected to the remote version, without waiting for the cached files to be synchronized.[15] This transition from online to offline and back is transparent to the clients using the file. The local copy is automatically synchronized with the remote copy, to reflect the changes made on either copy of the file. The file caching and sync algorithm has also been completely rewritten to determine the differences faster. When synchronizing the changes in the cached copy to the remote version, the Bitmap Differential Transfer protocol is used so that only the changed blocks in the cached version are transferred. This also improves support for caching large files.[15] The entire file is still downloaded when retrieving changes from the remote copy.

Files are synchronized on a per-share basis and encrypted on a per-user basis and users can force Windows to work in offline mode or online mode through the Work Offline/Online button in Explorer, or sync manually from the Sync Center. Sync Center can also report sync errors and resolve sync conflicts. The property page for any file or folder has an Offline Files tab that provides status and allows control of the offline status of the file or folder. Moreover, even if a single file is unavailable, other files in the same share and other shares are available as the transition is now at the share level instead of server level. Offline Files are configurable through Group Policy and provide better interoperability with DFS. Also, a comprehensive Offline Files management API is available via COM objects and scriptability through WMI.

Windows Vista also supports «ghosting» of online files and folders. When users make only a few files from a directory available offline, Windows Vista creates ghosted entries of the remaining unavailable items to preserve the online context. Offline Files also feature slow-link mode which when enabled through Group Policy, always reads from and writes to the local cache to improve performance over a slow network connection. It is also possible in Windows Vista to specify a limit for the total size of the local cache and another sub-limit for the space used by automatically cached files. Manually cached files are never removed from the local cache even if the cache limit is reached.

In Windows XP, Offline Files could not be enabled when Fast User Switching was enabled. This restriction applied because Offline Files were synchronized at log off and Fast User Switching does not completely log off users. In Windows Vista, this restriction no longer applies as Offline Files runs as a Windows service that performs synchronization for the user at opportune times such as logon and offline to online transitions. Synchronization does not occur continuously in the background,[16] nor does it occur at log off.

Transactional NTFS[edit]

Transactional NTFS (abbreviated TxF) brings the concept of atomic transactions to the NTFS file system, allowing Windows application developers to write file output routines that are guaranteed to either completely succeed or completely fail. Transactional NTFS allows for files and directories to be created, renamed, and deleted atomically. Using a transaction ensures correctness of operation; in a series of file operations (done as a transaction), the operation will be committed if all the operations succeed. In case of any failure, the entire operation will roll back and fail.

Shadow Copy[edit]

A number of Microsoft Windows components have been updated to make use of Shadow Copy. The Backup and Restore Center in Windows Vista and later performs block-based backups when doing full system backups. The file backup feature also uses shadow copy but stores files inside ZIP files.

Beginning with Windows Vista, Shadow Copy is also used by the System Protection component which creates and maintains periodic copies of system and user data on the same local volume (similar to the Shadow Copies for Shared Folders feature in Windows Server) but allows it to be locally accessed by System Restore. System Restore allows reverting to an entire previous set of shadow copies called a Restore point. Prior to Windows Vista, System Restore was based on a file-based filter that watched changes for a certain set of file extensions, and then copied files before they were overwritten.[17]

Additionally, a property sheet shell extension called Previous Versions allows restoring individual files or folders locally from the restore point, as they existed at the time of the snapshot, thus retrieving an earlier version of a file or recovering a file deleted by mistake.

The shadow copy is not created every time a file is changed; backup copies are created automatically once per day, or manually when triggered by the backup utility or installer applications which create a restore point.[18] The «Previous Versions» feature is available in the Business, Enterprise, and Ultimate editions of Windows Vista.[19]

Folder redirection[edit]

Windows Vista introduces the ability to independently redirect up to 10 user profile sub-folders to a network location.[20] There is also a Management Console snap-in in Windows Vista to allow users to configure Folder Redirection for clients running Windows Vista, Windows XP, and Windows 2000.

exFAT[edit]

Windows Vista Service Pack 1 introduced support for the exFAT file system.

See also[edit]

  • Features new to Windows Vista
  • BitLocker Drive Encryption
  • Protected Media Path
  • ACID

References[edit]

  1. ^ I/O Prioritization in Windows Vista
  2. ^ a b Russinovich, Mark. «Inside the Windows Vista Kernel: Part 1». TechNet. Microsoft. Retrieved July 15, 2015.
  3. ^ Aul, Gabriel (2006). «Windows Vista Performance Technologies» (PPT). Microsoft. Retrieved July 9, 2015.
  4. ^ Tom Archer (April 14, 2006). «ReadyBoost — Using Your USB Key to Speed Up Windows Vista». Tom Archer’s Blog. Microsoft. Retrieved 2006-05-21.
  5. ^ Nicholson, Clark (2004). «Improved Disk Drive Power Consumption Using Solid-State Non-Volatile Memory». Microsoft. Archived from the original (PPT) on May 9, 2006. Retrieved December 6, 2015.
  6. ^ Moulster, Ian (April 6, 2006). «SuperFetch, ReadyBoost and ReadyDrive: some new feature names for you». MSDN Blogs. Microsoft. Retrieved September 17, 2015.
  7. ^ Mark Russinovich. «Inside the Windows Vista kernel, part II». Retrieved 2008-08-31.
  8. ^ Kleef, Michael (November 24, 2007). «Its arrived! The Lenovo T610 is here…with a hybrid drive!». MSDN Blogs. Microsoft. Retrieved December 12, 2015.
  9. ^ a b «Without Drivers, Hybrid HDDs Delayed». eWeek. Retrieved 2007-07-21.
  10. ^ Chris Preimesberger. «Vista Supports Hybrid Storage Drives, Microsoft Says». Retrieved 2007-07-22.
  11. ^ a b David Morgenstern (June 10, 2006). «Is Vista Heading for a Flash Nightmare?». eWeek. Retrieved 2007-02-22.
  12. ^ «Windows ReadyDrive». Retrieved 2007-09-22.
  13. ^ «Windows Vista’s SuperFetch and ReadyBoost Analyzed». Toms Hardware.
  14. ^ ««Session «ReadyBoot» stopped due to the following error: 0xC0000188″ in Windows 7″. Microsoft.
  15. ^ a b Jim Allchin. «Offline Files». Archived from the original on 2007-05-18. Retrieved 2007-06-14.
  16. ^ Working with network files when you are offline
  17. ^ Systems Restore in Windows Vista and other backup features
  18. ^ «Selected Scenarios for Maintaining Data Integrity with Windows Vista». TechNet. Microsoft.
  19. ^ «Volume Shadow Copy and «Previous Versions» feature in Windows Vista». Microsoft.
  20. ^ «Managing Roaming User Data Deployment Guide». Archived from the original on 2008-04-05. Retrieved 2010-12-14.

From Wikipedia, the free encyclopedia

Windows Vista introduced a number of new I/O functions to the Microsoft Windows line of operating systems. They are intended to shorten the time taken to boot the system, improve the responsiveness of the system, and improve the reliability of data storage.

I/O subsystem[edit]

Vista modifies the behavior of asynchronous I/O operations. With the new asynchronous I/O APIs, a thread, different from the one that issued the I/O request, can be notified when the operation completes. With this, a single thread can issue all the I/O requests, and then switch to a different worker thread. If this thread is the one that handles the data after the I/O request completes, then a thread-switch, which causes a performance hit, may be avoided. Windows Vista also introduces synchronous I/O cancellation. During a synchronous I/O request, the application is blocked until the request is serviced or fails. In Windows Vista the application may issue a cancellation request. Applications that cancel the operation on user feedback may prefer to enable user feedback during the time the issuing thread is suspended for usability.

Windows Vista also implements I/O scheduling as prioritized I/O.[1] Disk I/O requests in Windows Vista are assigned priorities; a higher priority request is given preferential treatment, over a request that has a lower priority, during the execution of the request. Windows Vista defines five priority classes – Very Low, Low, Normal, High and Critical. By default I/O requests are assigned Normal priority. Windows Vista also allows reservation of bandwidth on a per-application basis during disk access; this aims to guarantee the required throughput rate to the application when it accesses the disk. Both these features are used by Windows Media Player with respect to media playback.[2] Disk Defragmenter, SuperFetch, Windows Defender, Windows Search, and applications that run at startup all use prioritized I/O.[3]

Prior to Windows Vista, all I/O requests were capped at 64 KB; thus larger operations had to be completed in chunks. In Windows Vista, there is no limit on the size of I/O requests. This means an entire I/O operation can be completed by issuing fewer requests, which in turn may lead to higher performance. Windows Explorer and the Command Prompt’s copy command have been modified to issue 1 MB requests.[2]

ReadyBoost[edit]

ReadyBoost, makes PCs running Windows Vista more responsive by using flash memory on a USB drive (USB 2.0 or 3.0 only), SD card, Compact Flash, or other form of flash memory, in order to boost system performance. When such a device is plugged in, the Windows Autoplay dialog offers an additional option to use it to speed up the system; an additional «ReadyBoost» tab is added to the drive’s properties dialog where the amount of space to be used can be configured. Windows ReadyBoost is also available for Windows 7 and Windows 10. Most flash memory devices are formatted in the FAT32 format. This will need to be changed if one wants to properly utilize a larger flash device for ReadyBoost. But if one activates ReadyBoost using Windows Autoplay reformatting the device will become impossible until ReadyBoost for that device is disabled. [4]

ReadyDrive[edit]

ReadyDrive (codenamed Piton[5][6]) is a feature of Windows Vista that enables Windows Vista computers equipped with a hybrid drive or other flash memory caches (such as Intel Turbo Memory) to boot up faster, resume from hibernation in less time, and preserve battery power.[7] Hybrid hard drives are a type of hard disk that integrates non-volatile flash memory with a traditional hard drive. The drive-side functionality is expected to be standardized in ATA-8. When a hybrid hard drive is installed in a Windows Vista machine, the operating system will display a new «NV Cache» property tab as part of the drive’s device properties within the Device Manager.[8]

It was reported in eWeek that the technology is not being utilized to full extent due to lack of hybrid drive-specific drivers[9] for the hybrid drives and instead delegated the job to the device manufacturers.[9] However, Microsoft rebuffed the suggestion that it was not providing specialized drivers for hybrid systems.[10] Also, in June 2006, David Morgenstern wrote an article for eWeek suggesting that ReadyDrive might sacrifice data integrity for speed and battery savings.[11] Documentation from Microsoft, however, claims that a copy of the data is always maintained on the hard disk, so there is no question of data loss even if the flash cache fails.[11][12]

SuperFetch[edit]

SuperFetch is a technology that pre-loads commonly used applications into memory to reduce their load times. It is extended from the «prefetcher» function in Windows XP. SuperFetch attempts to load commonly used libraries and application components into memory before they are required. It does so by continually analyzing application behavior and usage patterns, e.g. what applications are typically used in the morning after logon.[13] The cache memory is marked with low priority, meaning that if another process needs the memory, it will be given up.

By default, the necessary files are loaded into main memory, but using a feature called ReadyBoost, Windows Vista and Windows 7 can use alternative storage such as USB flash drives, thereby freeing up main memory. Although hard disks may have higher sequential data transfer rates, flash drives can be faster for small files or non-sequential I/O because of their short random seek times.

ReadyBoot is a feature that complements SuperFetch by analysing only core boot processes (such as drivers) in order to speed up a computer’ startup. [14]

In Windows 10, the SuperFetch was renamed to SysMain.

Offline Files[edit]

Offline Files is a feature of Windows, introduced in Windows 2000, which maintains a client-side cache of files shared over a network. It locally caches shared files marked for offline access, and uses the cached copy whenever the network connection to the remote files is interrupted. Windows Vista Business, Enterprise and Ultimate editions contain significant improvements to Offline Files. Beginning with Windows Vista, whenever the connection is restored, all open file handles to the cached copy are redirected to the remote version, without waiting for the cached files to be synchronized.[15] This transition from online to offline and back is transparent to the clients using the file. The local copy is automatically synchronized with the remote copy, to reflect the changes made on either copy of the file. The file caching and sync algorithm has also been completely rewritten to determine the differences faster. When synchronizing the changes in the cached copy to the remote version, the Bitmap Differential Transfer protocol is used so that only the changed blocks in the cached version are transferred. This also improves support for caching large files.[15] The entire file is still downloaded when retrieving changes from the remote copy.

Files are synchronized on a per-share basis and encrypted on a per-user basis and users can force Windows to work in offline mode or online mode through the Work Offline/Online button in Explorer, or sync manually from the Sync Center. Sync Center can also report sync errors and resolve sync conflicts. The property page for any file or folder has an Offline Files tab that provides status and allows control of the offline status of the file or folder. Moreover, even if a single file is unavailable, other files in the same share and other shares are available as the transition is now at the share level instead of server level. Offline Files are configurable through Group Policy and provide better interoperability with DFS. Also, a comprehensive Offline Files management API is available via COM objects and scriptability through WMI.

Windows Vista also supports «ghosting» of online files and folders. When users make only a few files from a directory available offline, Windows Vista creates ghosted entries of the remaining unavailable items to preserve the online context. Offline Files also feature slow-link mode which when enabled through Group Policy, always reads from and writes to the local cache to improve performance over a slow network connection. It is also possible in Windows Vista to specify a limit for the total size of the local cache and another sub-limit for the space used by automatically cached files. Manually cached files are never removed from the local cache even if the cache limit is reached.

In Windows XP, Offline Files could not be enabled when Fast User Switching was enabled. This restriction applied because Offline Files were synchronized at log off and Fast User Switching does not completely log off users. In Windows Vista, this restriction no longer applies as Offline Files runs as a Windows service that performs synchronization for the user at opportune times such as logon and offline to online transitions. Synchronization does not occur continuously in the background,[16] nor does it occur at log off.

Transactional NTFS[edit]

Transactional NTFS (abbreviated TxF) brings the concept of atomic transactions to the NTFS file system, allowing Windows application developers to write file output routines that are guaranteed to either completely succeed or completely fail. Transactional NTFS allows for files and directories to be created, renamed, and deleted atomically. Using a transaction ensures correctness of operation; in a series of file operations (done as a transaction), the operation will be committed if all the operations succeed. In case of any failure, the entire operation will roll back and fail.

Shadow Copy[edit]

A number of Microsoft Windows components have been updated to make use of Shadow Copy. The Backup and Restore Center in Windows Vista and later performs block-based backups when doing full system backups. The file backup feature also uses shadow copy but stores files inside ZIP files.

Beginning with Windows Vista, Shadow Copy is also used by the System Protection component which creates and maintains periodic copies of system and user data on the same local volume (similar to the Shadow Copies for Shared Folders feature in Windows Server) but allows it to be locally accessed by System Restore. System Restore allows reverting to an entire previous set of shadow copies called a Restore point. Prior to Windows Vista, System Restore was based on a file-based filter that watched changes for a certain set of file extensions, and then copied files before they were overwritten.[17]

Additionally, a property sheet shell extension called Previous Versions allows restoring individual files or folders locally from the restore point, as they existed at the time of the snapshot, thus retrieving an earlier version of a file or recovering a file deleted by mistake.

The shadow copy is not created every time a file is changed; backup copies are created automatically once per day, or manually when triggered by the backup utility or installer applications which create a restore point.[18] The «Previous Versions» feature is available in the Business, Enterprise, and Ultimate editions of Windows Vista.[19]

Folder redirection[edit]

Windows Vista introduces the ability to independently redirect up to 10 user profile sub-folders to a network location.[20] There is also a Management Console snap-in in Windows Vista to allow users to configure Folder Redirection for clients running Windows Vista, Windows XP, and Windows 2000.

exFAT[edit]

Windows Vista Service Pack 1 introduced support for the exFAT file system.

See also[edit]

  • Features new to Windows Vista
  • BitLocker Drive Encryption
  • Protected Media Path
  • ACID

References[edit]

  1. ^ I/O Prioritization in Windows Vista
  2. ^ a b Russinovich, Mark. «Inside the Windows Vista Kernel: Part 1». TechNet. Microsoft. Retrieved July 15, 2015.
  3. ^ Aul, Gabriel (2006). «Windows Vista Performance Technologies» (PPT). Microsoft. Retrieved July 9, 2015.
  4. ^ Tom Archer (April 14, 2006). «ReadyBoost — Using Your USB Key to Speed Up Windows Vista». Tom Archer’s Blog. Microsoft. Retrieved 2006-05-21.
  5. ^ Nicholson, Clark (2004). «Improved Disk Drive Power Consumption Using Solid-State Non-Volatile Memory». Microsoft. Archived from the original (PPT) on May 9, 2006. Retrieved December 6, 2015.
  6. ^ Moulster, Ian (April 6, 2006). «SuperFetch, ReadyBoost and ReadyDrive: some new feature names for you». MSDN Blogs. Microsoft. Retrieved September 17, 2015.
  7. ^ Mark Russinovich. «Inside the Windows Vista kernel, part II». Retrieved 2008-08-31.
  8. ^ Kleef, Michael (November 24, 2007). «Its arrived! The Lenovo T610 is here…with a hybrid drive!». MSDN Blogs. Microsoft. Retrieved December 12, 2015.
  9. ^ a b «Without Drivers, Hybrid HDDs Delayed». eWeek. Retrieved 2007-07-21.
  10. ^ Chris Preimesberger. «Vista Supports Hybrid Storage Drives, Microsoft Says». Retrieved 2007-07-22.
  11. ^ a b David Morgenstern (June 10, 2006). «Is Vista Heading for a Flash Nightmare?». eWeek. Retrieved 2007-02-22.
  12. ^ «Windows ReadyDrive». Retrieved 2007-09-22.
  13. ^ «Windows Vista’s SuperFetch and ReadyBoost Analyzed». Toms Hardware.
  14. ^ ««Session «ReadyBoot» stopped due to the following error: 0xC0000188″ in Windows 7″. Microsoft.
  15. ^ a b Jim Allchin. «Offline Files». Archived from the original on 2007-05-18. Retrieved 2007-06-14.
  16. ^ Working with network files when you are offline
  17. ^ Systems Restore in Windows Vista and other backup features
  18. ^ «Selected Scenarios for Maintaining Data Integrity with Windows Vista». TechNet. Microsoft.
  19. ^ «Volume Shadow Copy and «Previous Versions» feature in Windows Vista». Microsoft.
  20. ^ «Managing Roaming User Data Deployment Guide». Archived from the original on 2008-04-05. Retrieved 2010-12-14.


Каталог:
Один
Два
Три

Оказывается длинные опусы нужно разбивать. А я то думал «многосерийные» топики публикуют исключительно для зарабатывания рейтинга :-)

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

Немного о том, как страницы попадают из рабочих наборов в эти самые списки.
Попадают разными способами. Один уже рассмотрен: кто-то явно вызвал EmptyWorkingSet для процесса. Это происходит нечасто. Обычно же это случается при помощи так называемого тримминга (trimming).

Когда система приближается к одному из установленных лимитов на свободную память, она начинает эту память освобождать. Во первых система находит процессы, максимально превысившие свой лимит на размер рабочего набора. Для этих процессов запускается процесс «старения» страниц (aging), для определения какие из страниц меньше всего используются. После этого, самые старые страницы «подрезаются» в standby или modified список.

Из той же лекции:

На диаграмме видно еще Delete page, которая происходит когда приложение просто освобождает выделенную память — с содержимым этих страниц попросту уже ничего нельзя делать, потому как по всем правилом оно не валидно и даже если новая память будет выделена по тому же адресу — это должна быть новая память.

Pagefile

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

Миф: Для повышения производительности нужно уменьшать количество обращений к пейджфайлу.
На самом деле: Для повышения производительности нужно уменьшать количество обращений К ДИСКУ. Пейджфайл является почти таким же файлом как и остальные.

Миф: Винда использует пейджфайл, даже если свободной памяти еще завались.
На самом деле: В пейджфайл страница может попасть только из modified списка. В modified список — при подрезке редко используемых страниц у разросшихся приложений. После того, как страница сброшена, она остается в standby списке и перечитываться не будет. Память никогда не берется из standby списка, если еще есть free или zeroed (то есть кешированные данные никогда не выбрасываются, если еще есть страницы вообще без данных). Standby список имеет 8 уровней приоритета (которыми до некоторой степени может управлять как само приложение, так и Superfetch, осуществляющий динамическое управление приоритетами страниц на основе анализа реального использования файлов/страниц), если не остается вообще никакого выбора — винда первым делом выбрасывает кеш самого низкого приоритета.
Вот пример получасовой работы в обычном режиме:

Прошу отметить, что файлы отсортированы по названию и между kernel.etl и «Program Files» должен был бы быть pagefile.sys.

Миф: Но винда сама признается, что использует пейджфайл.
На самом деле: Рассмотрено выше. Чаще всего речь идет о Commit Charge, который можно назвать «использованием», но совершенно не в том, смысле в котором это обычно принято понимать. В большинстве случаев при отсутсвии необходимости, приватные страницы (подлежащие сбросу в пейджфайл) будут сидеть в modified списке (даже если попадут туда) практически неограниченно долго.

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

Приоритеты памяти и ввода/вывода

Чем ниже I/O приоритет потока, выполняющего запись/чтение, тем меньше он мешает нормальной работе (в целом, как и случае с приоритетами потоков используется round robin алгоритм для операций, ожидающих с наивысшим приоритетом, при этом небольшая часть пропускной способности отдается операциям с низким приоритетом в целях борьбы со starvation — на русский переводится не совсем адекватно). Запустите встроенный дефрагментатор. Resource Monitor покажет 100% загрузку диска, однако система при этом если и теряет в отзывчивости, то на глаз я этого заметить не могу.
Про приоритеты памяти я уже упоминал. Независимо от i/o приоритета, существует page приоритет (Page Priority). Каждая физическая страница в системе (а если точнее, то данные, которые она содержит в каждый момент времени) имеет приоритет. Когда страница перемещается в Standby list она попадает в один из восьми отдельных списков, соответствующий ее приоритету. Данные с более высоким приоритетом не могут быть замещены данными с более низким.

Prefetch и Superfetch

Prefetch появился в XP и является способом ускорить запуск приложений. Вот утилита, позволяющая просмотреть содержимое pf файлов. Собственно говоря там находятся имена и смещения файлов, к которым соответствующее приложение обращается в первые несколько (кажется 10) секунд после запуска. Так как запуск зачастую сопровождается бешенным чтением данных с диска, то упорядочивание этих чтений уменьшает количество head seek-ов и тем самым ускоряет запуск. Работает из службы SysMain. Помимо префетча и суперфетча этот сервис отвечает еще за ReadyBoot (который помогал ускорять загрузку в одном из предыдущих постов), ReadyBoost (штука довольно бесполезная на системах с большим количеством ОЗУ, но очень полезная на low-end системах) и ReadyDrive (это такой ReadyBoost, но с гарантией, что «флешка» не будет выниматься между перезагрузками — позволяет сильно ускорить основные операции не прибегая к полной замене HDD на SSD — используя так называемые гибридные или H-HDD: скорость SSD по цене HDD).

С суперфетчем все несколько сложнее. Мало кто понимает его назначение, но каждый норовит обвинить этот сервис в использовании памяти во время Idle и в чтении «чего то» с диска. Для начала чтение:

Осуществляется с background приоритетом и практически незаметно при использовании. Если раздражает мигание светодиода — его можно заклеить изолентой. Более того, это чтение загружает кеш нужными данными (можно посмотреть на увеличение standby после загрузки/просыпания даже при том, что пользователь не делает никаких активных операций с диском). Эти данные загруженные сейчас с низким приоритетом и с хорошим упорядочением, потом сохранят несколько секунд и бешенное перемещение головок при старте какого нибудь приложения. Речь идет чаще всего о загрузке данных на 6-7 уровни приоритетов (да, I/O операции с низким приоритетом используются для загрузки страниц в Standby списки высоких уровней), которые могут быть вытеснены только в самом крайнем случае, когда памяти не хватает уже ни на что.

Память этот сервис использует для хранения истории обращений к диску/страницам памяти. Периодически (в Idle) он выделяет больше для того, чтобы произвести анализ этих данных и построить долгосрочный план действий (а также бутплан на следующую загрузку). Кроме того, он производит динамическое перераспределение приоритетов страниц. Вот например, что происходит на моей домашней машине, на которой я частенько пользуюсь дотнетом (в виде powershell):

Там в списке предствлены страницы с приоритетами от 1 до 6 (7 — это специальный приоритет, который никогда не меняется). А вот свежеустановленная виртуальная машина, на которой powershell был запущен раз в жизни за несколько секунд до этого:

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

Видно, что все страницы понизили свой приоритет.

Копирование больших файлов

Здесь все просто. Запускаем копирование исошника. Видим, что копирование производится с нормальным I/O приоритетом:

Page priority потока я не сохранил, но могу с большой долей уверенности сказать, что там тоже «норма» — то есть 5. Значит ли это, что копирование файлов рано или поздно повыкидывает из кеша всех остальных? Проверим:

Все закешировалось с приоритетом 2 даже несмотря на то, что чтение осуществлялось с приоритетом 5. В чем же дело? А вот в чем:

Для операций копирования используется флаг FILE_FLAG_SEQUENTIAL_SCAN, который приводит к понижению приоритета кеша по сравнению с базовым, к использованию только одного VACB для кеширования и к более агрессивному read-ahead-у.

Презентация на тему: » Внутреннее устройства ядра Windows Vista. Новые службы и компоненты. Выполнила студентка группы 3 АСУ-4 ДС-127 Морозова Мария.» — Транскрипт:



1


Внутреннее устройства ядра Windows Vista. Новые службы и компоненты. Выполнила студентка группы 3АСУ-4ДС-127 Морозова Мария


2


Содержание 1. Процессы и потоки Счетчик циклов центрального процессора Служба Multimedia Class Scheduler Service 2. Система ввода-вывода Приоритет операций ввода-вывода Резервирование полосы пропускания 3. Управление памятью Динамическое адресное пространство ядра Приоритеты памяти Функция SuperFetch Функция ReadyBoost


3


Счетчик циклов центрального процессора Планирование распределения ресурсов на основе циклов ОС Windows Vista Неравномерное выделение ресурсов потокам ОС Windows NT


4


Служба Multimedia Class Scheduler Service Новый сервис, который динамически повышает приоритет потока мультимедиа-приложения для бесперебойного воспроизведения аудио и видео –Используется Windows Media Player 11 Потоки декларируют себя как мультимедийные, указывая –Тип активности –Относительную важность (приоритет) 80% интервала таймера потоки мультимедиа выполняются c приоритетом уровня real-time (16 и выше) –По истечении этого времени приоритет понижается до уровня 1-7 –Процент задается в реестре Мультимедиа-поток Мультимедиа-поток Другие потоки Мультимедиа-поток Мультимедиа-поток


5


Приоритет ввода-вывода Приоритет операций ввода-вывода Critical: диспетчер памяти High: не используется (для следующих версий ОС) Normal: приоритет по умолчанию, стандартные пользовательские приложения (MS Word) Low: prefetching задачи (функция SuperFetch) Very Low: фоновые задачи (Windows Defender) IndexerIndexerDefragDefragPrefetchPrefetchAntivirusAntivirus Очередь ввода-вывода Very Low Low MMMM CriticalHigh WMPWMPWordWord Normal


6


Резервирование полосы пропускания Потоковые приложения (например, Windows Media Player) могут запрашивать гарантированную полосу пропускания для операций ввода-вывода Подсистема ввода-вывода возвращает приложению –объем операций ввода-вывода –частоту операций ввода-вывода WMPWMP Стандартный ввод-вывод Резервированный ввод-вывод WMPWMPWMPWMPWMPWMP


7


Файловый кэш (Standby List) Единый список (очередь) Добавление страниц Удаление страниц Windows NT Windows Vista Приоритизированный список Удаление страниц Добавление страниц


8


Функция SuperFetch В Windows Vista SuperFetch проактивно загружает в свободную оперативную память наиболее часто используемые программы, учитывая: –историю обращений к памяти за длительный период времени –частоту использования страницы Сценарии SuperFetch включают в себя: –запуск приложений –восстановление из режимов Hibernate и Sleep –повышенная производительность после нерегулярных и низкоприоритетных задач


9


Реализация SuperFetch Компонента, работающая в режиме ядра –Собирает и передает данные об использовании страниц SuperFetch включает в себя компоненты Служба SuperFetch (Sysmain.dll) — Реализует алгоритм выборки и хранение данных Файлы сценариев «.db» хранятся в папке %SystemRoot%Prefetch Использует приоритет операции Low ввода-вывода для загрузки в кэш Использует приоритеты 6 и 7 для кэшированных данных


10


Функция ReadyBoost ReadyBoost включает в себя службу и драйвер Ecache.sys Кэш представляет собой файл ReadyBoost.sfcache –Может быть только один, максимум 4 ГБ –Используется компрессия (с коэффициентом 2 х) –Файл шифруется сеансовым ключом (алгоритм AES) Жесткий диск Запись Произвольное чтение ReadyBoost.sfcache ОП Последовательное чтение


П
оток

(thread)
– сущность внутри процесса, получающая
процессорное время для выполнения.
Поток: набор команд ЦПУ (центрального
процессорного устройства), стек, состояние
и уникальный идентификатор. Поток
– исполняемые команды:
счетчики команд; регистры ЦПУ; стек;
состояние потока.

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

«Самостоятельное
переключение
»
— поток ожидает на объекте синхронизации
(выполнил блокирующий вызов). Приоритет:
не меняется Учет
квантов
:
приоритет 14 и более – квант сбрасывается,
менее 14 – уменьшается на 1 (треть
интервала).

«Вытеснение»
— поток вытесняется потоком с более
высоким приоритетом. Обычно это поток,
завершившие ожидание. Приоритет:
не меняется Учет
квантов
:
значение сохраняется.

«Завершение
кванта
» —
поток израсходовал свой квант. Выбор
нового потока производится среди
очередей «готов» с учетом приоритета.
Приоритет:
может быть понижен Учет
квантов
: в
момент помещения в очередь «готов»
квант устанавливается заново. Если
система считает, что выбор надо делать
в очереди с тем же приоритетом, но готовых
потоков нет – продляется квант текущего
потока

База данных
диспетчера ядра


Для
принятия решений при планировании
потоков ядро поддерживает набор структур
данных (БД диспетчера ядра (dispatcher
database)). Эта БД позволяет отслеживать
потоки, ждущие выполнения, и потоки,
выполняемые на тех или иных процессорах.
Очереди готовых потоков (ready queues)
диспетчера ядра включают потоки в
состоянии Ready, ожидающие выделения им
процессорного времени. Для каждого из
32 уровней приоритета существует по
одной очереди. Для ускорения выбора
потока, подлежащего выполнению или
вытеснению, Windows поддерживает 32-битную
маску (сводка готовности (ready summary)).
Каждый установленный в ней бит указывает
на присутствие 1 или более потоков в
очереди готовых потоков для данного
уровня приоритета (бит 0 соответствует
приоритету 0, бит 1 — приоритету 1).

12. Динамическое управление приоритетом потоков в Windows. (Лекция 3)


Поток
(thread)
– сущность внутри процесса, получающая
процессорное время для выполнения.
Поток: набор команд ЦПУ (центрального
процессорного устройства), стек, состояние
и уникальный идентификатор. Поток
– исполняемые команды:
счетчики команд; регистры ЦПУ; стек;
состояние потока.

Повышение текущего
приоритета потока происходит в одном
из случаев:

— после завершения
ввода-вывода (для разных классов устройств
на разную величину); Windows временно
повышает приоритет потоков по окончании
определенных операций i/o,
поэтому у потоков, ожидавших завершения
таких операций, больше шансов немедленно
возобновить выполнение и обработать
полученные данные.

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

— поток постоянно
не получает процессорное время. Раз в
секунду диспетчер настройки баланса
(balance set manager), системный поток, предназначенный
главным образом для выполнения функций
управления памятью, сканирует 16 записей
в очереди готовых потоков и ищет потоки,
которые находятся в состоянии Ready в
течение примерно 4 секунд. Обнаружив
такой поток, диспетчер настройки баланса
повышает его приоритет до 15. Текущий
приоритет не может превышать значения
15.

— По окончании
операции ожидания потоками активного
процесса. Всякий раз, когда поток в
активном процессе завершает ожидание
на объекте ядра, функция ядра KiUnwaitThread
динамически повышает его текущий (не
базовый) приоритет на величину текущего
значения PsPrioritySeparation.

— При пробуждении
GUI-потоков. Приоритет потоков, владеющих
окнами, дополнительно повышается на 2
уровня после их пробуждения из-за
активности подсистемы управления
окнами, например, при получении оконных
сообщений. Подсистема управления окнами
(Win32k.sys) повышает приоритет, вызывая
KeSetEvent для установки события, пробуждающего
GUI-поток. Приоритет повышается для
создания преимуществ интерактивным
приложениям.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Использование Монитора ресурсов: дисковая подсистема

Для удобства рассмотрения мы будем использовать скриншот Монитора ресурсов (рис. A), запущенного на производственном сервере под управлением Windows Server 2008 R2. На этом сервере установлен Exchange Server 2010 со всеми ролями, поэтому он нуждается в большой дисковой подсистеме с приемлемой производительностью. (Примечание: как и все другие наши серверы, этот работает в виртуальной машине на базе VMware vSphere 4.1.)

Использование Монитора ресурсов: дисковая подсистема
Рисунок A. Монитор ресурсов в Windows Server 2008 R2 (нажмите на изображении для увеличения).

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

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

Процессы с дисковой активностью

В разделе «Процессы с дисковой активностью» (Processes With Disk Activity) перечислены все запущенные процессы, использующие ресурсы хранения. В списке показано имя исполняемого файла и ряд связанных с ним статистических показателей.

• «Образ» (Image) – имя исполняемого файла. Это имя процесса, активно использующего диск.
• «ИД процесса» (PID) – идентификатор процесса. Может пригодиться для управления процессами с использованием других утилит или для поиска процессов в Диспетчере задач (Task Manager).
• «Чтение (байт/с)» (Read (B/sec)) – среднее количество прочитанных процессом байтов в секунду за последнюю минуту.
• «Запись (байт/с)» (Write (B/sec)) – среднее количество записанных процессом байтов в секунду за последнюю минуту.
• «Всего (байт/с)» (Total (B/sec)) – среднее количество использованных байтов в секунду за последнюю минуту.

Информация, которая приводится в этом разделе, не особенно актуальна для диагностики – она лишь позволяет выяснить, какие процессы потребляют больше всего ресурсов диска. На рис. A, например, можно заметить, что больше всего операций чтения с диска выполняет процесс с именем «DPMRA.exe».

Работа диска

В разделе «Работа диска» (Disk Activity) собраны более полезные для диагностики сведения. Самый ценный показатель – пожалуй, время ответа, поскольку его можно оценить, даже не зная исходной конфигурации дисковой подсистемы.

Справа от названия раздела расположены два небольших индикатора. Зеленый показывает текущий дисковый ввод/вывод (Disk I/O), то есть, количество передаваемых в данный момент данных), а синий – максимум активного времени дисковой подсистемы (Highest Active Time).

• «Файл» (File) – имя файла, используемого процессом. Здесь указывается полный путь к файлу, чтобы его легче было найти.
• «Приоритет ввода/вывода» (I/O Priority) – приоритет операций ввода/вывода.
• «Время ответа (мс)» (Response Time (ms)) – время отклика диска в миллисекундах. Как правило, чем ниже этот показатель, тем лучше. В целом, время ответа менее 10 мс свидетельствует о хорошей производительности. Не страшно, если этот показатель время от времени превышает отметку в 10 мс, но если системе постоянно приходится дожидаться ответа дисковой подсистемы более 20 мс, это может свидетельствовать о наличии проблем, а конечные пользователи в таком случае заметят ощутимое снижение быстродействия. Если время ответа достигает 50 мс и выше, значит, проблема действительно серьезная. На рис. A, как видите, время ответа составляет 5-6 мс, так что дисковая подсистема функционирует исправно, если судить по этому показателю.

Запоминающие устройства

В разделе «Запоминающие устройства» (Storage) содержатся следующие сведения:

• «Логический диск» (Logical Disk) – буква диска.
• «Физический диск» (Physical disk) – выбранный для мониторинга физический диск.
• «Активное время (%)» (Active Time (%)) – сколько времени диск проводит, активно обслуживая запросы, в противовес времени простоя. Если активность диска постоянно очень высока (скажем, более 80%), это может указывать на наличие потенциальных проблем, связанных с ресурсами хранения. Если пользователи жалуются на низкое быстродействие, а активное время постоянно составляет 100%, возможно, необходимо увеличить объем дисковой подсистемы или установить более производительные накопители.
• «Свободно (МБ)» (Available Space (MB)) – количество свободного пространства в текущем томе диска.
• «Всего (МБ)» (Total Space (MB)) – общий объем тома.
• «Длина очереди диска» (Disk Queue Length) – средняя длина очереди диска. Длина очереди показывает количество ожидающих выполнения запросов (на чтение и запись) в любой момент времени. Если этот показатель довольно высок, это может свидетельствовать о том, что скорость вращения диска недостаточна для удовлетворения запросов приложений или что дисковая подсистема имеет слишком низкую производительность и не справляется с запросами. Однако чтобы оценить, насколько высок показатель, необходимо хорошо понимать, как создается базовый том в SAN. Каждый диск, из которых складывается базовый том, предоставляет дополнительные ресурсы, которые учитываются при расчете длины очереди (проще говоря, чем больше дисков, тем выше будет длина очереди).

Уровень RAID и размер страйпа тоже влияют на длину очереди, что дополнительно усложняет задачу. Однако если компьютер оснащен всего одним диском, а длина очереди постоянно превышает 2, система нуждается в дополнительных ресурсах хранения. Длина очереди более 5 свидетельствует о наличии серьезных проблем. Если вам известно, из скольких дисков состоит базовый том, умножьте количество дисков на 2, чтобы очень грубо, приблизительно, прикинуть максимально допустимую длину очереди. К примеру, если в системе десять дисков, а длина очереди равна 18, значит, все в порядке.

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

На сервере Exchange, который показан в моем примере, используется четыре диска (тома SAN). С учетом структуры базовых томов SAN в этом массиве, никаких проблем, связанных с длиной очереди, не возникает.

До встречи во второй части

Автор: Scott Lowe
Перевод SVET

Оцените статью: Голосов

Записки IT специалиста

Производительность дисковой подсистемы — краткий ликбез.

  • Автор: Уваров А.С.
  • 08.02.2013

hdd-performance-000.jpg

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Прежде чем говорить о производительности вспомним как устроен жесткий диск, так как многие особенности и ограничения HDD заложены именно на физическом уровне. Не вдаваясь в подробности, можно сказать что диск состоит из одной или нескольких магнитных пластин над которыми расположен блок магнитных головок, пластины в свою очередь содержат намагниченные концентрические окружности — цилиндры (дорожки), которые в свою очередь состоят из небольших фрагментов — секторов. Сектор — минимальное адресуемое пространство диска, его размер традиционно составляет 512 байт, хотя некоторые современные диски имеют более крупный сектор размером в 4 Кбайт.

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

hdd-performance-001.jpg

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

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

Теперь перейдем на более высокий уровень — уровень файловой системы. Файловая система оперирует более крупными блоками данных — кластерами. Типичный размер кластера NTFS — 4 Кб или 8 секторов. Получив указание считать определенный кластер диск произведет чтение 8 последовательных секторов, при последовательном расположении данных операционная система даст указание считать данные начиная с кластера 100 и заканчивая кластером 107. Данное действие будет представлять собой одну операцию ввода-вывода (IO), максимальное количество таких операций в секунду (IOPS) конечно и зависит от того, сколько секторов пройдут мимо головки за единицу времени (а также от времени позиционирования головки). Скорость обмена данными измеряется в МБ/с (MBPS) и зависит от того, какое количество данных будет считано за одну операцию ввода-вывода. При последовательном расположении данных скорость обмена будет максимальной, а количество операций ввода-вывода минимально.

hdd-performance-002.jpg

Здесь будет не лишним вспомнить о таком параметре как плотность записи, которая выражается в площади необходимой для записи 1 бита данных. Чем выше этот параметр, тем больше данных может вместить одна пластина и тем выше скорость линейного обмена данными. Этим объясняются более высокие скоростные характеристики современных винчестеров, хотя технически они могут ничем не отличаться от более старых моделей. Рисунок ниже иллюстрирует данную ситуацию. Как несложно заметить, при более высокой плотности записи за один и тот-же промежуток времени, при той же самой скорости вращения будет считано/записано большее количество данных

hdd-performance-003.jpg

Теперь разберем прямо противоположную ситуацию, нам требуется считать большое количество небольших файлов случайным образом разбросанных по всему диску. В этом случае количество операций ввода-вывода будет велико, а скорость обмена данными низка. Основное время будет занимать ожидание доступа к следующему блоку данных, которое зависит от времени позиционирования головки и задержки из-за вращения диска. Простой пример: если после 100 сектора поступит команда прочитать 98, то придется ждать полный оборот диска, пока появится возможность прочитать данный сектор. Сюда же следует добавить время, которое требуется чтобы физически прочитать нужное количество секторов. Совокупность этих параметров составит время случайного доступа, которое имеет очень большое влияние на производительность винчестера.

hdd-performance-004.jpg

Следует отметить, что для ОС и многих серверных задач (СУБД, виртуализация и т.п.) характерен именно случайный доступ с размером блока в 4 Кб (размер кластера), при этом основным показателем производительности будет не скорость линейного обмена данными (MBPS), а максимальное количество операций ввода-вывода в секунду (IOPS). Чем выше этот параметр, тем большее количество данных может быть считано в единицу времени.

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

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

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

Появление дисков с более крупным 4 Кб сектором стало причиной появления еще одной проблемы: выравнивания файловой системы относительно секторов диска. Здесь возможны два варианта: если файловая система выровнена, то каждому кластеру соответствует сектор, если не выровнена, то каждому кластеру соответствует два смежных сектора. А так как сектор это минимальная адресуемая единица, то для считывания одного кластера потребуется считать не один, а два сектора, что негативно скажется на производительности, особенно при случайном доступе.

hdd-performance-005.jpg

Реальная производительность жесткого диска — это всегда баланс между скоростью обмена данными и количеством операций ввода вывода. Для последовательного чтения характерен большой размер пакета данных, который считывается за одну операцию ввода вывода. Максимальная скорость (MBPS) будет достижима при последовательном чтении секторов с внешнего края диска, количество операций ввода-вывода (IOPS) будет при этом минимально — дорожки длинные, позиционировать головку нужно реже, данных при этом считывается больше. На внутренних дорожках линейная скорость будет ниже, количество IO — выше, дорожки короткие, позиционировать головку нужно чаще, данных считывается меньше.

При случайном доступе скорость будет минимальна, так как размер пакета данных очень мал (в худшем случае кластер) и производительность упрется в максимально доступное количество IOPS. Для современных массовых дисков это значение равно около 70 IOPS, нетрудно посчитать, что при случайном доступе с размером пакета в 4 Кб мы получим максимальную скорость не более 0,28 MBPS.

Непонимание этого момента часто приводит к тому, что дисковая подсистема оказывается бутылочным горлышком, которое тормозит работу всей системы. Так, выбирая между двумя дисками с максимальной линейной скоростью в 120 и 150 MBPS, многие не задумываясь выберут второй, не посмотрев на то, что первый диск обеспечивает 70 IOPS, а второй всего 50 IOPS (вполне характерная ситуация для экономичных серий), а потом будут сильно удивляться тому, почему «более быстрый» диск сильно тормозит.

Что будет, если количества IOPS диска окажется недостаточно чтобы обработать все запросы? Возникнет очередь дисковых запросов. На практике все несколько сложнее и очередь диска будет возникать даже в том случае, когда IOPS достаточно. Это связано с тем, что различные процессы, обращающиеся к диску, имеют разный приоритет, а также то, что операции записи всегда имеют приоритет над операциями чтения. Для оценки ситуации существует параметр длина очереди диска, значение которого не должно превышать (по рекомендациям Microsoft)

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

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Длина очереди диска в мониторе ресурсов какая должна быть

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

Производительность сервера зависит от многих факторов. Условно все источники проблем можно разделить на несколько основных групп, а именно — процессор, оперативная память, жесткий диск, сеть и программное обеспечение. Если причина сбоев не очевидна, то в первую очередь нужно проверить состояние перечисленных компонентов. Для начала рассмотрим штатные инструменты для анализа производительности системы на примере Windows Server 2012 R2.

1. Диспетчер задач

Диспетчер задач позволяет выполнять различные операции с процессами, например назначать приоритет, “привязывать” процессы к определенному процессору, создавать новые процессы, но наиболее частое применение — быстрый просмотр текущей загруженности системы и принудительное завершение “проблемных” приложений.

Способы запуска Диспетчера задач:

  • щелкнуть правой кнопкой мыши на панели задач и выбрать в меню “Диспетчер задач
  • ввести команду “taskmgr” в окне “Выполнить” или командной строке.
  • нажать комбинацию клавиш “Ctrl+Alt+Del” и выбрать “Диспетчер задач
  • нажать комбинацию клавиш “Ctrl+Shift+Esc

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

Как устроен диспетчер задач Windows - мониторинг процессов на сервере

Если на сервере работает одновременно несколько пользователей, будет полезна вкладка “Пользователи” на которой все процессы сгруппированы по пользователям. Щелчок правой кнопкой мыши по имени пользователя вызывает контекстное меню с доступными действиями. Администратор может отправить сообщение, отключить или полностью завершить сеанс выбранного пользователя.

Вкладка “Службы” отображает состояние служб, а через контекстное меню можно выполнить остановку, запуск или перезапуск службы. На вкладке “Процессы” выполнена группировка процессов по типу, а на вкладке “Производительность” текущая активность компонентов компьютера представлена в графическом виде.

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

2. Монитор ресурсов

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

Как запустить мониторинг ресурсов? Есть несколько способов:

  • нажать кнопку “Открыть монитор ресурсов”, расположенную на вкладке “Производительность” диспетчера задач;
  • ввести команду “resmon” в командной строке или окне “Выполнить”;
  • выбрать “Монитор ресурсов” в меню “Средства” диспетчера серверов.

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

Сведения об активности процессора, памяти, дисков и сети представлены на отдельных вкладках, а вклада “Обзор” содержит сводную информацию по всем компонентам.

Как запустить мониторинг ресурсов. Основные свойства инструмента

Рассмотрим некоторые полезные возможности монитора ресурсов на Windows.

A. Поиск процесса, блокирующего файл

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

Поиск процесса блокирующего файл с помощью мониторинга ресурсов

B. Просмотр дисковой активности

На вкладке “Диск” отображаются операции чтения-записи с диска. На скриншоте показан случай, когда система активно обращается к файлу подкачки “c:/pagefile.sys”, обычно это существенно замедляет работу системы и свидетельствует о нехватки оперативной памяти.

Также следует обратить внимание на показатель “Длина очереди диска”, считается, что он не должен превышать более чем в два раза количество физических дисков. Если на сервере установлен один физический диск, нормальной считается длина очереди 1-2. Частые всплески этого показателя и высокое время активности диска могут говорить о низкой производительности дисковой подсистемы.

Просмотр дисковой подсистемы через мониторинг ресурсов - простые способы повысить работоспособность Windows

C. Просмотр сетевой активности

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

В разделе “TCP-подключения” будут полезны показатели “Процент потерянных пакетов” и “Задержка”, по этим параметрам можно оценивать качество сетевого соединения.

Кроме этого, на вкладке “Сеть” можно видеть прослушиваемые порты и состояние брандмауэра.

Мониторинг сети в ОС Windows

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

3. Системный монитор

Системный монитор позволяет отслеживать счетчики различных системных объектов операционной системы. Например, объект “Физический диск” содержит счетчики “Процент активности диска” и “Средняя длина очереди диска”, а объект “Память” — счетчик “Вывод страниц/с”.

  • выбрать “Системный монитор” в меню “Средства” диспетчера серверов;
  • выполнить команду “perfmon” в командной строке или окне “Выполнить”;
  • выбрать “Системный монитор” в группе “Администрирование” панели управления.

Системный монитор состоит из трех основных компонентов: “Средства наблюдения”, “Группы сборщиков данных” и “Отчеты”. В разделе “Средства наблюдения” находится системный монитор, с помощью которого можно наблюдать показания счетчиков в реальном времени или просматривать ранее сохраненные отчеты. Раздел “Группы сборщиков данных” содержит набор счетчиков за которыми будет вестись наблюдение. Для диагностики можно воспользоваться двумя готовыми системными группами или создать собственные. В разделе “Отчеты” сохраняются результаты мониторинга.

Рассмотрим диагностику используя готовую группу сборщиков данных “System Performance (Производительность системы)

1. Переходим в раздел “Группы сборщиков данных” — “Системные” и запускаем группу “System Performance (Производительность системы)

Поиск причины тормозов Windows - используем Системный монитор для сбора статистики

2. Ожидаем завершения сбора данных, продолжительность по умолчанию 1 минута, и открываем отчет в разделе “Отчеты” — “System Performance

Отчет Системного монитора о производительности Windows

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

Для того, чтобы увидеть как изменялись значения счетчиков во время сбора данных нужно нажать на панели инструментов кнопку “Просмотреть данные в системном мониторе”. После этого щелкаем в нижней части окна на интересующий нас счетчик, например “% загруженности процессора” и нажимаем кнопку “Выделить” на панели инструментов, после чего соответствующий график станет выделен черной жирной линией. Под графиками отображаются среднее, максимальное и минимальное значения выбранного счетчика.

Просмотр отчета в Системном мониторе

Отчеты хранятся в обычных файлах в папке “c:Perflog”, поэтому их легко можно перенести на другой компьютер.

Встроенные группы сборщиков данных недоступны для редактирования, но для групп созданных вручную можно задавать различные параметры, например общую длительность сбора данных или время запуска по расписанию.
Для создания группы нужно щелкнуть правой кнопкой мыши по папке “Особые” в разделе “Группы сборщиков данных”, выбрать “Создать” — “Группа сборщиков данных” и следовать указаниям мастера. Если на созданной группе щелкнуть правой кнопкой мыши и выбрать “Свойства”, откроется окно в котором можно изменить параметры по умолчанию.

Создание собственной группы сборщиков данных о производительности Windows

4. Журнал событий

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

Способы запуска Журнала событий:

  • выбрать “Просмотр событий” в меню “Средства” диспетчера серверов.
  • выбрать “Просмотр событий” в группе “Администрирование” панели управления.
  • выполнить команду “eventvwr” в командной строке или окне “Выполнить

Журналы находятся в разделах “Журналы Windows” и “Журналы приложений и служб”. Скорее всего информация о сбоях будет находиться в журнале “Система” раздела “Журналы Windows”. Но если заранее неизвестно, что именно нужно искать, то можно воспользоваться готовым представлением “События управления”, в котором отображается информация из всех основных журналов. Готовое представление недоступно для редактирования, поэтому если возникнет необходимость изменить выводимые журналы или категории событий можно создать собственное представление или скопировать существующее.

Щелкнем правой кнопкой мыши на представлении “События управления” и выберем “Копировать настраиваемое представление”, в открывшемся окне нажимаем “Ок”. В результате появится новое представление “События Управления (1)”. Для редактирования нужно выделить созданное представление и нажать в правой части окна кнопку “Фильтр текущего настраиваемого представления”.

Для диагностики неисправности можно настроить вывод только ошибок и критических событий.

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

5. Монитор стабильности системы

Монитор стабильности системы можно рассматривать как дополнение к журналу событий. Для запуска нужно открыть “Панель управления”, перейти в раздел “Центр поддержки” и нажать “Показать журнал стабильности работы” в группе “Обслуживание”.

Как запустить Мониторинг стабильности системы для поиска неисправностей в Windows

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

Просмотр событий в мониторе стабильности системы

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

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


15 сентября 2011


15.09.11

62

108K

Приоритет процесса

Наверняка, практически все знают что такое приоритет процесса, если же нет, постараюсь кратко объяснить.

Это понятие, в определенном смысле, равно как для Windows, так и для Linux, а так же для некоторых других операционных систем.

Сейчас речь пойдет об операционных системах Windows Vista и Windows 7.

Windows Vista и Wnidows 7, впрочем, как и предыдущие версии, системы мультизадачные, т.е. могут выполнять параллельно множество программ, причем, еще и мультипоточные, но это уже отклонение, точнее, ненужное углубление в тему.

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

Чем выше приоритет процесса, тем больше ему выделяется процессорного времени, чем ниже приоритет, тем меньше процессу выделяется процессорного времени.
Или если простым языком — чем выше приоритет, тем чаще и больше процессор «уделяет внимание» процессу и его операциям, а чем ниже приоритет, тем меньше «уделяет внимание».

Соответственно это сказывается на скорости выполнение той или иной программы.

Практическая польза от изменения приоритета процесса

В Windows 7 меня изначально удивлял тот факт, что по-сути чисто декоративным процессам, вроде sidebar.exe (гаджеты на рабочий стол) уделяется процессорного времени ровно столько же, как и остальным процессам.
При этом sidebar.exe сам по себе не выполняет каких-то сверх важных и сверх нужных функций. Так зачем же ему уделять столько же процессорного времени, как, например, тяжелому ресурсоёмкому приложению, вроде 3D-игры или 3D-редактора с большой сценой?

Исходя из этого вопроса я и начал, что называется, играть с приоритетами процессов.
Главное что я понял, выше приоритета Normal (Средний) пользовательским программам лучше не подниматься, ибо тогда Windows Vista/7 может начать некорректно распределять процессорное время и некоторые важные системные процессы начнут «подтормаживать».

На самый крайний случай, нужному вам пользовательскому процессу можно выставить приоритет AboveNormal (Выше среднего), но это в очень редких случаях добавляет ощутимую разницу в производительности программе.
Но при этом никто не запрещает снизить приоритет другим, мало или не столь важным процессам, дабы они не отъедали ценное процессорное время, например, у игры.
Часто такие манипуляции действительно позволяют выиграть 5-10FPS.

Автоматический запуск процесса с определенным приоритетом

Недостаток, который известен многим — при изменении приоритета через «Диспетчер задач», он сохраняется лишь до завершения процесса, потом же процесс вновь запускается с приоритетом по-умолчанию. Т.е. ваши настройки приоритетов не запоминаются.
Из-за этого в интернете появилось множество программ, которые запоминают ваш выбор приоритета, а при следующем запуске программы, меняют его за вас автоматически.

Я же изначально не поверил в то, что в Windows нет какого-нибудь инструмента для управления и запоминания приоритета процесса и начал рыть документацию на сайтах Microsoft.
Не буду разводить полемику на тему плохой документированности возможностей Windows, но я оказался прав.
Любому процессу в Windows можно вручную через реестр указать приоритет и еще некоторые свойства, с которыми он будет запускаться.

Путь к разделу реестра:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options

Как запустить редактор реестра?

Нажмите сочетание клавиш Win+R (быстрый вызов команды «выполнить»), в появившемся окошке, в текстовой строке наберите regedit и нажмите Enter =)

Для того, что бы указать приоритет для процесса, с которым он должен сразу всегда запускаться, вам нужно в указанной выше ветке реестра создать раздел с его именем.
Далее в нем создать еще один раздел, т.е. уже подраздел с названием PerfOptions, а уже в нем создать параметр DWORD (32бита) с названием CpuPriorityClass и задать ему одно из десятичных значений — 1, 2, 3, 5, 6.

1 — приоритет Idle (низкий);
2 — приоритет Normal (средний);
3 — приоритет High (высокий);
5 — приоритет BelowNormal (ниже среднего);
6 — приоритет AboveNormal (выше среднего);

Разберем на примере sidebar.exe.
В ветке ресстра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options я создаю раздел sidebar.exe.
В нем создаю подраздел PerfOptions. И в этом подразделе создаю параметр DWORD (32бита) с названием CpuPriorityClass c десятичным значением 1.

Таким образом sidebar.exe теперь у меня всегда будет запускаться с низким приоритетом (Idle).

Так же все вышеописанные операции можно делать и через командную строку (cmd).
Я написал небольшой универсальный пакетный файл, который все это делает за пользователя.
Ссылка на пакетный файл: save_process_priority.cmd

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

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

Вот и все, спасибо за внимание =)
Если заметили ошибку, обязательно сообщите, буду очень благодарен.

Copyright © 2011 Tsiryuta G. N. <spbtgn@gmail.com>


Понравилась статья? Поделить с друзьями:
  • Проблема адаптера беспроводных сетей или точки доступа windows 7 на ноутбуке
  • Проблема при возврате пк в исходное состояние windows 10 как исправить
  • Приоритет запуска программ в windows 10
  • Проблема адаптера беспроводных сетей или точки доступа windows 10 постоянно
  • Проблема при возврате пк в исходное состояние windows 10 lenovo