I have a group of programs that I was stress testing today. I drastically shot up the input load to the program and it worked at first, but I had an apparent memory leak sucking up memory. The only problem is that 1)
Valgrind is insisting I don't have any leaks and 2) it only happens a high packet ingest rates.
One, possible crazy, idea was that the extra memory may be going towards a message queue due to my system lacking the bandwidth to output packets as fast as they are incoming forcing increasingly large buffers of data to be transmitted. The program that is showing as hogging the memory is reading from TCP socket and writing to a named pipe. so I have three questions.
Can the in-memory queue for storing to-be dispatched data increase indefinately for either TCP/IP or named pipes?
if the queue can and did grow would it still show that My program (the one reading from TCP and outputting to the named pipe) was the memory hog, or would the memory just show as system memory?
is there a command I can use to check memory allocated to these queues? I'm running Centos
Admitedly I don't really think this is the cause of my leak, but then again I realy can't guess what else is so I have to ask!