Обзор утилит для анализа производительности на сервере

Получение прав суперпользователя сродни Граалю для специалистов, занимающихся эксплуатацией уязвимостей в Linux.

Команды Linux для навигации в терминале

  1. &&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
  3. cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
  4. clear. Очищает окно терминала от всех сообщений.
  5. history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
  6. man. Отображает руководство по программам и командам Linux. Введите man имя_пакетаили man ваша_команда.
  7. whatis. Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.
Команды Linux для навигации в терминале

tc (Traffic Control)

Это набор инструментов для контроля сетевого трафика внутри Linux. tc предоставляет вам просто головокружительные возможности, от которых захватывает дух. Но ошибочно полагать, что конфигурация управления трафиком является простым процессом. Тем не менее понимание его сути позволит контролировать инженерию трафика прямо в Linux.

Руководство на этом ресурсе может показаться не совсем удобным, но на Debian Wiki есть более удачно структурированный материал с описанием нескольких способов использования tc.

Чаще всего tc используется для задержки пакетов сетевого подключения. С помощью этой программы вы можете управлять входящими и исходящими пакетами, осуществляя их задержку или даже полное удаление. Рассмотрим относительно простой пример с применением задержки при сетевом подключении. Сначала проверим показатели ping в отношении Google:

[email protected]:~ $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=13.6 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=10.9 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=15.5 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=13.8 ms

Не так уж плохо. Между нами и Google ~13.5 мс задержки. А предположим, мы захотели проверить, как будет работать приложение при более длительной задержке. В практику уже давно и прочно вошло стресс-тестирование приложений в условиях слабого Интернет-соединения. Если вы не знаете, как ваше приложение поведет себя в таких неоптимальных сетевых условиях, то вряд ли сможете предсказать, как оно будет функционировать во всех других случаях.

Вызовем задержку в 100 мс с помощью tc: 

sudo tc qdisc add dev eth0 root netem delay 100ms [email protected]:~ $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=110 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=116 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=119 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=113 ms

Превосходно! Теперь мы видим, что имитированная нами задержка в 100ms добавилась к имевшейся ранее. Не забудьте устранить это отклонение после тестирования:

sudo tc qdisc del dev eth0 root

Как использовать команду ps

Общий синтаксис команды ps следующий:

ps [OPTIONS]

По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:

  • Параметры стиля UNIX, которым предшествует одиночный дефис.
  • Параметры стиля BSD, используемые без тире.
  • Параметры GNU с двумя дефисами перед ними.

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

Опции BSD и UNIX можно сгруппировать.

В простейшей форме, при использовании без какой-либо опции, ps напечатает четыре столбца информации как минимум для двух процессов, запущенных в текущей оболочке, самой оболочки и процессов, запущенных в оболочке при вызове команды.

Вывод включает информацию о оболочке ( bash ) и процессе, запущенном в этой оболочке ( ps , команда, которую вы ввели):

PID TTY TIME CMD 1809 pts/0 00:00:00 bash 2043 pts/0 00:00:00 ps

Четыре столбца помечены как PID , TTY , TIME и CMD .

  • PID — идентификатор процесса. Обычно при запуске команды ps наиболее важной информацией, которую ищет пользователь, является PID процесса. Знание PID позволяет устранить неисправный процесс .
  • TTY — имя управляющего терминала для процесса.
  • TIME — совокупное время ЦП процесса в минутах и секундах.
  • CMD — имя команды, которая использовалась для запуска процесса.

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

Читайте также:  iPhone 5s на iOS 13: поддерживается или нет?

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

ps чаще всего используется со следующей комбинацией параметров:

Форма BSD :

ps aux

  • Параметр a указывает ps отображать процессы всех пользователей. Не отображаются только процессы, не связанные с терминалом, и процессы руководителей групп.
  • u обозначает ориентированный на пользователя формат, который предоставляет подробную информацию о процессах.
  • Параметр x указывает ps перечислить процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме .

Команда отображает информацию в одиннадцати столбцах, обозначенных USER , PID , %CPU , %MEM , VSZ , RSS , STAT , START , TTY , TIME и CMD .

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd] …

Мы уже объяснили метки PID , TTY , TIME и CMD . Вот объяснение других этикеток:

Параметр f указывает ps отображать древовидное представление родительских и дочерних процессов:

ps auxf

Команда ps также позволяет сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти , вы должны использовать:

ps aux —sort=-%mem

Форма UNIX :

ps -ef

  • Параметр -e указывает ps отображать все процессы.
  • -f обозначает полноформатный список, который предоставляет подробную информацию о процессах.

Команда отображает информацию в восьми столбцах, обозначенных UID , PID , PPID , C , STIME , TIME и CMD .

UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:47 ? 00:00:01 /sbin/init root 2 0 0 19:47 ? 00:00:00 [kthreadd] …

Метки, которые еще не объяснены, имеют следующее значение:

Чтобы просмотреть только процессы, запущенные от имени конкретного пользователя, введите следующую команду, где linuxize — это имя пользователя:

ps -f -U linuxize -u linuxize

Работа с архивами

Создаем архив командой “tar cf имя создаваемого ” и указываем какой файл будем архивировать. Например будем архивировать файл под названием “1”

Работа с архивами

tar cf 1

Так же можно создать архив сжатием Gzip

Работа с архивами

tart czf 1

А теперь давайте распакуем наш архив, который мы только что создали. Распаковывать мы будем последний архив. Предварительно я удалил файл под названием “1” .

Работа с архивами

tar xzf

Ну а теперь распакуем первый архив который мы создавали (tar cf ). Распаковывается он так же легко:

Работа с архивами

tar xf

Теперь давайте сожмем файл посредством gzip. Это делается “gzip имя файла”:

Работа с архивами

gzip 1

Точно так же легко его и разжать, достаточно выполнить команду “gzip -d имя файла”

Работа с архивами

gzip -d

Читайте также:  Mandriva Linux. Полное руководство пользователя, страница 13

Как найти самые большие файлы на жёстком диске

1. CCleaner

В разделе «Сервис» находится полезный инструмент — «Анализ дисков», который используется для поиска больших файлов.

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

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

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

2. WinDirStat

После запуска и предварительной оценки заполненности жёсткого диска WinDirStat выдаёт полную карту его состояния. Она состоит из различных квадратов, размер которых соответствует размеру файла, а цвет — его типу. Клик по любому элементу позволяет узнать его точный размер и месторасположение на диске. С помощью кнопок на панели инструментов можно удалить любой файл или просмотреть его в файловом менеджере.

3. SpaceSniffer

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

Для сбора данных Windows сервера можно также воспользоваться Performance Monitor.Однако данный функционал нуждается в небольшой предварительной настройке.

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

  • Average Disk Queue — для жестких дисков
  • % Processor Time — для процессора и процессов
  • Committed Bytes — для оперативной памяти

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

Анализ данных с помощью утилиты PAL

Утилита написана Клинтом Хаффманом, который является PFE-инженером Microsoft и занимается анализом производительности систем.

На вкладке Counter Log задаётся путь к файлу данных со счетчиками производительности, собранными ранее.

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

На вкладке Threshold File находится список шаблонов, которые можно экспортировать в формат xml и использовать как список счетчиков для сборщика данных.

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