Medir el ancho de banda del servidor

Medir el ancho de banda del servidor

Quiero medir el ancho de banda de mi servidor de reenvío implementado en Python, lo que significa que quiero medir cuántos bytes procesa mi servidor por segundo. Entonces, cómo estaba planeando hacer eso es: durante un período de tiempo fijo (por ejemplo 300sec), estoy midiendo el número de received bytesy sent bytes. Después de este período de tiempo calculo la relación: bytes_received / bytes_sent. Sin embargo, no estoy seguro de que esto sea lo que quiero, porque me da una proporción (que generalmente es alrededor de 1-1,5), lo que significa que proceso todos o casi todos los mensajes que recibí en algún período de tiempo, pero Quiero medir cuántos bytes procesé. Estaría muy agradecido si alguien pudiera aconsejarme cómo puedo medir mi ancho de banda.

Respuesta1

Creo que lo que necesitas es hacer esto:

bytes_recibidos= bytes_recibidos300s - bytes_recibidos0s

bytes_enviados= bytes_enviados300s - bytes_enviados0s

total_bytes_procesados= bytes_recibidos - bytes_enviados

Esto le daría la cantidad total de bytes procesados ​​durante el período de 300.

Respuesta2

Puede utilizar psutil.net_io_counters() para calcular el ancho de banda durante un período de tiempo. Tomarás una instantánea a los 0 segundos y una instantánea a los 300 segundos.

def get_bandwidth():
    # Get net in/out
    net1_out = psutil.net_io_counters().bytes_sent
    net1_in = psutil.net_io_counters().bytes_recv

    time.sleep(300) # Not best way to handle getting a value 300 seconds later

    # Get new net in/out
    net2_out = psutil.net_io_counters().bytes_sent
    net2_in = psutil.net_io_counters().bytes_recv

    # Compare and get current speed
    if net1_in > net2_in:
        current_in = 0
    else:
        current_in = net2_in - net1_in

    if net1_out > net2_out:
        current_out = 0
    else:
        current_out = net2_out - net1_out

    network = {"traffic_in": current_in, "traffic_out": current_out}

    # Return data in bytes
    return network

información relacionada