Файл sysstat log как уменьшить размер
Перейти к содержимому

Файл sysstat log как уменьшить размер

  • автор:

20 полезных команд утилит Sysstat (mpstat, pidstat, iostat и sar) для мониторинга производительности Linux

В нашей последней статье мы узнали об установке и обновлении пакета sysstat и вкратце узнали об утилитах, которые поставляются с пакетом.

  1. Sysstat — инструмент мониторинга производительности и использования для Linux

Сегодня мы собираемся поработать с некоторыми интересными практическими примерами утилит mpstat, pidstat, iostat и sar, которые могут помочь нам выявить проблемы. У нас есть разные варианты использования этих утилит, я имею в виду, что вы можете запускать команды вручную с различными параметрами для разных видов работы или вы можете создавать свои собственные сценарии в соответствии с вашими требованиями. Вы знаете, что системные администраторы всегда немного ленивы и всегда пытались найти простой способ сделать что-то с минимальными усилиями.

mpstat — Статистика процессоров

1. Использование команды mpstat без каких-либо параметров отобразит средние глобальные активности по всем процессорам.

2. Использование mpstat с опциями «-P» (указать номер процессора) и «ВСЕ» отобразит статистику по всем процессорам один за другим, начиная с 0. 0 будет первым.

3. Чтобы отобразить статистику для N числа итераций через интервал в n секунд со средним значением для каждого процессора, используйте следующую команду.

4. Опция «I» напечатает общее количество статистических данных о прерываниях для каждого процессора.

5. Получите всю вышеуказанную информацию одной командой, т.е. эквивалентной «-u -I ALL -p ALL».

pidstat — Статистика по процессам и потокам ядра

Это используется для мониторинга процессов и текущих потоков, которыми управляет ядро. pidstat также может проверять статус дочерних процессов и потоков.

6. Использование команды pidstat без аргументов отобразит все активные задачи.

7. Чтобы распечатать все активные и неактивные задачи, используйте опцию «-p» (процессы).

8. Используя команду pidstat с опцией «-d 2», мы можем получить статистику ввода-вывода, а 2 — интервал в секундах для получения обновленной статистики. Этот вариант может быть удобен в ситуации, когда ваша система подвергается интенсивному вводу-выводу, и вы хотите получить подсказки о процессах, потребляющих много ресурсов.

9. Чтобы узнать статистику процессора вместе со всеми потоками об идентификаторе процесса 4164 с интервалом 2 секунды 3 раза, используйте следующую команду с опцией «-t» (отображать статистику выбранного процесса).

10. Используйте параметр «-rh», чтобы узнать об использовании памяти процессами, которые часто меняют свое использование с интервалом в 2 секунды.

11. Чтобы распечатать весь процесс, содержащий строку «VB», используйте опцию «-t», чтобы также увидеть потоки.

12. Чтобы получить приоритет в реальном времени и информацию о расписании, используйте опцию «-R».

Здесь я не буду рассказывать об утилите Iostat, поскольку мы уже рассмотрели ее. Пожалуйста, посмотрите «Мониторинг производительности Linux с помощью Vmstat и Iostat», чтобы получить все подробности о iostat.

sar — Репортер системной активности

Используя команду «sar», мы можем получить отчеты о производительности всей системы. Это может помочь нам найти узкое место в системе и помочь найти решения этих досадных проблем с производительностью.

Ядро Linux поддерживает внутренний счетчик, который отслеживает все запросы, время их выполнения, количество блоков ввода-вывода и т. Д. На основе всей этой информации sar вычисляет частоту и соотношение этих запросов, чтобы узнать об узких местах.

