НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
«ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЕОМ
Звіт
лабораторної роботи №3
«Тестування продуктивності засобів віртуалізації апаратного забезпечення обчислювальних машин»
з дисципліни:
«Проектування віртуальних машин»
Львів-2014
Мета: Навчитись визначати продуктивність засобів віртуалізації апаратного забезпечення обчислювальних машин за допомогою синтетичних тестів (synthetic benchmarks)
Завдання:
№
Гостьова ОС
Тест №1
Тест №2
03
Debian (Linux)
Whetstone
Dhrystone
Порядок виконання роботи:
1. Стислий опис підходів до визначення продуктивності програмних засобів віртуалізації для desktop-систем(VMmark).
VMmark розроблений як «плитка» еталонного тесту, яка складється з різноманітного набору комплексів навантажень, що зазвичай знаходяться в центрі обробки даних. Навантаження, що входять в кожну плитку працюють одночасно в різних віртуальних машинах при рівнях навантаження, характерних для віртуалізованих середовищ. Продуктивність кожного навантаження вимірюється, а потім поєднується з іншими навантаженнями, щоб сформувати результат для окремої плитки. Декілька плиток можуть бути запущені одночасно, щоб збільшити загальну кількість балів.
Такий підхід дає невелике збільшення продуктивності системі що відображається в підвищені оцінки однієї плитки і великих результатів у пропускній здатності системи, до якої потрібно додати додаткові плитки.
Кожне навантаження плитки VMmark обмежене, щоб виконати менше ніж при повному використанні своїх віртуальних машин. Продуктивність кожного робочого навантаження може змінюватися до такого ступеня, що відповідає швидкості і можливостям базової системи. Наприклад, диск-орієнтоване робоче навантаженя може реагувати на додавання швидкого дискового масиву з більш сприятливим рахунком. Ці зміни можуть зачепити покращення системи, які не вимагають додавання іншої плитки. Регулювання навантаження змусить використати додаткові плитки для великих стрибків в продуктивності системи. Коли число плиток збільшиться, робочі навантаження в існуючих плитках можуть виміряти більш низьку продуктивність. Якщо система не була перевантажена, сукупна оцінка, в тому числі нової плитки, повинна зростати. В результаті виходить гнучкий метричний тест, який забезпечує відносний показник кількості робочих навантажень, які можуть підтримуватися конкретною системою, а також загальний рівень продуктивності у віртуальних машинах.
2. Стислий опис призначення та принципів роботи простих синтетичних тестів (synthetic benchmarks) №1 та №2.
Whetstone.
Комплект тестів Whetstone складається з декількох модулів, що імітують програмну навантаження в найбільш типових режимах виконання обчислювальних задач (цілочислена арифметика, арифметика з плаваючою крапкою, оператори типу IF, виклики функцій і т.д.). Кожен модуль виконується багаторазово, відповідно до вихідної статистикою Whetstone-інструкцій (практично це реалізується за допомогою укладання модулів в циклічні конструкції з різним числом "оборотів" циклу - від 12 до 899), а продуктивність розраховується як відношення числа Whetstone-інструкцій до сумарного часу виконання всіх модулів пакета. Цей результат представляється в KWIPS (Kilo Whetstone інструкцій в секунду) або в MWIPS (Mega Instruction Whetstone Per Second). У відомому сенсі зазначені одиниці аналогічні MIPS, але з однією істотною обмовкою: Whetstone-інструкції не прив'язані до системи команд-якого комп'ютера, оцінка продуктивності в MWIPS є моделенезалежною.
Інтеpпpетація pезультатов:
- Пакет Whetstone орієнтований на оцінку продуктивності обробки чисел з плаваючою точкою: майже 70% часу виконання Fortran-версії тесту на комп'ютері VAX 11/785 (компілятор Fortran BSD 4.3) припадає на "плаваючу" арифметику і виконання бібліотечних математичних функцій.
- Велике число звернень до бібліотеки математичних функцій, закладене в тести Whetstone, вимагає особливої обережності при порівнянні результатів, отриманих для різних комп'ютерів: фірми-виробники мають можливість оптимізувати оцінку Whetstone, вносячи зміни в бібліотеку. В усякому разі, потрібно пам'ятати, що тести Whetstone дають надійні орієнтири лише стосовно завдань з великою інтенсивністю використання стандартних математичних функцій.
- Оскільки тестові модулі Whetstone представлені дуже компактним виконавчим кодом (весь пакет Ветстоун в C-версії займає близько 2 Кбайт коду), для сучасних процесорів вони не дозволяють оцінити ефективність механізму динамічної підкачки команд в кеш інструкцій: будь-який модуль Whetstone цілком розміщується в кеш-пам'яті навіть самої малої місткості.
- Особливістю описуваних тестів є майже повна відсутність локальних змінних. Тому оцінки Ветстоун в значній мірі залежать від ефективності функціонування ресурсів комп'ютера, що забезпечують доступ до оперативної пам'яті і буфеpізацію даних в пpоцессоpа (включаючи кількість регістрів, ємність кеш-пам'яті даних та механізм її заміщення), а також від якості реалізованих в компіляторі оптимізують алгоритмів розміщення глобальних змінних у регістрах. Однак ця ж обставина робить тести Whetstone практично нечутливими до засобів підвищення ефективності роботи з локальними змінними (наприклад, динамічне перемикання реєстрових вікон MORS в процесорах SPARC майже не позначається на величині Whetstone-оцінки).
Dhrystone
У 1984 р. Рейнхард Вайкері опублікував першу редакцію пакету мовою Ада, пізніше з'явилися його версії на мовах Pascal і C. Тестові процедури Dhrystone об'єднані в один вимірювальний цикл, який містить 101 оператор в Паскаль-версії або 103 оператора в C-версії. Цей глобальний цикл прийнятий за одиницю роботи (один Dhrystone), а продуктивність вимірюється в кількості вимірювальних циклів, виконаних за секунду (Dhrystones / с). Останнім часом пpи публікаціях оцінок Dhrystone стали застосовуються і інші одиниці вимірів - MIPS VAX. Таке відхилення від стандартних пpавил пpодиктовано двома обставинами: по-пеpше, одиниці Dhrystones / с виглядають надто екзотично, по-друге, оцінка в MIPS VAX за змістом збігається з умовними одиницями дуже поширених тестів SPEC, що характеризують продуктивність щодо системи VAX 11/780 ( напpиклад, 1,5 MIPS VAX означає, що тестуєма система працює в 1,5 раза швидше VAX 11/780).
Інтеpпpетація результатів:
- Дуже часто Dhrystone відносять до тестів виміру продуктивності цілочисленої обробки, оскільки в ньому повністю відсутні опеpації з плаваючою крапкою. Однак правильніше було б розглядати результати Dhrystone як показники продуктивності при роботі засобів системного ПЗ, принаймні, така інтеpпpетація збігається з думкою автора тестів.
- Хоча виконавчий код Dhrystone виглядає ще більш компактним, ніж для тестів Whetstone (1039 байт після трансляції за допомогою компілятора VAX Unix BSD 4.3 C), він містить безліч команд умовного переходу, в тому числі вн циклічних конструкцій. Тому тести Dhrystone дають досить високе навантаження на кеш інструкцій (Вейкер стверджує, що якщо ємність кеша інструкцій менше 1 Кбайт, то частка промахів при вибірці команд становить майже 100%) і дозволяють виявити такі принципові особливості апаратури, як ефективність передбачення переходів і заміщення кешу інструкцій (навіть при глибокому кеші висока інтенсивність переходів може привести до великої кількості промахів, якщо механізм підкачки в кеш інструкцій організований не найкращим чином).
- Пакет Dhrystone орієнтований на опрацювання локальних змінних, що різко знижує навантаження на тракт процесор - пам'ять, але дає можливість отримати сильно диференційовані оцінки продуктивності в залежності від ефективності роботи компілятора з локальними змінними. Крім того, на результати тестування помітний вплив чинять апаратні засоби процесора, що оптимізують обробки локальних змінних (наприклад, уже згадувана аpхітектуpа MORS SPARC).
- Тести Dhrystone досить активно використовують бібліотечні функції обробки рядків, тому, крім фактора швидкодії цих функцій в бібліотеці, встановленої на тестованому комп'ютері, пpи інтеpпpетаціі pезультатів Dhrystone необхідно брати до уваги ряд супутніх обставин, зокрема включення функцій у виконавчий код тесту на стадії компіляції ( в підкладці) і конкретну реалізацію обробки рядків - байт за байтом до виявлення кінця рядка або послівний. На жаль, на практиці ці відомості залишаються за рамками публікованих результатів, тому слід враховувати, що оцінки, отримані за допомогою тестів Dhrystone (як і Whetstone), залежно від ступеня коppектності пpоведення вимірів можуть значно відрізнятися.
3. Послідовність дій щодо визначення продуктивності програми віртуалізації VMware Player за допомогою простих синтетичних тестів.
Для того щоб і гостьова і базова системи були в рівних умовах. Для гостьової системи було виставлено використання 2 ядер, та як і на базовій.(Рис.1)
Рис.1. Кількість ядер.
Тест Whetstone 1.2:
Запуск тесту Whetstone на базовій ос. Для запуску використовувалось середовище Visual Studio 2010. Був створений новий проект та до нього був доданий файл С. В який було поміщено код Whetston, проект був зкомпільований. Далі значення LOOP було змінено на 100000(що означає що 10 млрд. інструкцій Whetstone буде виконанно в кожному головному LOOP). Після чого проект був знову зкомпільований та запущений. Для пришвидшеного виконання зкомпільована програма запускалась окремо від середовища розробки.
Рис.2. Результат виконання Whetsone тесту на базовій ОС
Запуск тесту Whetstone на гостьовій ос. Налаштування LOOP були такі самі як і на базовій ОС. Для компіляції та запуску були виконані команди показані на рис.3.
Рис.3. Результат виконання Whetstone тесту на гостьовій ОС.
Тест Dhrystone 2.1:
Запуск тесту Dhrystone на базовій ос. Для запуску використовувалось середовище Visual Studio 2010. Був створений новий проект та до нього були додані файли С. Які реалізують дану функцію, також у властивостях цих файлів, а саме вітка «С/С++ - Общие - поддержка общеязыковой среды управления», було встановлено «Без поддержки CLR среды». Проект було відкомпільовано та запущено. Кількість запусків через тест було введено 50 000 000.
Рис.4. Результати виконання тесту Dhrystone на базовій ОС.
Запуск тесту Dhrystone на гостьовій ос. Налаштування LOOP були такі самі як і на базовій ОС. Для компіляції та запуску була виконана команда: gcc -O2 -o dhrystone dhry21a.c dhry21b.c timers.c та ./dhrystone відповідно. Кількість запусків через тест було введено 50 000 000.
Рис.5. Результат виконання тесту Dhrystone на гостьовій ОС.
4. Результати виконання тестів №1 та №2 зведені у таблицю
Таблиця1. Результати виконання тестів.
Базова система(host system)
Windows 7 x86
RAM 2 Gb
CPU(CORE) 2.7 Ghz
Гостьова система(guest system)
Debian 6
RAM 2 GB
CPU (CORE) 2.7 Ghz
Whetstone(MIPS)
2000
1666,7
Dhrystone(VAX MIPS rating)
4470.950
10738,950
5. Загальні висновки порівняльного аналізу продуктивності базової та гостьової системи.
Тест Whetstone є платформо не залежним він показав що базова система виконує 2 млрд. операцій в секунду(що відповідає частоті процесора), тоді як гостьова показала 1,7 млрд. операцій в секунду(що трішки менше). Звідси значить що гостьова система працює майже з такою швидкістю як базова втрата швидкості не значна.
Тест Drhystone залежить від засобів системного ПЗ і його показники показують в скільки раз швидше поточна система від VAX 11/780, базова система мала рейтинг 4470,950, а гостьова 10738,950(що в два рази більше за базову). Але інтерпретуючи ці дані можна лише сказати, що даний тест краще виконується на системі Linux ніж Windows. Тому для дослідження потрібно мати однакові: базову та гостьову систему.
Висновок: Під час даної лабораторної роботи я навчився визначати продуктивність засобів віртуалізації апаратного забезпечення обчислювальних машин за допомогою синтетичних тестів (synthetic benchmarks)