Як виміряти продуктивність віртуального сервера?


11

У мене є VPS під керуванням Ubuntu. Будучи віртуальним сервером, я розумію, що він ділиться ресурсами з невідомою кількістю інших серверів, і помічаю, що це значно повільніше, ніж моя настільна машина.

Чи є якийсь інструмент для вимірювання продуктивності віртуальної машини ? Мені буде цікаво побачити приблизну міру, схожу на bogomips, можливо, для процесора (операції / сек), швидкості читання / запису диска в пам'яті та диску. Я хотів би мати можливість порівняти ці цифри з моєю настільною машиною.

Мене не цікавлять характеристики фактичної фізичної машини, на якій працює моя VPS - завдяки цьому cat /proc/cpuinfoя бачу, що це хороша чотириядерна машина Xeon, але це для мене не має значення. Мене в основному цікавить, наскільки швидко працює програма в моєму VPS - скільки операцій з процесором вона може зробити за секунду, скільки байтів записати в оперативну пам’ять або на диск.

У мене є лише ssh доступ до машини, тому інструмент повинен бути командним рядком.

Я міг би написати сценарій, який, скажімо, робить кілька обчислень в циклі на секунду і підраховує, скільки циклів він зміг зробити, або щось подібне для вимірювання продуктивності диска та оперативної пам'яті. Але я впевнений, що щось подібне вже існує.

Відповіді:


14

Ну, оскільки ніхто не хоче відповідати ... :)

Пошук Synaptic для «лавки» знаходить безліч наборів тестів, здатних перевірити різні аспекти машини. Єдине, про яке я чув раніше, - це phoronix-test-suite, напевне, дуже всебічно, хоча короткий проміжок уваги не дозволив мені зрозуміти, як ним користуватися.

Тоді я знайшов UnixBench , який описується як

UnixBench - це оригінальний набір рефератів BYTE UNIX, оновлений та переглянутий багатьма людьми протягом багатьох років.

Мета UnixBench - забезпечити базовий показник працездатності Unix-подібної системи; ... Ці результати тестів потім порівнюються з балами з базової системи для отримання значення індексу, яке, як правило, легше обробляти, ніж необроблені бали.

Обробляються багатопроцесорні системи. ... Тести порівнюють системи Unix, порівнюючи їх результати з набором балів, встановлених за допомогою запуску коду на тестовій системі, яка є SPARCstation 20-61 (оцінено на 10,0).

UnixBench згадується Linode як інструмент для тестування працездатності VM у цій публікації блогу :

Використовуючи однакове обладнання, KVM Linodes набагато швидше порівняно з Xen. Наприклад, у нашому тестуванні UnixBench KVM Linode набрав 3 рази краще, ніж Xen Linode.

Тестовий набір НЕ знаходиться у сховищах Ubuntu, але завантажувати та компілювати його тривіально:

wget https://github.com/kdlucas/byte-unixbench/archive/master.zip
unzip ./master.zip
cd ./byte-unixbench-master/UnixBench
./Run

Випробування потребують певного часу. Вихід виглядає так

------------------------------------------------------------------------
Benchmark Run: Mon Oct 15 2012 23:55:22 - 00:23:16
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       12015218.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2214.8 MWIPS (10.1 s, 7 samples)
Execl Throughput                                896.9 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         58968.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           14578.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        422068.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                               70993.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  16001.5 lps   (10.0 s, 7 samples)
Process Creation                               1861.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2525.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    737.8 lpm   (60.1 s, 2 samples)
System Call Overhead                         432496.2 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   12015218.4   1029.6
Double-Precision Whetstone                       55.0       2214.8    402.7
Execl Throughput                                 43.0        896.9    208.6
File Copy 1024 bufsize 2000 maxblocks          3960.0      58968.3    148.9
File Copy 256 bufsize 500 maxblocks            1655.0      14578.6     88.1
File Copy 4096 bufsize 8000 maxblocks          5800.0     422068.2    727.7
Pipe Throughput                               12440.0      70993.3     57.1
Pipe-based Context Switching                   4000.0      16001.5     40.0
Process Creation                                126.0       1861.8    147.8
Shell Scripts (1 concurrent)                     42.4       2525.5    595.6
Shell Scripts (8 concurrent)                      6.0        737.8   1229.7
System Call Overhead                          15000.0     432496.2    288.3
                                                                   ========
System Benchmarks Index Score                                         249.7

