Я запускаю следующую программу на C между двумя машинами с 10GibE;программа сообщает 12Gib / s, тогда как nload
сообщает (более правдоподобно) 9.2Gib / s.Может кто-нибудь сказать мне, что я делаю неправильно в программе?
.
.
#define BUFFSZ (4*1024)
char buffer[BUFFSZ];
.
.
start = clock();
while (1) {
n = write(sockfd, buffer, BUFFSZ);
if (n < 0)
error("ERROR writing to socket");
if (++blocks % (1024*1024) == 0)
{
blocks = 0;
printf("32Gib at %6.2lf Gib/s\n", 32.0/(((double) (clock() - start)) / CLOCKS_PER_SEC));
start = clock();
}
}
Это CentOs 6.0 в Linux 2.6.32;нагрузка 0.7.3, gcc 4.4.4.