Процессоры ARM? Практика. Marvel Armada XP

от автора

Прежде всего хочу выразить благодарность компании Rikor и Олегу лично за предоставленные платформы для тестирования. По прежнему вы можете взять на тест Marvell Armada XP для себя и в дальнейшем, как тестер, оставить их у себя в пользовании за символическую плату. Как и обещал в прошлой статье Сервер на ARM? Made in Russia! — привожу тесты производительности серверов на процессорах ARM. Так как ARM это процессор сделанный по технологии System-On-Chip, то заострим наше внимание на производительности процессора.
На просторах всемирной паутины много тестов, но все они для нас, как фантастическое путешествие на Марс — как проводились, какой именно ревизии процессор (или просто другого производителя), какой софт использовался не ясно. А тут — сервера перед нами, остается только протестировать.

Тестовые стенды:

1) Core2 Quad:

ОС: CentOS release 5.7
Процессор: 4-х ядерный Intel® Core(TM)2 Quad CPU Q9450 @ 2.66GHz
ОЗУ: MemTotal 3939800kB

2) Atom D510:

ОС: Ubuntu 12.04.3
Процессор: 4-х ядерный Intel® Atom(TM) CPU D510 @ 1.66GHz
ОЗУ: MemTotal 4032060kB

3) Marvell Armada XP:

ОС: Ubuntu 12.04.3
Процессор: 4-х ядерный Marvell PJ4Bv7 Processor rev 2 (v7l)
ОЗУ: MemTotal 8019640 kB

Жесткие диски во всех трех стендах WD black. ОЗУ в Core 2 Quad и Atom D510 стоит максимальное количество.

sysbench — тест процессора

Тест запускался в 4 потока и в 10000 запросов к процессору.

Core2 Quad

Test execution summary:
total time: 2.5107s
total number of events: 10000
total time taken by event execution: 10.0303
per-request statistics:
min: 0.95ms
avg: 1.00ms
max: 487.26ms
approx. 95 percentile: 0.95ms

Atom D510

Test execution summary:
total time: 37.6966s
total number of events: 10000
total time taken by event execution: 150.7424
per-request statistics:
min: 9.18ms
avg: 15.07ms
max: 39.05ms
approx. 95 percentile: 15.09ms
ARM Armada XP

Test execution summary:
total time: 67.4705s
total number of events: 10000
total time taken by event execution: 269.7890
per-request statistics:
min: 26.66ms
avg: 26.98ms
max: 57.05ms
approx. 95 percentile: 27.10ms

OLTP тестирование — производительность MySQL с sysbench

Сначала создаем innoDB таблицу на 10000 записей. Командой

sysbench —test=oltp —mysql-table-engine=innodb —oltp-table-size=10000 —mysql-user=root —mysql-password=root —db-driver=mysql —test=oltp prepare

Затем команда

sysbench --num-threads=8 --max-requests=500 --oltp-table-size=10000 --mysql-user=root --mysql-password=root --db-driver=mysql --test=oltp run

выполнит тест с 8 клиентами (максимальное количество запросов — 500) на таблице, которая была создана на предыдущем этапе.

Вывод тестов:

Atom D510

Running the test with following options:
Number of threads: 8
Random number generator seed is 0 and will be ignored

Threads started!

OLTP test statistics:
queries performed:
read: 7028
write: 2008
other: 1004
total: 10040
transactions: 502 (93.89 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 9036 (1690.02 per sec.)
other operations: 1004 (187.78 per sec.)

General statistics:
total time: 5.3467s
total number of events: 502
total time taken by event execution: 42.2692s
response time:
min: 57.34ms
avg: 84.20ms
max: 129.67ms
approx. 95 percentile: 100.21ms

Threads fairness:
events (avg/stddev): 62.7500/0.66
execution time (avg/stddev): 5.2836/0.03

Marvell Armada XP

Running the test with following options:
Number of threads: 8

Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using «BEGIN» for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 500
Threads started!
Done.

OLTP test statistics:
queries performed:
read: 7000
write: 2500
other: 1000
total: 10500
transactions: 500 (361.28 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 9500 (6864.24 per sec.)
other operations: 1000 (722.55 per sec.)

Test execution summary:
total time: 1.3840s
total number of events: 500
total time taken by event execution: 11.0083
per-request statistics:
min: 8.47ms
avg: 22.02ms
max: 55.15ms
approx. 95 percentile: 39.44ms

Threads fairness:
events (avg/stddev): 62.5000/1.87
execution time (avg/stddev): 1.3760/0.00

Для сравнения возьмем три показателя: transactions (транзакции), read/write requests (запросы чтения/записи), other operations (другие операции).
Значение deadlocks не берем, т.к. оно одинаково на обоих платформах и равно нулю.

Архивация информации с помощью 7zip

Архивировать будем 1Гб случайно созданных данных.

du -sh /tmp/ramfs/file 1.0G /tmp/ramfs/file time 7za a dummy -mmt=4 -txz -so /tmp/ramfs/file | dd of=/dev/null

Core 2 Quad

7-Zip (A) [64] 9.20 Copyright © 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,4 CPUs)
Scanning

Creating archive stdout

Everything is Ok
2093146+15 records in
2093159+1 records out
1071697500 bytes (1.1 GB) copied, 160.375 seconds, 6.7 MB/s

real 2m40.376s
user 8m11.635s
sys 0m5.290s

Atom D510

7-Zip (A) [64] 9.20 Copyright © 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,4 CPUs)
Scanning

Creating archive stdout

Everything is Ok
2097252+15 records in
2097263+1 records out
1073798860 bytes (1.1 GB) copied, 557.429 s, 1.9 MB/s

real 9m17.434s
user 34m46.120s
sys 0m26.012s

Marvell Armada XP

7-Zip (A) 9.20 Copyright © 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,4 CPUs)
Scanning

Creating archive stdout

Everything is Ok
2097249+17 records in
2097263+1 records out
1073798860 bytes (1.1 GB) copied, 578.709 s, 1.9 MB/s

real 9m38.713s
user 32m26.630s
sys 0m21.290s

Тесты компрессии и декомпресси в 7zip

Core 2 Quad

7-Zip (A) [64] 9.20 Copyright © 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

RAM size: 3847 MB, # CPU hardware threads: 4
RAM usage: 850 MB, # Benchmark threads: 4

Dict Compressing | Decompressing
Speed Usage R/U Rating | Speed Usage R/U Rating
KB/s % MIPS MIPS | KB/s % MIPS MIPS

22: 8950 339 2569 8706 | 117613 397 2675 10611
23: 7510 294 2604 7651 | 115900 398 2666 10606
24: 8044 326 2653 8649 | 113672 398 2651 10546
25: 7424 311 2728 8477 | 112064 399 2642 10538
— Avr: 317 2638 8371 398 2659 10575
Tot: 358 2648 9473

Atom D510

7-Zip (A) [64] 9.20 Copyright © 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

RAM size: 3937 MB, # CPU hardware threads: 4
RAM usage: 850 MB, # Benchmark threads: 4

Dict Compressing | Decompressing
Speed Usage R/U Rating | Speed Usage R/U Rating
KB/s % MIPS MIPS | KB/s % MIPS MIPS

22: 1895 312 591 1843 | 34517 398 782 3114
23: 1871 317 602 1906 | 34142 399 783 3124
24: 1845 325 610 1984 | 33684 399 783 3125
25: 1794 331 618 2048 | 30397 354 806 2858
— Avr: 321 605 1945 388 788 3055
Tot: 354 697 2500

Marvell Armada XP

7-Zip (A) 9.20 Copyright © 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

RAM size: 7831 MB, # CPU hardware threads: 4
RAM usage: 850 MB, # Benchmark threads: 4

