В C/С++ под Linux мне нужно выделить большой (несколько гигабайт) блок памяти, чтобы хранить данные в реальном времени от датчика, подключенного к порту Ethernet, и потоковых данных со скоростью около 110 МБ/с. Я бы хотел выделить наибольший объем памяти, чтобы максимально увеличить длину последовательности данных, которую я могу сохранить. Тем не менее, мне также необходимо убедиться, что не будет обмена на диске, поскольку результирующая задержка и ограниченная пропускная способность доступа к диску заставляют переполнять датчик (очень ограниченный).
Каков наилучший способ определить, сколько памяти выделяется? Могу ли я просто выделить немного меньший блок, чем свободная память, или я могу напрямую взаимодействовать с менеджером виртуальной памяти Linux?