Назад | Перейти на главную страницу

Лучший способ удалить старый журнал без блокировки процессора

У меня есть 3 машины AWS EC2, которые используют 500 ГБ хранилища EBS. На них у меня есть поисковая система SolrCloud, работающая на Jetty и обслуживающая множество запросов. Со временем бревна причалов сильно выросли до ~ 200 граммов. Я хотел бы удалить это, но не отказываясь от доступности моей системы solr. Если я сделаю rm -rf logfile затем время ожидания ЦП увеличивается до 99%, и узлы на этих машинах больше не отвечают, пока нагрузка не уменьшится.

Есть ли способ удалить эти файлы журналов без такого огромного увеличения нагрузки? Спасибо

Позже редактировать: Итак, я нашел в Интернете 4 способа очистки больших файлов, но между ними нет сравнения, поэтому я не уверен, что удовлетворяет мою проблему. Плюсы и минусы каждого из них?

1.> largefile.txt
2. truncate -s 0 {filename.txt}
3. logrotate
4. cat /dev/null > largefile.txt

проблема может быть даже не в ЦП, а в IOLOAD.

Некоторое время назад у меня была проблема с несколькими файлами журнала размером> 20 ГБ.

в основном то, что я сделал, чтобы уменьшить влияние удаления:

nice -n19 ionice -c3 rm LOGFILE

Однако ionice может работать некорректно при настройке вашего оборудования и / или настройках планировщика io.

По словам Стю Томпсона, вам может понадобиться планировщик CFG для работающей команды ionice.

ionice не работает для вас, возможно, из-за того, что вы работали с неправильным планировщиком. Очевидно, он работает только с планировщиком CFQ. - Стю Томпсон 31 окт.

Смотрите это для Проблема с планировщиком ionice CFG

Вы можете попробовать ограничить количество процессора, которое может использовать процесс rm. Это займет больше времени, но не забьет вашу систему. Вот это статья, рассказывающая об этом с использованием программы cpulimit.