Пропускная способность и задержка Unix доменного сокета, используемого процессом - PullRequest
3 голосов
/ 13 апреля 2020

Моя Linux машина состоит из процесса, использующего Unix Domain Socket. Как я могу рассчитать пропускную способность и задержку этого сокета домена. Есть ли какой-нибудь инструмент, который я могу использовать?

1 Ответ

1 голос
/ 21 апреля 2020

Для измерения пропускной способности и скорости сокета unix вы можете использовать socat , «многофункциональное реле для двунаправленной передачи данных»

Согласно справочной странице linux ;

Socat - утилита на основе командной строки, которая устанавливает два двунаправленных потока байтов и передает данные между ними. Поскольку потоки могут быть построены из большого набора различных типов приемников и источников данных (см. Типы адресов) и поскольку к потокам может быть применено множество вариантов адресов, socat может использоваться для множества различных целей.

Просто установить с помощью apt

Некоторые примеры выходных данных для socat

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

Создать случайный файл объемом 1 ГБ в «разделяемой памяти» (т. Е. RAM) диск)

>dd if=/dev/urandom of=/dev/shm/data.dump bs=1M count=1024
Memory to disk (SSD), through UNIX socket

>socat -u -b32768 UNIX-LISTEN:/tmp/unix.sock ./data.dump &
>socat -u -b32768 "SYSTEM:dd if=/dev/shm/data.dump bs=1M count=1024" UNIX:/tmp/unix.sock
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.96942 s, 545 MB/s

Память в память, через UNIX сокет

>socat -u -b32768 UNIX-LISTEN:/tmp/unix.sock /dev/shm/data.dump.out &
>socat -u -b32768 "SYSTEM:dd if=/dev/shm/data.dump bs=1M count=1024" UNIX:/tmp/unix.sock
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.927163 s, 1.2 GB/s

Память в / dev / null (сброс), через UNIX сокет

>socat -u -b32768 UNIX-LISTEN:/tmp/unix.sock /dev/null &
>socat -u -b32768 "SYSTEM:dd if=/dev/shm/data.dump bs=1M count=1024" UNIX:/tmp/unix.sock
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.720415 s, 1.5 GB/s

/ dev / zero до / dev / null, через UNIX socket

>socat -u -b32768 UNIX-LISTEN:/tmp/unix.sock /dev/null &
>socat -u -b32768 "SYSTEM:dd if=/dev/zero bs=1M count=1024" UNIX:/tmp/un    >socat -u -b32768 UNIX-LISTEN:/tmp/unix.sock /dev/null &
>socat -u -b32768 "SYSTEM:dd if=/dev/zero bs=1M count=1024" UNIX:/tmp/unix.sock
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.491179 s, 2.2 GB/six.sock
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.491179 s, 2.2 GB/s

Еще один инструмент, который вы можете попробовать, можно найти здесь linux -ip c -перечисления

Хорошее объяснение автора инструмента: здесь

...