ver tengo saber revisar que procesos para memoria mas liberar consumen como comando chequear cantidad linux memory-management tcp-ip

tengo - ver memoria ram linux terminal



¿Cuánta memoria consume el kernel de Linux por conexión de red TCP/IP? (3)

Depende. En muchas muchas cosas.
Creo que una conexión inactiva tomará algunos cientos de bytes.
Pero si hay datos en la transmisión y / o recepción de datos, entonces el consumo aumenta. El tamaño de la ventana puede limitar aproximadamente este consumo.
El consumo extra de datos no es solo los bytes en la cola de recepción / transmisión. Hay gastos generales, por lo que un segmento con un byte puede tomar algo como 2K. TCP intenta reducir esto, por ejemplo, al fusionar segmentos en un solo sk_buff, pero no siempre tiene éxito.

¿Cuánta memoria en promedio consume el kernel de Linux (en el espacio de direcciones del kernel) por conexión de red TCP / IP?


Para una conexión TCP, la memoria consumida depende de

  1. tamaño de sk_buff (estructura de red interna utilizada por Linux Kernel)

  2. el búfer de lectura y escritura para una conexión

el tamaño de los buffers puede ajustarse según sea necesario

root@x:~# sysctl -A | grep net | grep mem

verificar estas variables

estos especifican el uso máximo de buffer de memoria predeterminado para todas las conexiones de red en kernel

net.core.wmem_max = 131071 net.core.rmem_max = 131071 net.core.wmem_default = 126976 net.core.rmem_default = 126976

estos especifican el uso de la memoria intermedia para las conexiones tcp

net.ipv4.tcp_mem = 378528 504704 757056 net.ipv4.tcp_wmem = 4096 16384 4194304 net.ipv4.tcp_rmem = 4096 87380 4194304

los tres valores especificados son los tamaños de búfer "mínimo predeterminado máximo". Entonces, para comenzar con Linux, se usarán los valores predeterminados de buffer de lectura y escritura para cada conexión. A medida que aumente el número de conexiones, estos búferes se reducirán [como máximo hasta el valor mínimo especificado] Lo mismo ocurre con el valor máximo de búfer.

Estos valores se pueden establecer usando este sysctl -w KEY=KEY VALUE

p.ej. El siguiente comando garantiza que los búferes de lectura y escritura para cada conexión sean 4096 cada uno.

sysctl -w net.ipv4.tcp_rmem=''4096 4096 4096'' sysctl -w net.ipv4.tcp_wmem=''4096 4096 4096''


También depende de qué capa. En el caso de un escenario de puente puro, solo existe el FDB a nivel de puente. Cuando el enrutamiento entra en juego, está la tabla de enrutamiento y el nivel de IP FDB / neighbor db. Y finalmente, una vez que un socket local está en la obra, tiene, por supuesto, tamaño de ventana, búferes de socket (ambos envían y reciben, y son predeterminados a 128k la última vez que lo verifiqué), listas de fragmentos (si se usan), así que es donde la memoria va, pero una respuesta clara es difícil de hacer con todas las partes en uso. Puede usar ss -m para obtener algunas estadísticas de memoria de los sockets de transmisión local.