Настраиваем top в GNU\Linux

Однажды мой знакомый, который на тот момент администрировал некое веб-приложение на сервере под управлением GNU\Linux, пожаловался на одного вредного администратора сервера. Тот ни в какую не хотел устанавливать htop, несмотря на все просьбы.

Я немного удивился и поинтересовался, в чём причина такого странного поведения. Если упростить, то дальнейший наш диалог получился вот таким:

— Он говорит, что вполне достаточно функциональности обычного top.
— А её недостаточно, я правильно понимаю? Какого функционала в нём не хватает?
— Ну… Он весь серый, мне на нём не видно ничего!

Тут я удивился ещё сильнее. Но уже не вредности администратора сервера, а тому, что мой знакомый, имея приличный опыт работы с GNU\Linux, не знает всех возможностей такой распространённой утилиты, как top.

Да, разумеется, если запустить top в свежесозданном профиле пользователя на большинстве дистрибутивов, то мы увидим примерно такую картину:

zavznygghuhx2ocfvlgp1s2lvwq.png

Зрение у всех разное, и я вполне допускаю, что в данном случае кому-то может быть сложно разглядеть интересующее. Но ведь нажатием буквально нескольких клавиш картина меняется например на вот такую:

n6loqrun7lq9uwvi0pgo373wxhe.png

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

Как это сделать?


Сначала способ быстрый (и неправильный).
После того, как вы получили пользовательский сеанс, запустите top. Вы увидите интерфейс top по умолчанию:

xoqcgcxk0f3eecf-xvtuhvefd-m.png

Но достаточно просто нажать »z», и интерфейс станет не таким уж серым:

nyorb9ociqewhomurmnniodocfe.png

Уже лучше, но не видно, по какому параметру отсортированы процессы. Не беда, нажмём »x» и увидим:

egs6oceqzzhpxd_sarpnco6vtl4.png

Ещё лучше, но окно у нас одно. Сделаем больше, нажмём »A»:

5zomqppibs8z4rmeu3allvtupoi.png

Окон стало четыре, но три из них — чёрно-белые. Исправим ситуацию. Нажмём »a», а затем »z»,»x».

flz1z6b2wwsprxocagl3lxo_wfs.png

Процессы во втором окне отсортированы по PID, а нам надо по %Mem. Исправим это, нажимая »>» (или »<», если промахнулись):

dnx6eqapbddqhowdiwjxdylumlo.png

Повторим предыдущие действия для оставшихся окон:»a» для перехода в следующее окно,»z» для включения цветного отображения,»x» для подсветки столбца сортировки. Результат:

psn1j317a3fu2vs2cgbj2geq10s.png

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

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

А теперь — правильный.

Запустите top и нажмите »? ».

s5sdvforxqqlyjmjxj9ep-8bmym.png

Да, вы видите встроенную справку. Она, между прочим, многоуровневая. Но вы удивитесь, сколько пользователей считает этот экран единственным. Поскольку бегло прочитав его, делали то, о чём их просили в последнем предложении — нажимали »q» или »Esc», кому что было удобнее.

А если её внимательно прочитать, то можно выяснить, например, что после всех нужных настроек для их сохранения нужно нажать »W», и ваши настройки сохранятся в файле ~/.toprc. Что цвета, набор полей в каждом окне, режимы отображения некоторых полей и многое другое тоже настраивается.

Небольшой оффтоп

Я ни в коем случае не ставлю своей целью занудное напоминание о пользе чтения документации. Также я не ставлю своей целью подробное описание всех настроек top в рамках данной статьи, хотя, если читатели проявят к этому интерес, с удовольствием опубликую и описание. Я не считаю труд разработчиков htop и других утилит бесполезным. И разумеется, я рассматривал современную версию top.

Я всего лишь хотел сказать, что:

  • Даже опытные специалисты могут не знать элементарных, казалось бы, вещей. Просто потому, например, что им это никогда не требовалось.
  • Даже если утилита появилась в прошлом столетии, это не значит, что проект застрял во времени и не развивается. Например, в прошлом столетии не было отображения контейнера LXC, в котором исполняется процесс.
  • Многие утилиты, несмотря на примитивный внешний вид по умолчанию, очень гибко настраиваются. Это, к слову, касается не только утилит GNU\Linux. И считать утилиту «плохой» и «несовременной», потому что вам не подходят её настройки по умолчанию, по меньшей мере странно. Вы же не бежите покупать новый разводной ключ, если старый настроен не на тот размер гайки, который вам нужен.
  • Иногда вместо того, чтобы требовать для выполнения задачи чего-то дополнительного (или жаловаться, что такой возможности вам не предоставили), стоит потратить несколько минут на изучение возможностей уже имеющихся у вас инструментов.

Спасибо за внимание.

Что ещё полезного можно почитать в блоге Cloud4Y

→ Путь искусственного интеллекта от фантастической идеи к научной отрасли
→ 4 способа сэкономить на бэкапах в облаке→ AI помогает изучать животных Африки
→ Лето почти закончилось. Не утекших данных почти не осталось
→ IoT, туман и облака: поговорим про технологии?

Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью! Пишем не чаще двух раз в неделю и только по делу.

© Habrahabr.ru