10 useful sar (sysstat) examples for unix / linux performance monitoring

Информация о дисковом носителе

1. df

Команда выдает информацию о подмонтированных разделах и объемах, занимаемых ими:

df -h

Пример ответа:

Файловая система              Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/sys-root             25G          11G   15G           41% /
devtmpfs                        1,9G            0  1,9G            0% /dev
tmpfs                           1,9G         4,0K  1,9G            1% /dev/shm
tmpfs                           1,9G         193M  1,7G           11% /run
tmpfs                           1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/sda1                      1014M         186M  829M           19% /boot

2. fdisk

Подробная информация о диске и его разделах:

fdisk /dev/sda -l

Ответ:

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d5e55

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM

3. iotop

Команда позволяем увидеть загруженность дисковой системы. Утилиты может не быть в системе — сначала ее нужно установить.

а) на Ubuntu / Debian:

apt-get install iotop

б) на CentOS / Red Hat:

yum install iotop

После установки утилита запускается командой:

iotop

Вывод похож на top:

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd —swi…
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 %
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
 1542 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 %
 …

4. smartmontools

Утилита позволяет получить SMART дисковых накопителей. По умолчанию, она не установлена — установка выполняется из репозитория.

а) на Ubuntu / Debian:

apt-get install smartmontools

б) на CentOS / Red Hat:

yum install smartmontools

После установки можно использовать:

smartctl -a /dev/sda

* в данном примере мы увидим полный тест для диска sda.

Если нам нужно посмотреть только общее состояние здоровья, то используем опцию H:

smartctl -H /dev/sda

Если мы хотим получить информацию по всем дискам, вводим команды по очереди для каждого или:

find /dev -name ‘sd’ -exec smartctl -a {} \;

I. Install and Configure Sysstat

Install Sysstat Package

First, make sure the latest version of sar is available on your system. Install it using any one of the following methods depending on your distribution.

sudo apt-get install sysstat
(or)
yum install sysstat
(or)
rpm -ivh sysstat-10.0.0-1.i586.rpm

Install Sysstat from Source

Download the latest version from sysstat download page.

You can also use wget to download the

wget http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.0.tar.bz2

tar xvfj sysstat-10.0.0.tar.bz2

cd sysstat-10.0.0

./configure --enable-install-cron

Note: Make sure to pass the option –enable-install-cron. This does the following automatically for you. If you don’t configure sysstat with this option, you have to do this ugly job yourself manually.

  • Creates /etc/rc.d/init.d/sysstat
  • Creates appropriate links from /etc/rc.d/rc*.d/ directories to /etc/rc.d/init.d/sysstat to start the sysstat automatically during Linux boot process.
  • For example, /etc/rc.d/rc3.d/S01sysstat is linked automatically to /etc/rc.d/init.d/sysstat

After the ./configure, install it as shown below.

make

make install

Note: This will install sar and other systat utilities under /usr/local/bin

Once installed, verify the sar version using “sar -V”. Version 10 is the current stable version of sysstat.

$ sar -V
sysstat version 10.0.0
(C) Sebastien Godard (sysstat  orange.fr)

Finally, make sure sar works. For example, the following gives the system CPU statistics 3 times (with 1 second interval).

$ sar 1 3
Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

01:27:32 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
01:27:33 PM       all      0.00      0.00      0.00      0.00      0.00    100.00
01:27:34 PM       all      0.25      0.00      0.25      0.00      0.00     99.50
01:27:35 PM       all      0.75      0.00      0.25      0.00      0.00     99.00
Average:          all      0.33      0.00      0.17      0.00      0.00     99.50

Utilities part of Sysstat

Following are the other sysstat utilities.

  • sar collects and displays ALL system activities statistics.
  • sadc stands for “system activity data collector”. This is the sar backend tool that does the data collection.
  • sa1 stores system activities in binary data file. sa1 depends on sadc for this purpose. sa1 runs from cron.
  • sa2 creates daily summary of the collected statistics. sa2 runs from cron.
  • sadf can generate sar report in CSV, XML, and various other formats. Use this to integrate sar data with other tools.
  • iostat generates CPU, I/O statistics
  • mpstat displays CPU statistics.
  • pidstat reports statistics based on the process id (PID)
  • nfsiostat displays NFS I/O statistics.
  • cifsiostat generates CIFS statistics.

This article focuses on sysstat fundamentals and sar utility.

Collect the sar statistics using cron job – sa1 and sa2

Create sysstat file under /etc/cron.d directory that will collect the historical sar data.

# vi /etc/cron.d/sysstat
*/10 * * * * root /usr/local/lib/sa/sa1 1 1
53 23 * * * root /usr/local/lib/sa/sa2 -A

If you’ve installed sysstat from source, the default location of sa1 and sa2 is /usr/local/lib/sa. If you’ve installed using your distribution update method (for example: yum, up2date, or apt-get), this might be /usr/lib/sa/sa1 and /usr/lib/sa/sa2.

Note: To understand cron entries, read Linux Crontab: 15 Awesome Cron Job Examples.

/usr/local/lib/sa/sa1

  • This runs every 10 minutes and collects sar data for historical reference.
  • If you want to collect sar statistics every 5 minutes, change */10 to */5 in the above /etc/cron.d/sysstat file.
  • This writes the data to /var/log/sa/saXX file. XX is the day of the month. saXX file is a binary file. You cannot view its content by opening it in a text editor.
  • For example, If today is 26th day of the month, sa1 writes the sar data to /var/log/sa/sa26
  • You can pass two parameters to sa1: interval (in seconds) and count.
  • In the above crontab example: sa1 1 1 means that sa1 collects sar data 1 time with 1 second interval (for every 10 mins).

/usr/local/lib/sa/sa2

  • This runs close to midnight (at 23:53) to create the daily summary report of the sar data.
  • sa2 creates /var/log/sa/sarXX file (Note that this is different than saXX file that is created by sa1). This sarXX file created by sa2 is an ascii file that you can view it in a text editor.
  • This will also remove saXX files that are older than a week. So, write a quick shell script that runs every week to copy the /var/log/sa/* files to some other directory to do historical sar data analysis.

Альтернативы

Альтернативные основные утилиты предоставляются следующими пакетами: BusyBox, Heirloom Toolchest, , AUR и AUR.

Альтернативы cd

zoxide — Умная команда cd, которая изучает ваши привычки и позволяет перемещаться повсюду буквально несколькими нажатиями клавиш.

Альтернативы cp

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

Альтернативы ls

broot — Новый способ просмотра дерева каталогов и перемещения по нему.

exa — Замена ls с поддержкой цветности, отображением дерева каталогов, интеграцией с git и другими возможностями.

lsd — Современный ls с большим набором цветов и замечательными иконками.

Альтернативы find

fd — Простая, быстрая и удобная альтернатива find. По умолчанию игнорирует скрытые файлы и файлы, указанные в .gitignore.

fuzzy-find — Fuzzy-завершение имён файлов при поиске.

mlocate — Объединение locate и updatedb.

plocate — Намного более быстрый locate.

Графические программы для поиска файлов перечислены в .

Альтернативы diff

Некоторые программы предоставляют сравнение по словам, которого нет в :

  • git diff выполняет сравнение по словам с флагом ; с флагом работает также и с файлами вне рабочего дерева Git.
  • dwdiff — Фронт-енд для diff со сравнением по словам; поддержка цветности.

GNU wdiff — Реализация GNU diff со сравнением по словам; нет поддержки цветности.

cwdiff — Обёртка для GNU wdiff с поддержкой цветности.

icdiff — diff с поддержкой цветности, написанный на Python. Название расшифровывается как «Improved color diff»; обычный режим работы diff также доступен.

См. также .

Альтернативы grep

mgrep — grep с многострочным поиском.

pdfgrep — Инструмент для поиска текста в PDF-файлах.

ripgrep-all — Поиск в текстовых файлах, а также в PDF, E-Book, документах Office, архивах zip и tar.gz.

Поиск кода

Следующие три инструмента предназначены для замены grep при поиске кода. По умолчанию используют рекурсивный поиск, пропускают двоичные файлы и учитывают .

ack — Написанная на Perl замена grep для программистов с большим деревом разнородных файлов с исходным кодом.

ripgrep (rg) — Инструмент поиска, который соединил в себе удобство ag и скорость grep.

The Silver Searcher (ag) — Инструмент поиска кода, схожий с Ack, но более быстрый.

Интерактивные фильтры

fzf — Универсальный fuzzy-поисковик на основе find для работы в командной строке.

fzy — Быстрый, простой поисковик текста с хорошим алгоритмом поиска.

peco — Упрощённый инструмент для интерактивной фильтрации.

percol — Добавляет интерактивную фильтрацию к традиционной концепции конвейера UNIX-оболочки.

skim — Написанный на Rust fuzzy-поисковик, похожий на fzf.

Основные

Некоторые важные утилиты, с которыми должен быть знаком пользователь Arch Linux. См. также .

Пакет Утилита Описание Документация Альтернативы
встроенные команды cd смена каталога
GNU ls вывод содержимого каталога ,
cat вывод содержимого файлов в stdout ,
mkdir создание каталога
rmdir удаление пустого каталога
rm удаление файлов и каталогов shred
cp копирование файлов и каталогов
mv перемещение файлов и каталогов
ln создание жёстких и символических ссылок
chown изменение владельца и группы файла
chmod изменение прав доступа к файлу
dd преобразование и копирование файла
df вывод информации об использовании файловой системой дискового пространства
GNU tar архиватор tar архиваторы
GNU less постраничный просмотр в терминале программы постраничного просмотра
GNU find поиск файлов и каталогов
GNU diff построчное сравнение файлов
GNU grep вывод строк, совпадающих с шаблоном
GNU sed потоковый редактор
GNU awk язык поиска и обработки шаблонов , AUR
dmesg вывод содержимого буфера ядра и управление им журнал systemd
lsblk вывод информации о блочных устройствах
монтирование файловой системы
размонтирование файловой системы
su замена пользователя sudo,
kill завершение процесса ,
pgrep поиск процесса по имени или атрибутам
ps вывод информации о процессах ,
free вывод информации о свободной/используемой памяти

Предотвращение потери данных

, , и перенаправления ввода/вывода в оболочке удаляют или перезаписывают файлы молча, не уведомляя пользователя. С флагом команды , и будут запрашивать разрешение перед каждым удалением/перезаписью. Некоторые предпочитают использовать этот флаг по умолчанию, создав соответствующий . Тем не менее, такой подход чреват потенциальными проблемами, если в какой-то момент вы будете работать на другой системе или от другого пользователя, в которых подобный псевдоним отсутствует. Лучший способ защитить данные от случайного удаления — регулярно создавать .

Информация об оперативной памяти

1. Файл /proc/meminfo (Linux)

Команда:

cat /proc/meminfo

Пример ответа:

MemTotal:        8010284 kB
MemFree:         1058580 kB
MemAvailable:    2791616 kB
Buffers:            1884 kB
Cached:          1754092 kB
SwapCached:       122280 kB
Active:          4330296 kB
Inactive:        2006792 kB
Active(anon):    3623768 kB
Inactive(anon):   983120 kB
Active(file):     706528 kB
Inactive(file):  1023672 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
SwapFree:         597684 kB
Dirty:                20 kB
Writeback:             0 kB
AnonPages:       4466532 kB
Mapped:            92808 kB
Shmem:             25776 kB
Slab:             408732 kB
SReclaimable:     308820 kB
SUnreclaim:        99912 kB
KernelStack:        7312 kB
PageTables:        23276 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5053712 kB
Committed_AS:    3770324 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      159328 kB
VmallocChunk:   34359341052 kB
HardwareCorrupted:     0 kB
AnonHugePages:   3248128 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      257984 kB
DirectMap2M:     8130560 kB

* чаще всего, самое важное:

  • MemTotal — общий объем оперативной памяти.
  • MemFree — объем памяти, который не используется системой.
  • Buffers — память, которая в данным момент ожидает записи на диск.
  • Cached — объем, задействованный под кэш чтения с диска.
  • MemAvailable — объем памяти, доступной в распределители без необходимости обмена.
  • SwapTotal — объем файла подкачки.
  • SwapFree — свободный объем файла подкачки.

* Объем используемой памяти = MemTotal – MemFree — Cached — Buffers.

Для перевода килобайт в гигабайты можно воспользоваться онлайн калькулятором.

2. free (Linux)

Данная команда позволяет получить информацию об использовании памяти в удобной таблице. Для еще большего удобства, мы выведем ее с помощью дополнительного параметра -h:

free -m

Пример ответа:

              total        used        free      shared  buff/cache   available
Mem:           3,7G        568M        378M        193M        2,8G        2,6G
Swap:          4,0G         94M        3,9G

sysctl hw.physmem

Пример ответа:

hw.physmem: 2123677696

4. dmesg

Работает на BSD и Linux:

dmesg | grep memory

Итог:

real memory  = 2147483648 (2048 MB)
avail memory = 2042109952 (1947 MB)

5. Другие команды

Для получения информации по оперативной памяти также можно использовать команды:

vmstat -s

top

htop

* для htop необходима установка одноименной утилиты.

Второстепенные

Утилиты, которые также могут быть полезны.

Пакет Утилита Описание Документация Альтернативы
встроенные команды создание или вывод списка псевдонимов
type определение типа команды
time вывод времени выполнения команды
GNU tee считывание stdin и запись в stdout и файлы
mktemp создание временного файла или каталога
cut вывод отдельных частей строк
tr замена или удаление символов
od отображение файлов в восьмеричном и других форматах , в vim
sort сортировка строк
uniq поиск или исключение повторяющихся строк
comm построчное сравнение двух отсортированных файлов
head вывод первых строк файла
tail вывод последних строк файла или отслеживание изменений в файле
wc вывод количества строк, слов и байтов
GNU strings вывод содержащихся в двоичном файле текстовых строк
GNU iconv конвертация кодировок символов
file определение типа файла

Пакет содержит другие полезные инструменты вроде , которые не вошли в GNU coreutils.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: