Uso do buffer de rede

2

Estou enfrentando alguns problemas com meu aplicativo e estou curioso para saber o uso do buffer de rede em um determinado momento.

Estou usando uma máquina linux do CentOS 6.

Eu sei que os valores padrão estão presentes em / proc / sys / net / core /

Mas não consegui encontrar o uso atual dos Buffers. Se alguém tiver alguma pista sobre como encontrar o uso atual, por favor me avise.

Obrigado antecipadamente.

    
por Vijit Jain 20.02.2014 / 21:06

2 respostas

3

Se você executar ss ou netstat , os valores Recv-Q e Send-Q produzirão essa saída.

I.E

$ ss -nt
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port 
ESTAB      203    0               192.168.1.2:36122       198.xxx.xxx.xxx:80    
CLOSE-WAIT 1      0               192.168.1.2:43870       140.xxx.xxx.xxx:80    

Eu adicionei um programa python simples para demonstrar isso.

#/usr/bin/python
from time import sleep
from socket import *
import subprocess

if __name__ == "__main__":
  sock = socket(AF_INET, SOCK_STREAM)
  sock.setsockopt(IPPROTO_TCP, TCP_CORK, 1)
  sock.connect(('www.google.com', 80))
  length = sock.send("GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n")
  sport = sock.getsockname()[1]
  print "Length of sent data: {0}".format(length)
  subprocess.call(["ss" ,"-nt", "sport", "=", ":{0}".format(sport)])
  sock.close()

Que produz

Length of sent data: 40
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port 
ESTAB      0      40              192.168.1.2:34259       173.194.41.180:80    
    
por 20.02.2014 / 21:11
1

Na minha cabeça, tente ss -m - deve imprimir os tamanhos das filas do soquete, passando a saída por grep / cut / awk para somar estes valores.

    
por 20.02.2014 / 21:18