Dict Compressing | Decompressing
Speed Usage R/U Rating | Speed Usage R/U Rating
KB/s % MIPS MIPS | KB/s % MIPS MIPS

22: 1662 282 573 1616 | 45116 394 1034 4070
23: 1645 286 587 1676 | 44412 393 1033 4064
24: 1636 291 604 1759 | 43816 394 1032 4065
25: 1626 296 628 1856 | 43331 396 1029 4074
— Avr: 288 598 1727 394 1032 4068
Tot: 341 815 2898

Для графика возьмем среднее значение скорости компрессии и декомпрессии.

Тестирование производительности с Openssl speed

За счёт мультипроцессорности (4 одновременно запущенных процесса) бенчмарка вывод не читаемый, но суть заключается в расчётё различных типов шифрования. Здесь нам важно общее время выполнения задания и последняя часть вывода программы.

Core 2 Quad

OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
built on: Tue Feb 7 05:45:53 EST 2012
options:bn(64,64) md2(int) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) blowfish(ptr2)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -I/usr/kerberos/include -DL_ENDIAN -DTERMIO -Wall -DMD32_REG_T=int -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector —param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,—noexecstack -DOPENSSL_USE_NEW_FUNCTIONS -fno-strict-aliasing -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used:

real 7m21.644s
user 0m0.002s
sys 0m0.001s

Atom D510

OpenSSL 1.0.1 14 Mar 2012
built on: Tue Jun 4 07:26:06 UTC 2013
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector —param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,—noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM

real 16m37.958s
user 0m0.016s
sys 0m0.000s

Marvell Armada XP

OpenSSL 1.0.1 14 Mar 2012
built on: Tue Jun 4 07:43:19 UTC 2013
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) blowfish(ptr)
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector —param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,—noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM

real 16m39.221s
user 0m0.010s
sys 0m0.010s

С помощью Phoronix Test Suite протестируем процессоры наших платформ

Atom D510

Phoronix Test Suite v3.6.1

Installed: pts/polybench-c-1.0.2

PolyBench-C Test Configuration

Test:

1: 3 Matrix Multiplications
2: Correlation Computation
3: Covariance Computation
4: Test All Options

Enter Your Choice:
System Information

Hardware:
Processor: Intel Atom D510 @ 1.66GHz (4 Cores), Motherboard: Intel D510MO, Chipset: Intel N10 Family DMI, Memory: 2 x 2048 MB DDR2-800MHz, Disk: 320GB Hitachi HTS54323, Graphics: Intel N10 Family IGP, Audio: Realtek ALC662 rev1, Network: Realtek RTL8111/8168B

Software:
OS: Ubuntu 12.04, Kernel: 3.8.0-29-generic (x86_64), Display Driver: intel, Compiler: GCC 4.6, File-System: ext4, Screen Resolution: 1280×800

Would you like to save these test results (Y/n):
Estimated Run-Time: 10 Minutes

PolyBench-C 3.2:
pts/polybench-c-1.0.2 [Test: 3 Matrix Multiplications]
Test 1 of 3
Estimated Trial Run Count: 3
Estimated Test Run-Time: 4 Minutes
Estimated Time To Completion: 10 Minutes
Started Run 1 @ 15:58:43
Started Run 2 @ 16:06:02
Started Run 3 @ 16:13:16 [Std. Dev: 0.08%]

Test Results:
432.50632214546
431.82482385635
432.36951303482

Average: 432.23 Seconds

PolyBench-C 3.2:
pts/polybench-c-1.0.2 [Test: Correlation Computation]
Test 2 of 3
Estimated Trial Run Count: 3
Estimated Test Run-Time: 4 Minutes
Estimated Time To Completion: 7 Minutes
Started Run 1 @ 16:20:34
Started Run 2 @ 16:21:03
Started Run 3 @ 16:21:32 [Std. Dev: 0.80%]

