Asignación del búfer más grande sin usar swap

En C / C ++ bajo Linux, necesito asignar un gran bloque de memoria (varios gigabytes), para almacenar datos en tiempo real desde un sensor conectado al puerto ethernet y transmitir datos a aproximadamente 110 MB / s. Me gustaría asignar la mayor cantidad de memoria posible, para maximizar la longitud de la secuencia de datos que puedo almacenar. Sin embargo, también necesito asegurarme de que no habrá intercambio de discos, ya que el retraso resultante y el ancho de banda limitado del acceso al disco hacen que el búfer (muy limitado) del sensor se desborde.

¿Cuál es la mejor manera de determinar cuánta memoria asignar? ¿Estoy limitado a asignar un bloque un poco más pequeño que la memoria libre reportada, o puedo interactuar más directamente con el administrador de memoria virtual de Linux?

Respuestas a la pregunta(5)

Su respuesta a la pregunta