------------------------------------------------------------------------
Benchmark Run: Tue Oct 16 2012 00:23:16 - 00:51:20
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       42619039.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     8274.0 MWIPS (10.4 s, 7 samples)
Execl Throughput                               3398.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         68332.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           21462.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        718205.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                              149713.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  61968.3 lps   (10.0 s, 7 samples)
Process Creation                               5321.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5957.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    812.6 lpm   (60.1 s, 2 samples)
System Call Overhead                        1557391.5 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   42619039.2   3652.0
Double-Precision Whetstone                       55.0       8274.0   1504.4
Execl Throughput                                 43.0       3398.5    790.4
File Copy 1024 bufsize 2000 maxblocks          3960.0      68332.4    172.6
File Copy 256 bufsize 500 maxblocks            1655.0      21462.9    129.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     718205.6   1238.3
Pipe Throughput                               12440.0     149713.5    120.3
Pipe-based Context Switching                   4000.0      61968.3    154.9
Process Creation                                126.0       5321.7    422.4
Shell Scripts (1 concurrent)                     42.4       5957.1   1405.0
Shell Scripts (8 concurrent)                      6.0        812.6   1354.3
System Call Overhead                          15000.0    1557391.5   1038.3
                                                                   ========
System Benchmarks Index Score                                         592.5

Що означає, що VPS, про який йде мова, має оцінку 249,7 за одну задачу та 592,5 для паралельної обробки.

Моя настільна машина, маючи схожі або менші характеристики на фізичній машині, на якій працює VPS, дала оцінку 1409,7 за одно завдання і 5156,3 для паралельної обробки. Саме таку метрику я шукав.

Інший важливий показник - швидкість роботи мережі. Я знайшов сценарій, який завантажує тестові файли з різних місць і вимірює швидкість завантаження. Сценарій можна запустити за допомогою

wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash

(хоча, мабуть, було б безпечніше завантажити сценарій та перевірити його вміст перед запуском)

Для контролю затримки вводу / виводу диска є iopingутиліта, яку можна встановити з сховищ Ubuntu:

# ioping . -c 10
4096 bytes from . (ext4 /dev/disk/...): request=1 time=16.4 ms
4096 bytes from . (ext4 /dev/disk/...): request=2 time=16.1 ms
...

UnixBench зараз на Github: github.com/kdlucas/byte-unixbench
m0j0

@ m0j0: Я змінив відповідь, щоб відображати, що зараз він розміщений у GitHub, дякую
Сергій

Ці 2 команди wget https://github.com/kdlucas/byte-unixbench/archive/master.zip && unzip ./master.zipможна було замінити просто git clone https://github.com/kdlucas/byte-unixbench.
Привіт-Ангел

0

Це може бути неможливим. Ви не надаєте жодних деталей, тому ніхто не може надати конкретних відповідей. Але не всі VPS мають на увазі віртуальне обладнання. У вас є всілякі різні рішення, як-от Linux Containers (LXC), що кардинально відрізняється від надання віртуальної машини з певними особливостями.

Єдиний сенс спільного використання обладнання - це його повторне використання. У вашому випадку, навіть якщо ви використовуєте віртуалізоване обладнання, ви не можете бути впевнені, що ви єдиний, хто ним користується. Якщо вам потрібна інформація про використання апаратного забезпечення, то вам слід отримати сумісний фізичний сервер.


Ах, я думаю, ви мене неправильно зрозуміли - я не кажу про основну фізичну машину. Я оновив своє запитання.
Сергій

Так, але все ж. Комп'ютер може не відрізнятися від однієї хвилини до іншої, тому будь-який середній показник марний. В одну мить він може мати 16 ядер процесора та 32 ГБ оперативної пам’яті, а в інший - 1 ядро ​​та 512 Мб оперативної пам’яті. Середня величина може бути вкрай поганою або кращою, ніж теоретично це можливо, залежно від розрахунку. Ви можете отримати деякі дані з "ps ax", "top", "iotop" та "uptime", але це не буде багато чого.
Жо-Ерленд Шінстад

2
Гаразд, приклад: я gzip файл 1Gb в моїй нетбуці і вимірюю час, необхідний для виконання завдання. Потім я gzip той же файл на своєму робочому столі - виявляється, мій робочий стіл робить це в 3 рази швидше, ніж нетбук, тому я даю їм "gzip рейтинг" 100 і 300 відповідно. Потім я стискаю той самий файл на VPS і виявляю, скажімо, що на момент тестування це в 1,5 рази швидше, ніж нетбук, але все ж у 2 рази повільніше, ніж на робочому столі - так це "gzip-фактор" 150. Я можу придумати щось подібне я сам, але, безумовно, вимірювання продуктивності є поширеною проблемою
Сергій

Вимірювання продуктивності добре, якщо ви знаєте, на якому комп’ютері ви вимірюєте. З VPS ви не обов’язково цього знаєте. Він може переміщуватися між безліччю абсолютно різних комп'ютерів без вашого відома, процесори можуть бути додані та вилучені, додана та видалена оперативна пам’ять тощо. Або інший VPS починає використовувати багато процесора на 25 секунд, що робить ваш VPS повільніше. Занадто багато змінних.
Жо-Ерленд Шінстад

Здається, що може бути ніша для інструмента монітора продуктивності vps.
justingrif
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.