Networking 进程使用的Unix域套接字的吞吐量和延迟

Networking 进程使用的Unix域套接字的吞吐量和延迟,networking,unix-socket,Networking,Unix Socket,我的Linux机器由一个使用Unix域套接字的进程组成。如何计算该域套接字的吞吐量和延迟。有什么工具可以使用吗?为了测量unix套接字的吞吐量和速度,您可以使用“用于双向数据传输的多用途中继” 根据linux手册页 Socat是一个基于命令行的实用程序,它建立了两个 双向字节流并在它们之间传输数据。因为 这些数据流可以由大量不同类型的数据流构成 数据接收器和数据源(请参阅地址类型),因为 地址选项可应用于流,socat可用于 许多不同的目的 使用apt进行简单安装 socat的一些示例输出 在此

我的Linux机器由一个使用Unix域套接字的进程组成。如何计算该域套接字的吞吐量和延迟。有什么工具可以使用吗?

为了测量unix套接字的吞吐量和速度,您可以使用“用于双向数据传输的多用途中继”

根据linux手册页

Socat是一个基于命令行的实用程序,它建立了两个 双向字节流并在它们之间传输数据。因为 这些数据流可以由大量不同类型的数据流构成 数据接收器和数据源(请参阅地址类型),因为 地址选项可应用于流,socat可用于 许多不同的目的

使用apt进行简单安装

socat的一些示例输出

在此处输入链接描述

在“共享内存”(即RAM磁盘)中生成1GB随机文件

内存到内存,通过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
>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
>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
通过UNIX套接字将内存转换为/dev/null(放弃)

>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
>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
>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
/dev/zero到/dev/null,通过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
>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
>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
您可以在此处找到另一个可以试用的工具


工具作者的一个很好的解释是

所有这些工具,生成数据,然后计算性能。但是对于我的实验,我只知道UDS套接字和使用它的过程。有了这些信息,我想计算UDS性能。给出的数据点:processID,UDS套接字ID。输出:UDS套接字吞吐量&最近您是否试图从运行的程序的pid上测试,以及您创建的套接字。。。或者只是尝试在使用unix socket的随机pid上测试延迟—您尝试从运行的程序以及您创建的套接字中测试pid:是。我们可以假设,这是一个黑匣子,在这个过程中我们不能改变任何东西。我们只知道PID和SocketID。