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

10

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

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

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

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

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

    
задан Sergey 07.03.2012 в 04:29
источник

2 ответа

13

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

Поиск 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
...
    
ответ дан Sergey 16.10.2012 в 05:01
источник
0

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

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

ответ дан Jo-Erlend Schinstad 07.03.2012 в 04:43