Я использовал httping для мониторинга производительности моего балансировщика нагрузки.
Утилита httping принимает аргумент -S, который кратко описан на странице руководства:
-S Разделить измеренную задержку во времени для подключения и времени для обмена запросом с HTTP-сервером.
Результат выглядит так:
подключен к [hostname-snip]: 80 (284 байта), seq = 259 time = 0,01+ 21,96+ 23,95+ 0,07+ 0,02 = 45,99 мс
Из этого ясно, что httping нарушает синхронизацию в Connect / Transmit / Wait (и т. Д.), А также показывает совокупный вывод, но я не могу объяснить, что означает каждое из значений.
Кто-нибудь знает, что означает каждое из этих значений?
Я некоторое время бился об это головой.
Я продолжал получать высокие значения в первом поле и думал, что у меня проблемы с фазой TCP-соединения.
В итоге я проконсультировался с исходным кодом:
Из main.c
2232: char *res_str = t_resolve.cur_valid ? format_value(t_resolve.cur, 6, 2, abbreviate) : strdup(gettext(" n/a"));
2233: char *con_str = t_connect.cur_valid ? format_value(t_connect.cur, 6, 2, abbreviate) : strdup(gettext(" n/a"));
2234: char *wri_str = format_value(t_write.cur, 6, 2, abbreviate);
2235: char *req_str = format_value(t_request.cur, 6, 2, abbreviate);
2236: char *clo_str = format_value(t_close.cur, 6, 2, abbreviate);
2237:
2238: str_add(&line, gettext("time=%s+%s+%s+%s+%s%s=%s%s%s%s ms %s%s%s"), res_str, con_str, wri_str, req_str, clo_str, sep, unsep, ms_color, tot_str, c_white, c_cyan, sc?sc:"", c_white);
Это означает, что вывод httping -S выглядит следующим образом:
Время = [Время разрешения DNS] + [Время TCP соединения] + [Время передачи HTTP] + [Время приема HTTP] + [Время закрытия TCP] = [Общее время]