Главное в sar то, что он сообщает обо всех действиях за определенный период времени. Итак, убедитесь, что sar собирает данные в подходящее время (не в обеденное время или в выходные. 🙂

13. Ниже приводится основная команда для вызова sar. Он создаст один файл с именем «sarfile» в вашем текущем каталоге. Параметр «-u» предназначен для получения сведений о ЦП и собирает 5 отчетов с интервалом в 2 секунды.

14. В приведенном выше примере мы вызвали sar в интерактивном режиме. У нас также есть возможность вызывать его в неинтерактивном режиме через cron, используя сценарии/usr/local/lib/sa1 и/usr/local/lib/sa2 (если вы использовали/usr/local в качестве префикса во время установки).

  1. /usr/local/lib/sa1 — это сценарий оболочки, который мы можем использовать для планирования cron, который будет создавать ежедневный двоичный файл журнала.
  2. /usr/local/lib/sa2 — это сценарий оболочки, который преобразует двоичный файл журнала в удобочитаемую форму.

Используйте следующие записи Cron, чтобы сделать это не интерактивным:

На внутреннем уровне скрипт sa1 вызовет утилиту sadc (сборщик данных системной активности) для выборки данных с определенным интервалом. sa2 вызовет sar для преобразования двоичного файла журнала в удобочитаемую форму.

15. Проверьте длину очереди выполнения, общее количество процессов и среднюю загрузку с помощью опции «-q».

16. Проверьте статистику смонтированных файловых систем с помощью «-F».

17. Просматривайте сетевую статистику с помощью «-n DEV».

18. Просматривайте статистику блочного устройства, такую как iostat, используя «-d».

19. Для печати статистики памяти используйте опцию «-r».

20. Используя «safd -d», мы можем извлекать данные в формате, который можно обрабатывать с помощью баз данных.

Вы также можете сохранить это в CSV, а затем нарисовать диаграмму для презентаций, как показано ниже.

На этом пока все, вы можете ссылаться на страницы руководства для получения дополнительной информации о каждой опции и не забудьте рассказать о статье с вашими ценными комментариями.

Русские Блоги

Всемогущий чемпион: производительность системы Linux и использование инструментов мониторинга активности SysStat

Sysstat Это очень удобный инструмент, который имеет многочисленные инструменты мониторинга системных ресурсов для мониторинга производительности и использования системы. У нас есть значительная часть инструментов, используемых в повседневном использовании из SysStat Toolkit. В то же время он также предоставляет плану сбора с использованием выражений CRON для разработки данных производительности и активности.

141737dy24thy1om12dof2.png

В следующей таблице инструмент, который включен в пакет SysStat

iostat: Выходная статистика процессора и статистика ввода (ввода / вывода) Статистика всех устройств ввода / вывода.

mpstat: О деталях CPU (один выход или выход пакетов).

pidstat: О запущенном процессе / задании, ЦП, памяти и другой статистике.

sar: Сохранение и выходные данные разных системных ресурсов (процессор, память, IO, сеть, ядро ​​и т. Д.).

sadc: System Active Collector для сбора данных Backend для инструментов SAR.

sa1: Система собирает и сохраняет двоичные данные файла данных SADC и использует инструмент SADC.

sa2: Metall с инструментами SAR для генерации ежедневного сводного отчета.

sadf: Используется для форматирования выхода инструмента SAR в разных форматах данных (CVS или XML).

Sysstat: Страница справки человека для инструмента SysStat.

nfsiostat: Ввода / вывода статистика NFS (сетевая файловая система).

cifsiostat: CIFS (общая интернет-файловая система) статистика.

Недавно (17 июня 2014 г.),sysstat 11.0.0(Стабильное издание) было выпущено, и были некоторые интересные функции, следующие:

Команда PidStat добавила несколько новых опций: во-первых, это опция «-R», которая будет выводить приоритетную информацию о политиках и планировании задач. После"-G«Параметры, через эту опцию мы можем использовать процесс поиска имен, затем перечислите все соответствующие потоки.

Команды SAR, SADC и SADF также приносят некоторые функции с точки зрения файлов данных. Я могу использовать только это в прошлом "saDD«Чтобы назвать файл данных. Теперь используйте-DВарианты могут быть использованыsaYYYYMMDD«Поверните названный файл данных, то же самое, текущий файл данных не должен быть»var/log/sa«Справочник, мы можем использовать переменную« SA_DIR »для определения нового каталога, который будет применяться к командам SA1 и SA2.

Установите SysStat в системе Linux

В главном выпуске Linux’ssysstat«Набор инструментов может быть установлен в библиотеке по умолчанию. Однако версия в библиотеке по умолчанию обычно является немного старой, поэтому мы загрузим пакет исходного кода, компилируйте последнюю версию (11.0.0Версия).

Во-первых, используйте следующее соединение, чтобы загрузить последнюю версию пакета SYSSTAT, или вы можете использоватьwgetКоманда загружается непосредственно в терминале.

Download Sysstat Package

Скачать пакет SysStat

Затем распаковать загруженный пакет, перейдите в каталог и начните компилировать и установить

Здесь у вас есть два способа компиляции и установки:

Во-первых, вы можете использоватьiconfig(Это даст вам большую гибкость, вы можете выбрать / ввести пользовательское значение каждого параметра)

Sysstat iconfig Command

Команда SysStat’s iconfig

Во-вторых, вы можете использовать стандартыconfigureЧтобы определить все варианты в командной строке. Вы можете запустить./configure -help командаЧтобы перечислить все ограниченный варианты, поддерживаемые командой.

Sysstat Configure Help

Cofigure STSSTAT -HELP

Здесь мы используем стандарты./configureКоманда для компиляции и установки SysStat Toolkit.

Configure Sysstat in Linux

Настроить SysStat в системе Linux

После завершения компиляции мы увидим некоторые выходы, аналогичные вышеуказанному рисунку. Теперь запустите следующую команду для просмотра версии SysStat.

Обновить SysStat в системе Linux

По умолчанию используется SysStat/usr/local«В качестве префикса его каталога. Следовательно, все двоичные данные / инструменты установлены»/usr/local/bin«Справочник. Если ваша система уже установлена ​​SysStat Toolkit, возможны упомянутый выше двоичные данные / инструмент»/usr/bin"Справочник.

потому что"$PATH«Переменная не включает»/usr/local/bin«Путь, вы можете потерпеть неудачу при обновлении. Итак, убедитесь, что»/usr/local/bin«Путь включен в переменную среды« $ PATH »или перед составлением и удалением старой версии перед обновлением-prefixОпция Указанное значение "/usr”。

# yum remove sysstat [On RedHat based System]

# apt-get remove sysstat [On Debian based System]

Теперь используйте команду mpstat ‘ -V «Опции просмотреть обновленную версию.

DBCC SHRINKFILE в файле журнала не уменьшает размер даже после резервного копирования журнала на диск

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

Сначала я просто зашел в SSMS, свойства БД, файлы и отредактировал значение начального размера (МБ) до 10. Это уменьшило размер файла журнала до 62 ГБ (не совсем те 10 МБ, которые я ввел). Итак, я прикрепил SQL Profiler и увидел, что вызывается DBCC SHRINKFILE. Затем я ввел эту команду в редактор запросов, и вот результаты.

И результат был:

Затем я провел небольшое исследование и обнаружил следующее:

В нем говорится, что мне нужно сделать резервную копию файла журнала перед файлом сжатия, чтобы файлы виртуального журнала были освобождены, и файл сжатия мог выполнять свою работу — я не знаю, что это значит . Я просто перефразирую здесь 🙂

Итак, я подумал, что попытаюсь сделать резервную копию файла журнала, а затем выполнить DBCC SHRINKFILE (и я изменил размер нового файла журнала на 12800, поскольку это был MinimumSize, указанный в выходных данных предыдущей команды DBCC SHRINKFILE)

Результат был таким же, как и при первом обходе. Я могу уменьшить размер файла журнала только до 62 ГБ.

Я не уверен, что делаю не так и что мне делать дальше.

для предотвращения повторения этого следует запустить резервное копирование журналов или установить простой режим восстановления. — DForck42

Моя проблема заключалась в настройке ПРИОСТАНОВЛЕННОЙ РЕПЛИКАЦИИ / ЗЕРКАЛЬНОГО ЗЕРКАНИЯ — похоже, sql не будет сжимать журналы, если он думает, что они понадобятся ему для репликации. Вероятно, это не будет проблемой для многих, но некоторым может помочь. — pettys

9 ответы

Хорошо, вот решение для уменьшения физического размера файла транзакции, но без изменение режима восстановления на простой.

В своей базе данных найдите file_id файла журнала, используя следующий запрос.

В моем случае файл журнала — file_id 2. Теперь мы хотим найти используемые виртуальные журналы и сделать это с помощью следующей команды.

Здесь вы можете увидеть, используются ли какие-либо виртуальные журналы, посмотрев, имеет ли статус 2 (используется) или 0 (бесплатно). При сжатии файлов пустые виртуальные журналы физически удаляются, начиная с конца файла, пока он не достигнет первого использованного состояния. Вот почему сжатие файла журнала транзакций иногда сжимает его частично, но не удаляет все свободные виртуальные журналы.

Если вы заметили статус 2, который появляется после 0, это блокирует сжатие от полного сжатия файла. Чтобы обойти это, сделайте еще одну резервную копию журнала транзакций и немедленно запустите эти команды, указав file_id, указанный выше, и размер, до которого вы хотите уменьшить файл журнала.

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

ответ дан 05 мар ’19, в 12:03

Работал как шарм. Резервное копирование журнала, свободного на 99%, заняло всего секунду, и размер файла сразу же увеличился с 22,000 200 МБ до XNUMX МБ. Это должно быть отмечено как правильный ответ. — Трийнко

Я ценю справочную информацию. Я все еще застрял, потому что я думаю, что ваше решение сводится к решению, которое исходный плакат пытался и не смог заставить работать. Ваше решение в основном для запуска «BACKUP LOG . GO DBCC SHRINKFILE . » несколько раз, пока оно не сработает? Я пробовал несколько раз безуспешно, и похоже, что OP тоже безуспешно. Просто хочу уточнить, не упускаю ли я что-то в вашем ответе. — мелкие

ОБНОВЛЕНИЕ: моя проблема заключалась в том, что приостановленная настройка репликации / зеркалирования блокировала tlog. Наверное, небольшой крайний корпус. — мелкие

@pettys да, если вы хотите сжать файл до минимально возможного размера, вам нужно сделать резервную копию, сжать, резервную копию и сжать, все за один раз. Причина (я думаю, что это задумано) заключается в том, что сжатие только уменьшает размер файла журнала до размера «использованных страниц» с момента последнего резервного копирования; возможно, чтобы свести к минимуму необходимость увеличения файла журнала, что полезно для производственной среды, где происходят регулярная загрузка и резервное копирование. Вышеупомянутое пытается продемонстрировать и отладить это. Если в вашем файле журнала стоит 0, его можно уменьшить. В противном случае могут возникнуть проблемы с освобождением страниц ваших резервных копий журналов. — Раддерз

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

ЭТО НЕ РЕКОМЕНДУЕТСЯ для производственных систем . Вы потеряете возможность восстановления на определенный момент времени из предыдущих резервных копий / файлов журналов.

См. Пример B на этом DBCC SHRINKFILE (Transact-SQL) Страница msdn для примера и объяснения.

sysstat не обновляет конфигурацию?

Это мой первый вопрос по SuperUser, так что будьте спокойны!

Я попытался удалить журналы /var /log /sa /* моих серверов, обновив файл /etc /sysconfig /sysstat следующим образом:

Ранее мой конфигурационный файл хранил файлы за 28 дней и сжимал их каждые 31 день (никогда). После внесения вышеуказанного обновления я запустил:

Безрезультатно — я также заметил, что задание cron по умолчанию находится в:

Что гласит следующее:

Нужно ли вручную запускать вышеизложенное или подождать до завтра? ИЛИ, это никак не связано с моим перезапуском и заданиями cron, то есть мне просто нужно вручную удалить ненужные журналы saDD/sarDD?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *