воскресенье, 10 января 2016 г.

postgres бенчмарки. часть 3. железо

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

Есть хороший бенчмарк, написанный для этих целей - http://github.com/gregs1104/stream-scaling

Чтобы бенчмарк был более достверный - надо отключить пониженное энергопотребление процессора и динамическую частоту.

На системе с Intel(R) Core(TM) i3-4030U CPU @ 1.90GHz - 4 ядра:

Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:           11128.2     0.015148     0.014378     0.016843
Scale:           9838.3     0.017435     0.016263     0.022605
Add:             9520.8     0.026703     0.025208     0.031915
Triad:           8808.9     0.028463     0.027245     0.029689

Number of Threads requested = 2
Function    Best Rate MB/s  Avg time     Min time     Max time
Triad:          10690.4     0.026216     0.022450     0.030911

Number of Threads requested = 3
Function    Best Rate MB/s  Avg time     Min time     Max time
Triad:           9466.7     0.026791     0.025352     0.030185

Number of Threads requested = 4
Function    Best Rate MB/s  Avg time     Min time     Max time
Triad:          10119.8     0.024579     0.023716     0.027354



Вот данные с системы на которой основные бенчмарки проверяются:

Intel(R) Core(TM) i5 CPU         750  @ 2.67GHz
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:            6894.2     0.037242     0.036641     0.038797
Scale:           8803.7     0.028890     0.028694     0.029372
Add:             8344.5     0.045766     0.045409     0.047154
Triad:           7644.4     0.050011     0.049568     0.052200

Number of Threads requested = 2
Function    Best Rate MB/s  Avg time     Min time     Max time
Triad:           8180.4     0.047172     0.046320     0.049512

Number of Threads requested = 3
Function    Best Rate MB/s  Avg time     Min time     Max time
Triad:           7354.3     0.055346     0.051523     0.060877

Number of Threads requested = 4
Function    Best Rate MB/s  Avg time     Min time     Max time
Triad:           7282.7     0.054480     0.052030     0.059323



Современные системы работают с памятью лучше.


В первом случае частота памяти 1600 MHz, во втором - 1333 MHz


Диски
Т.к. постгрес работает с блоками по 8кб - замерим работу диск с данными, которые вдвое превышают оперативу
blocks = 250,000 * (gigabytes of RAM) = 1750000  (для 7gb)
time sh -c "dd if=/dev/zero of=bigfile bs=8k count=1750000 && sync"
time dd if=bigfile of=/dev/null bs=8k

hdd
time sh -c "dd if=/dev/zero of=bigfile bs=8k count=1750000 && sync"
1750000+0 записей получено
1750000+0 записей отправлено
скопировано 14336000000 байт (14 GB), 254,593 c, 56,3 MB/c

real 4m29.297s
user 0m0.284s
sys 0m10.948s

На чтение
time dd if=bigfile of=/dev/null bs=8k
1750000+0 записей получено
1750000+0 записей отправлено
скопировано 14336000000 байт (14 GB), 262,622 c, 54,6 MB/c

real 4m22.634s
user 0m0.592s
sys 0m15.396s

sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   19278 MB in  2.00 seconds = 9647.50 MB/sec
 Timing buffered disk reads: 272 MB in  3.01 seconds =  90.22 MB/sec

Скорость памяти можно измерять с помощью memtest86+

Комментариев нет:

Отправить комментарий