Хотя это не скрипт, это некоторый базовый код C, который я использовал для количественной оценки скорости данных сокетов с использованием стандартных сокетов TCP (на случай, если вам действительно нужно проверять на уровне сокетов, а не только общую пропускную способность).По сути, он записывает 1K ... 16M больших двоичных данных в блоках по 1K.
for (int i=0; i<15; i++)
{
if ((fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) > 0)
{
timenode node;
clock_gettime(CLOCK_REALTIME, &node.ts);
if (connect(fd, (struct sockaddr *) &sa, sizeof(sa)) == 0)
{
int n = 0;
int wb = 1024<<i;
while ((wb-n)>0)
{
n+=send(fd, buf, sizeof(buf), 0);
}
}
do_ts(node.ts, wtn[i], wavg[i]);
close(fd);
}
}
По иронии судьбы, я смог увидеть, что по каналу 1Gbps мне удалось получить пропускную способность около 110 МБ / с(125 МБ / с - теоретический максимум), пока я не отправил 4+ МБ данных ... затем он уменьшился до ~ 1 МБ / с ... из-за обратного давления, вызванного внутренней проблемой коммутатора Ethernet.