Colobridge WIKI

как проверить производительность vps

Слова для поиска: бенчмарк, скорость, benchmark


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

Это довольно простой тест позволяющий оценить производительность системы хранения без установки дополнительных специальных утилит.

dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync

Значение опций:

  • if=/dev/zero - в качестве источника данных используется псевдо-устройство являющееся генератором нулей
  • of=/test.bin - это файл куда записывается информация. Не забудьте после теста удалить этот файл
  • bs=64k - размер блока данных 64 килобайта
  • count=16k - количество блоков данных записываемых в файл. В итоге получается файл размером 1Гб.
  • conv=fdatasync - физическая запись на диск для исключения влияния кэширования записи

После выполнения команды будет выведена информация о скорости выполнения.

dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 записей считано
16384+0 записей написано
 скопировано 1073741824 байта (1,1 GB), 9,30189 c, 115 MB/c

Затем можно оценить скорость чтения:

echo 3 > /proc/sys/vm/drop_caches #очистить кэш
dd if=testfile of=/dev/null bs=64k
2097152+0 записей считано
2097152+0 записей написано
 скопировано 1073741824 байта (1,1 GB), 1,12647 c, 953 MB/c

Здесь команда dd прочитает файл testfile и запишет его в псевдо-устройство /dev/null. Устройство /dev/null это нечто вроде системного шредера или черной дыры для уничтожения всего, что туда попадает.

vvvvv

Установите утилиты time make file gcc

yum install time make file gcc
или для debian | ubuntu
apt-get install time make file gcc

Возможно потребуется еще

yum install perl-Time-HiRes

или

apt-get install  libtime-hires-perl
Внимание - наличие компилятора на сервере является опасным фактором в случае несанкционированного доступа. Удалите его потом если он не нужен.

Скачайте утилиту по ссылке unixbench , распакуйте и запустите.

wget http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
tar -xzf UnixBench5.1.3.tgz
cd UnixBench
./Run

Если одновременно запустить тест на множестве виртуальных серверов, то конечно результат будет далек от реально достижимого.

UnixBench состоит из нескольких отдельных тестов, которые ориентированы на конкретные параметры.

Dhrystone

Этот тест используется для измерения и сравнения производительности компьютеров. Тест фокусируется на обработке строк. Результат во многом зависит от аппаратного и программного обеспечения, опций компилятора и компоновщика, оптимизации кода, кэш-памяти, состояния типов данных.

Whetstone

Этот тест измеряет скорость и эффективность операций с плавающей запятой. Используется широкий спектр функций, включая C SIN, COS, SQRT, математические операции, массивы обращений, условные переходы и вызовы процедур.

Execl Throughput

Этот тест измеряет количество execl вызовов в секунду. Execl является частью семейства функций Exec, выполняющих замену текущего образ процесса с новым.

File Copy

Измеряет скорость переноса данных из одного файла в другой с различными размерами буфера за 10 секунд.

Pipe Throughput

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

Pipe-based Context Switching

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

Process Creation

Измерение скорости создания блоков управления и распределения памяти для новых процессов. Результат сильно зависит от пропускной способности памяти.

Shell Scripts

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

System Call Overhead

Тест оценивает накладные расходы на выполнение системных вызовов.

Графический тест

Тест измеряет 2D и 3D производительность обработки графики. Эти тесты дают очень приблизительное представление о 2D-и 3D-производительности системы и будет зависеть не только от оборудования, но от того какие используются драйверы. Для графических тестов потребуется установка 3dinfo.

Запуск Unixbench

Синтаксис:

Run [ -q | -v ] [-i <n> ] [-c <n> [-c <n> ...]] [test...]                                                                 

The option flags are:

  1. q Run in quiet mode.
  2. v Run in verbose mode.
  3. i <count> Run <count> iterations for each test – slower tests

use <count> / 3, but at least 1. Defaults to 10 (3 for

              slow tests).                                              
-c <n>        Run <n> copies of each test in parallel.                                                                 

The -c option can be given multiple times; for example:

./Run -c 1 -c 4                                                                         

will run a single-streamed pass, then a 4-streamed pass. Note that some tests (currently the graphics tests) will only run in a single-streamed pass. The remaining non-flag arguments are taken to be the names of tests to run. The default is to run «index». See «Tests» below.

Tests

The available tests are organised into categories; when generating index scores (see «The BYTE Index» below) the results for each category are produced separately. The categories are:

 system          The original Unix system tests (not all are actually
                 in the index)
 2d              2D graphics tests (not all are actually in the index)
 3d              3D graphics tests
 misc            Various non-indexed tests

The following individual tests are available:

system:
  dhry2reg         Dhrystone 2 using register variables
  whetstone-double Double-Precision Whetstone
  syscall          System Call Overhead
  pipe             Pipe Throughput
  context1         Pipe-based Context Switching
  spawn            Process Creation
  execl            Execl Throughput
  fstime-w         File Write 1024 bufsize 2000 maxblocks
  fstime-r         File Read 1024 bufsize 2000 maxblocks
  fstime           File Copy 1024 bufsize 2000 maxblocks
  fsbuffer-w       File Write 256 bufsize 500 maxblocks
  fsbuffer-r       File Read 256 bufsize 500 maxblocks
  fsbuffer         File Copy 256 bufsize 500 maxblocks
  fsdisk-w         File Write 4096 bufsize 8000 maxblocks
  fsdisk-r         File Read 4096 bufsize 8000 maxblocks
  fsdisk           File Copy 4096 bufsize 8000 maxblocks
  shell1           Shell Scripts (1 concurrent) (runs "looper 60 multi.sh 1")
  shell8           Shell Scripts (8 concurrent) (runs "looper 60 multi.sh 8")
  shell16          Shell Scripts (8 concurrent) (runs "looper 60 multi.sh 16")
2d:
  2d-rects         2D graphics: rectangles
  2d-lines         2D graphics: lines
  2d-circle        2D graphics: circles
  2d-ellipse       2D graphics: ellipses
  2d-shapes        2D graphics: polygons
  2d-aashapes      2D graphics: aa polygons
  2d-polys         2D graphics: complex polygons
  2d-text          2D graphics: text
  2d-blit          2D graphics: images and blits
  2d-window        2D graphics: windows
3d:
  ubgears          3D graphics: gears
misc:
  C                C Compiler Throughput ("looper 60 $cCompiler cctest.c")
  arithoh          Arithoh (huh?)
  short            Arithmetic Test (short) (this is arith.c configured for
                   "short" variables; ditto for the ones below)
  int              Arithmetic Test (int)
  long             Arithmetic Test (long)
  float            Arithmetic Test (float)
  double           Arithmetic Test (double)
  dc               Dc: sqrt(2) to 99 decimal places (runs
                   "looper 30 dc < dc.dat", using your system's copy of "dc")
  hanoi            Recursion Test -- Tower of Hanoi
  grep             Grep for a string in a large file, using your system's
                   copy of "grep"
  sysexec          Exercise fork() and exec().

The following pseudo-test names are aliases for combinations of other tests:

  arithmetic       Runs arithoh, short, int, long, float, double,
                   and whetstone-double
  dhry             Alias for dhry2reg
  dhrystone        Alias for dhry2reg
  whets            Alias for whetstone-double
  whetstone        Alias for whetstone-double
  load             Runs shell1, shell8, and shell16
  misc             Runs C, dc, and hanoi
  speed            Runs the arithmetic and system groups
  oldsystem        Runs execl, fstime, fsbuffer, fsdisk, pipe, context1,
                   spawn, and syscall
  system           Runs oldsystem plus shell1, shell8, and shell16
  fs               Runs fstime-w, fstime-r, fstime, fsbuffer-w,
                   fsbuffer-r, fsbuffer, fsdisk-w, fsdisk-r, and fsdisk
  shell            Runs shell1, shell8, and shell16
  index            Runs the tests which constitute the official index:
                   the oldsystem group, plus dhry2reg, whetstone-double,
                   shell1, and shell8
                   See "The BYTE Index" below for more information.
  graphics         Runs the tests which constitute the graphics index:
                   2d-rects, 2d-ellipse, 2d-aashapes, 2d-text, 2d-blit,
                   2d-window, and ubgears
  gindex           Runs the index and graphics groups, to generate both
                   sets of index results
  all              Runs all tests
fio -name iops_read64k_20 --rw=randrw --bs=4k   -iodepth 64 -directory=/var/tmp/ --size=2g  -ioengine libaio --direct=1

Актуальность: 2011/10/12 11:03