Test Results:
27.11058306694
26.767813205719
26.717456102371

Average: 26.87 Seconds

PolyBench-C 3.2:
pts/polybench-c-1.0.2 [Test: Covariance Computation]
Test 3 of 3
Estimated Trial Run Count: 3
Estimated Time To Completion: 4 Minutes
Started Run 1 @ 16:22:05
Started Run 2 @ 16:22:36
Started Run 3 @ 16:23:05 [Std. Dev: 4.04%]
Started Run 4 @ 16:23:34 [Std. Dev: 3.70%]
Started Run 5 @ 16:24:05 [Std. Dev: 3.66%]
Started Run 6 @ 16:24:37 [Std. Dev: 4.24%]

Test Results:
29.076143026352
26.863905906677
27.619282960892
28.831228017807
29.238312959671
26.504108190536

Average: 28.02 Seconds

real 55m28.781s
user 25m44.476s
sys 0m1.728s

Marvell Armada XP

Phoronix Test Suite v3.6.1

Installed: pts/polybench-c-1.0.2

PolyBench-C Test Configuration

Test:

1: 3 Matrix Multiplications
2: Correlation Computation
3: Covariance Computation
4: Test All Options

Enter Your Choice:
System Information

Hardware:
Processor: Marvell- PJ4Bv7 rev 2 (4 Cores), Motherboard: Marvell Armada XP GP Board, Memory: 8192MB, Disk: 640GB JMicron H/W RAID

Software:
OS: Ubuntu 12.04, Kernel: 3.2.40-1-armadaxp (armv7l), Compiler: GCC 4.6, File-System: ext4

Would you like to save these test results (Y/n):
Estimated Run-Time: 7 Minutes

PolyBench-C 3.2:
pts/polybench-c-1.0.2 [Test: 3 Matrix Multiplications]
Test 1 of 3
Estimated Trial Run Count: 3
Estimated Test Run-Time: 3 Minutes
Estimated Time To Completion: 7 Minutes
Started Run 1 @ 15:58:14
Started Run 2 @ 16:05:08
Started Run 3 @ 16:11:51 [Std. Dev: 1.06%]

Test Results:
409.0100030899
400.97810292244
407.59055900574

Average: 405.86 Seconds

PolyBench-C 3.2:
pts/polybench-c-1.0.2 [Test: Correlation Computation]
Test 2 of 3
Estimated Trial Run Count: 3
Estimated Test Run-Time: 3 Minutes
Estimated Time To Completion: 5 Minutes
Started Run 1 @ 16:18:44
Started Run 2 @ 16:19:26
Started Run 3 @ 16:20:08 [Std. Dev: 0.10%]

Test Results:
39.603915929794
39.637764930725
39.679361104965

Average: 39.64 Seconds

PolyBench-C 3.2:
pts/polybench-c-1.0.2 [Test: Covariance Computation]
Test 3 of 3
Estimated Trial Run Count: 3
Estimated Time To Completion: 3 Minutes
Started Run 1 @ 16:20:53
Started Run 2 @ 16:21:35
Started Run 3 @ 16:22:17 [Std. Dev: 0.03%]

Test Results:
39.610389947891
39.589015960693
39.614406108856

Average: 39.60 Seconds

real 53m46.279s
user 24m14.830s
sys 0m1.350s

Выводы из тестов каждый может сделать для себя сам. Наши выводы, что ARM на уровне Atom D510. При этом ARM потребляет значительно меньше энергии и имеет неплохой потенциал, так как адаптация под архитектуру только начинается да и все мы ждем с нетерпением Aarch64 (ARM64).

В следующей статье планируем привести результаты тестирования работы различных приложений на платформе ARM. В планах различные панели управления хостингом, различные CMS. Если есть желание что-либо протестировать пишите на zbg@globatel.ru

ссылка на оригинал статьи http://habrahabr.ru/company/globatel_ltd/blog/213819/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *