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

У меня есть VPS под управлением Ubuntu. Будучи виртуальным сервером, я понимаю, что он разделяет ресурсы с неизвестным числом других серверов, и я замечаю, что он значительно медленнее, чем мой настольный компьютер.

Существует ли какой-либо инструмент для измерения производительности виртуальной машины ? Мне было бы любопытно увидеть приблизительную меру, похожую на bogomips, возможно, для процессора (операций / сек), памяти и скорости чтения / записи диска. Я хотел бы иметь возможность сравнить эти цифры с моим настольным компьютером.

Меня не интересуют спецификации реальной физической машины, на которой работает мой VPS - выполнив cat /proc/cpuinfo, я вижу, что это хорошая четырехъядерная машина Xeon, но это не имеет значения для мне. В основном меня интересует, как быстро программа будет работать в моем VPS - сколько операций ЦП она может выполнить за секунду, сколько байтов записать в ОЗУ или на диск.

У меня есть только ssh-доступ к машине, поэтому инструмент должен быть из командной строки.

Я мог бы написать скрипт, который, скажем, выполняет некоторые вычисления в цикле за секунду и подсчитывает, сколько циклов он смог выполнить, или что-то подобное для измерения производительности диска и ОЗУ. Но я уверен, что нечто подобное уже существует.

11
задан 7 March 2012 в 08:55

2 ответа

Ну, так как никто не хочет ответить... :)

Поиск Синаптического для "места размещения" находит большое сравнительное тестирование комплектов способным к тестированию различных аспектов машины. Единственный, о котором я слышал ранее, phoronix-test-suite, то, которое я уверен, очень всесторонне, хотя моя низкая устойчивость внимания не позволила мне выяснять, как использовать ее.

Затем я нашел UnixBench, который описан как

UnixBench является исходный БАЙТ комплект сравнительного теста UNIX, обновленный и пересмотренный многими людьми за эти годы.

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

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

UnixBench упоминается Linode как инструмент для тестирования производительности VM в этом сообщении в блоге:

Используя идентичное оборудование, KVM Linodes намного быстрее по сравнению с Xen. Например, в нашем UnixBench, тестирующем KVM Linode выигранный 3x лучше, чем 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, произвела счет 1 409,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
...
14
ответ дан 7 March 2012 в 08:55

Это может быть невозможно. Вы не предоставляете никаких подробностей, поэтому никто не может дать конкретные ответы. Но не все VPS означают виртуальное оборудование. У вас есть все виды различных решений, таких как Linux Containers (LXC), которые радикально отличаются от рендеринга виртуальной машины с определенными особенностями.

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

0
ответ дан 7 March 2012 в 08:55

Другие вопросы по тегам:

Похожие вопросы: