FastNetMon

Tuesday, 3 December 2013

Как нагрузить шину QPI?

Странный вопрос, но частенько это нужно. Что такое QPI - прошу в Google :)

Итак, подход довольно простой, нам нужно создать число процессов по числу NUMA нод, в случае двух процессорной конфигурации это 2 процесса соответственно.

После этого каждый процесс надо прибить к соответствующей NUMA ноде. А после этого на первом процессе создать SHM блок памяти и начать его читать/писать из второго процесса и наоборот. Получится, что для чтения/записи данных процессы будут вынуждены ходить друг к другу по шине QPI.

Так вот это все уже до меня придумал автор утилиты QPI-Stress и снабдил отличной иллюстрацией: https://github.com/pavel-odintsov/qpi-stress/blob/master/README


Собирал я на CentOS 6, но, уверен, отличий сильных не будет.

Открываем страницу проекта http://sourceforge.net/projects/qpi-stress/files/latest/download и выбираем прямую ссылку на архив.

Собираем:
cd /usr/src
wget тут_прямая_ссылка_на_архив_выше
tar -xf qpi-stress-0.1.tar.gz
cd qpi-stress-0.1/
cd src
# там этого файлика не хватает для сборки, но он есть в репо
curl http://sourceforge.net/p/qpi-stress/code/HEAD/tree/src/qpi.h?format=raw > qpi.h
cd ..
./configure --prefix=/opt/qpi-stress
Ура!

Теперь запускаем:
 qpi_stress
summay:
total processors: 24
total memory: 193252 MB
start processes: 24
data partern: 0xaa
runtime: 4294967295 seconds
result display delay: 10 seconds
per process  share memory size: 4 MB
bind process 0  to cpu 23
bind process 1  to cpu 22
bind process 2  to cpu 21
bind process 3  to cpu 20
bind process 4  to cpu 19
bind process 6  to cpu 17
bind process 5  to cpu 18
bind process 7  to cpu 16
bind process 8  to cpu 15
bind process 9  to cpu 14
bind process 10  to cpu 13
bind process 11  to cpu 12
bind process 12  to cpu 11
bind process 13  to cpu 10
bind process 14  to cpu 9
bind process 15  to cpu 8
bind process 16  to cpu 7
bind process 17  to cpu 6
bind process 18  to cpu 5
bind process 19  to cpu 4
bind process 20  to cpu 3
bind process 21  to cpu 2
bind process 22  to cpu 1
bind process 23  to cpu 0
-------------------------------
QPI stress staring ...
in recent 34298 r/w(s):
2013-12-03 19:46:34
read: 6737.57 MB/s, delay: 0.59 ms, write: 6747.00 MB/s, delay: 0.59 ms
in recent 34116 r/w(s):
2013-12-03 19:46:44
read: 6688.76 MB/s, delay: 0.60 ms, write: 6688.76 MB/s, delay: 0.60 ms
cin recent 34038 r/w(s):
2013-12-03 19:46:54
read: 6702.50 MB/s, delay: 0.60 ms, write: 6700.93 MB/s, delay: 0.60 ms
in recent 33378 r/w(s):
2013-12-03 19:47:04
read: 6560.14 MB/s, delay: 0.61 ms, write: 6560.14 MB/s, delay: 0.61 ms


No comments :

Post a Comment

Note: only a member of this blog may post a comment.