O/S : Rocky Linux 9.1 x86_64
CPU : Dual CPU(2 Nodes)
Memory : 256GB (128GB per Node)
I implemented the following program:
void *pBuf, *p;
int idx = 0, byte = 0;
uint64_t total = 0;
posix_memalign((void **)&(pBuf), 4096, 1*MIB);
do {
p = pBuf;
do {
len = recvfrom(sock, p, 8192, MSG_WAITALL, ...);
byte += len;
p += len;
} whle(byte < 1*MIB);
idx++;
} while(1);
The throughput appears stable at the beginning, but suddenly drops sharply at some point.
Therefore, I modified the program to avoid incrementing the buffer pointer, and tested it as follows:
posix_memalign((void **)&(pBuf), 4096, 1*MIB);
do {
p = pBuf;
do {
len = recvfrom(sock, p, 8192, MSG_WAITALL, ...);
byte += len;
/* p += len; */
} whle(byte < 1*MIB);
idx++;
} while(1);
I would appreciate it if you could let me know why the symptom is occurring and a solution to prevent them from happening