Выполнение команды сортировки в unix - PullRequest
3 голосов
/ 03 июня 2011

Я пишу собственный анализатор журнала apache для своей компании и заметил проблему с производительностью, которую я не могу объяснить.У меня есть текстовый файл log.txt размером 1,2 Гб.sort

Кто-нибудь знает, почему это происходит?

Ответы [ 2 ]

4 голосов
/ 03 июня 2011

cat file | sort - это бесполезное использование кошки .

Цель кота - объединить (или "cateate") файлы. Если это только один файл, объединяя его с ничто не является пустой тратой времени, и стоит вам процесс.

Это не должно занять больше времени. Вы уверены, что ваши сроки верны?

Пожалуйста, опубликуйте вывод:

time sort file

и

time cat file | sort

Вам нужно выполнить команды несколько раз и получить среднее значение.

1 голос
/ 03 июня 2011

Вместо того, чтобы беспокоиться о производительности sort, вместо этого вы должны изменить логирование:

  • Удалите ненужные подробные данные в ваш журнал.
  • Периодически сверните журнал (на основе даты или размера).
  • ... исправить ошибки, выводимые в журнал. ;)

Кроме того, вы уверены, что кошка читает весь файл? Может иметь буфер чтения и т. Д.

...