(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Объективный анализ характера ввода-вывода в Windows 7

Илья Сазонов

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

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

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

Вопрос, ответ на который я хотел получить:  какой размер блока ввода-вывода (IO block size) в Windows 7?

Почему возник такой вопрос?

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

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

Для получения объективных данных я провел простой эксперимент по копированию большого файла (2 Гб) между локальным виртуальным диском в виртаульной машине с Windows 7 и папкой на сетевой шаре. Первый замер сделан при копировании на виртуальную машину - это операция записи на виртуальный диск. Второй замер был сделан для обратной операции: файл копировался с виртуальной машины на сетевую шару - операция чтения с виртуального диска.

Результаты приведены ниже.

Диаграмма 1. Windows 7 запись большого файла (копирование с сетевой шары на локальный диск)

 
Диаграмма 2. Windows 7 чтение большого файла (копирование с  локального диска на сетевую шару)
 

На обоих графиках видно, что размер блока чаще всего попадает в хорошо известные нам числа - 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536,… и 1048576 (1 Мб). Некоторые размеры блоков, как видно на графиках, очень популярные.

Факт первый: операции чтения и операции записи идентичны в мысле ответа на наш вопрос - вид графиков одинаковый.

Факт второй: Максимальный размер блока операции ввода-вывода в Windows 7 равен 1 Мб.

Факт третий. Windows 7 не использует один размер блока для операций ввода-вывода

               

Давайте посмотрим что будет в случае копирования (возьмем только запись - при чтении, как мы поняли, будет аналогичная картина) большого числа маленьких файлов. Копируем рабочую папку, в которой находятся несколько тысяч документов MS Office типичного размера плюс небольшое количество каких-то более крупных файлов.

 

Диаграмма 3. Windows 7 запись большого количества маленьких файлов (копирование с сетевой шары на локальный диск)

 
 

Что мы видим в этом случае?

Факт первый. Гистограмма сосредоточена в области маленьких размеров блока ввода-вывода.

Факт второй. Пики приходятся на размеры 4096 (4Кб), 16384, 65536 (64Кб), 262144 и 1048576 (1 Мб). Причем размер 4096 явный лидер.

Факт третий. Обратите внимание на пик 4Кб полученный при копировании маленьких файлов. Ничего не напоминает? Смотрим KB140365: обычный размер кластера NTFS 4Кб! Виртуальный диск, на котором проводился эксперимент, имеет именно такой размер кластера.

Теперь на основе полученных фактов можно сделать некоторые выводы.

Вывод первый: Ядро Windows 7 использует для конкретной операции ввода-вывода максимально возможный размер блока.

Получается, что Windows 7 передает драйверу физической системы ввода-вывода информацию максимально возможного размера и выравнивает ее всегда на удобную границу, например, в 4Кб, 16Кб, 64Кб, 1Мб. И теперь только от драйвера зависит насколько эффективно он выполнит задание.

Вывод второй: Ядро Windows 7 выполняет операции ввода-вывода максимально эффективно.

 Заключение: полученные объективные данные по характеру ввода-вывода в Windows 7  можно использовать для объективного анализа системы ввода-вывода в физической системе (локальный ввод-вывод), в системе виртуализации (виртуализация дисков в виртуальной машине) или сетевой системе ввода-вывода (SAN).

 

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 28.11.2011 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft 365 Apps for business (corporate)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Windows Professional 10, Электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
eManual - электронные книги и техническая документация
Corel DRAW - от идеи до реализации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100