Измерьте пропускную способность сервера

Измерьте пропускную способность сервера

Я хочу измерить пропускную способность моего сервера-ремейлера, реализованного на Python, что означает, что я хочу измерить, сколько байт обрабатывает мой сервер в секунду. Итак, как я планировал это сделать: в течение фиксированного периода времени (например 300sec), я измеряю количество received bytesи sent bytes. По истечении этого периода времени я вычисляю отношение: bytes_received / bytes_sent. Однако я не уверен, что это то, что мне нужно, потому что это дает мне отношение (которое обычно составляет около 1-1,5), так что это означает, что я обрабатываю все или почти все сообщения, которые я получил за какой-то период времени, но я хочу измерить, сколько байт я обработал. Я буду очень признателен, если кто-нибудь сможет посоветовать мне, как я могу измерить свою пропускную способность.

решение1

Я думаю, вам нужно сделать следующее:

получено_байтов= получено_байт300с - получено_байт0с

байты_отправлены= байт_отправлено300с - байт_отправлено0с

всего_байт_обработано= байты_получено - байты_отправлено

Это даст вам общее количество байтов, обработанных за 300-секундный период.

решение2

Вы можете использовать psutil.net_io_counters() для расчета пропускной способности за определенный период времени. Вы сделаете снимок в 0 секунд и снимок в 300 секунд.

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

Связанный контент