У меня есть VPS под управлением Ubuntu. Будучи виртуальным сервером, я понимаю, что он разделяет ресурсы с неизвестным числом других серверов, и я замечаю, что он значительно медленнее, чем мой настольный компьютер.
Существует ли какой-либо инструмент для измерения производительности виртуальной машины ? Мне было бы любопытно увидеть приблизительную меру, похожую на bogomips, возможно, для процессора (операций / сек), памяти и скорости чтения / записи диска. Я хотел бы иметь возможность сравнить эти цифры с моим настольным компьютером.
Меня не интересуют спецификации реальной физической машины, на которой работает мой VPS - выполнив cat /proc/cpuinfo
, я вижу, что это хорошая четырехъядерная машина Xeon, но это не имеет значения для мне. В основном меня интересует, как быстро программа будет работать в моем VPS - сколько операций ЦП она может выполнить за секунду, сколько байтов записать в ОЗУ или на диск.
У меня есть только ssh-доступ к машине, поэтому инструмент должен быть из командной строки.
Я мог бы написать скрипт, который, скажем, выполняет некоторые вычисления в цикле за секунду и подсчитывает, сколько циклов он смог выполнить, или что-то подобное для измерения производительности диска и ОЗУ. Но я уверен, что нечто подобное уже существует.
Ну, так как никто не хочет ответить... :)
Поиск Синаптического для "места размещения" находит большое сравнительное тестирование комплектов способным к тестированию различных аспектов машины. Единственный, о котором я слышал ранее, 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
...
Это может быть невозможно. Вы не предоставляете никаких подробностей, поэтому никто не может дать конкретные ответы. Но не все VPS означают виртуальное оборудование. У вас есть все виды различных решений, таких как Linux Containers (LXC), которые радикально отличаются от рендеринга виртуальной машины с определенными особенностями.
Единственная цель совместного использования оборудования - это его повторное использование. В вашем случае, даже если вы используете виртуализированное оборудование, вы не можете быть уверены, что используете его только вы. Если вам нужна информация об использовании оборудования, вы должны вместо этого получить физически расположенный сервер.