Практическое задание

Эта задача — шаг 9 курса «Логи: разбор и обслуживание»

Медианное время SQL-запроса

средне~5 мин

В /var/log/db/queries.txt строки ИД_ЗАПРОСА МС — сколько миллисекунд шёл каждый запрос к базе. Значений нечётное число. Найди медиану времени (средний элемент ряда, отсортированного по возрастанию) и запиши число в /root/db_median.txt.

Что потренируешь:
  • медиана
  • sort -n
  • awk
  • массив по NR
  • выбор колонки

Разбор темы

Медиана — значение посередине упорядоченного ряда; в отличие от среднего, один запрос на 20 секунд её почти не сдвигает, поэтому для «типичного» времени ответа медиана честнее. Для нечётного числа значений N это элемент с номером (N+1)/2 после сортировки по возрастанию. Сортировать надо как числа: текстовая сортировка сравнивает посимвольно и ставит 1200 перед 33. Если в строке есть лишние колонки, сначала оставляют только числа.

Что проверяется

  1. медиана = 41

Как это выглядит