194

Системный администратор Linux. Вопросы. Часть 4. Финал

«Всё, что имеет начало, имеет и конец, Нео».

Системный администратор Linux. Вопросы. Часть 4. Финал

Серия вопросов подходит к завершению и остался последний, самый объёмный вопрос:


В: У Вас маленькая организация. Есть некий сервер, который совмещает в себе много разных функций. Шлюз, файлопомойка, прокси, web-сервер, даже есть виртуалка на KVM, внутри которой крутится условная 1С на windows. В один прекрасный момент к Вам начинают сыпаться сообщения от пользователей, что «Всё тормозит и ничего не работает». Ваши действия? Что и как диагностировать будете? Какими командами? Гуглить времени нет из-за ощущения влажного дыхания директора в затылок.


О: Диагностику можно условно разделить на четыре этапа. По количеству компонентов, которые могли стать «слабым звеном». Это процессор, память, диск и сеть. Но, в первую очередь, надо смотреть в логи. Основное - dmesg, syslog, messages. Зачастую это сэкономит массу времени. Так же не стоит забывать про встроенные средства обзорного мониторинга. Например sar позволяет понять что происходило с системой в последнее время без внешнего мониторинга. Так же различные средства внешнего мониторинга позволят получить обзор системы за последнее время и понять какие метрики являются аномальными. Если этого нет, метрик недостаточно или нужно смотреть в реальном времени - по шагам смотрим каждый компонент:


- Процессор. Необходимо понимать и знать какая нагрузка на процессор данного сервера является штатной. Т.е. нагрузка в 80% может быть вполне нормальной для сервера, а 20% может быть повышенной. Для этого нужен какой-либо мониторинг, который обеспечивает хранение исторических данных, внешний - zabbix, observium, spectrum, munin, или внутренний - sar. Текущую нагрузку можно посмотреть командой top и её производными, htop, atop и прочими, либо sysstat, vmstat. Можно посмотреть load average командой uptime. Если нагрузка аномальна - надо понимать из чего она складывается. Тут три основных компонента - User time, IO wait и System или kernel time. Соответственно это время процессора, затраченное на приложения пользователя, ожидания ввода/вывода и на работу самом системы. С user time всё относительно просто. Достаточно определить проблемное приложение и «поправить» его настройки или просто перезапустить его. IO wait - скорее всего проблема с дисковой подсистемой и более детально об этом будет ниже. Если повышен System time - значит сама система потребляет завышенное количество ресурсов. Причин может быть много и надо иметь более детальное представление о системе. Например старые версии Ubuntu имели глючный kswapd, который утилизировал процессор на 100% при своей работе. Или большое количество сетевых пакетов в следствии той или иной разновидность dos/ddos. Или «залипло» некое приложение пользователя и плодит тяжелые для системы операции, такие как выделение/освобождение памяти или создание большого количества процессов и их завершение.


- Память. Утилизацию можно посмотреть командами top, free, cat /proc/meminfo, vmstat, sar. Необходимо обратить внимание на объём свободной памяти и использование swap. Надо понимать, что метрика «free» не всегда отображает реальное положение дел. В частности буферы/кеш, которые могу занимать память, но могут выгружаться из неё при необходимости. Так же надо знать какие данные попадают в swap. Например, почему при свободной памяти может использоваться swap.


- Диск. Крайне желательно понимать что за диски, как они подключены и собраны. Информацию по использованию можно посмотреть командами iostat или iotop. Первая работает в разрезе блочных устройств, вторая по приложениям. Метрики на которые надо обратить внимание - скорость чтения/записи, время ожидания, количество операций, утилизация устройства. Далее, в зависимости от типа дисков, есть разные варианты развития событий. У виртуальных машин при аномалиях нужно смотреть на диски гипервизора и их утилизацию. У физических серверов - на тип диска и транспорт подключения. Если это обычный диск - смотрим smart и прочие метрики диска командами smartctl, hddtemp, hddparm. Большое количество bad-блоков или перегрев диска могут отрицательно влиять на скорость. Если диски собраны в raid - смотрим на его состояние. Если это программный рейд - команды mdadm или zpool. Для аппаратных через утилиты производителя или через iLO. Для внешних диском надо смотреть из транспорт. Это FC или сеть. Для FC смотрим статистику портов на SAN свичах командами sfpshow, porterrshow и т.д. Для сети смотрим количество ошибок портах командами ifconfig, ip, cat /proc/net/dev. Для внешних дисков так же надо смотреть нагрузку на дисковом массиве или SDS. Так же это могут быть так называемые шумные соседи, которые при отсутствии QOS или его неправильной настройке могут оказывать взаимное влияние.


- Сеть. Для начала можно просто проверить пингом. Обычным и тяжелыми пакетами, размером 1кб. Далее смотрим ошибки на портах сервера или на коммутаторе (если есть доступ). Команды выше. Проверяем настройки командой ethtool. Смотрим скорость интерфейса и подключения. Смотрим внешний мониторинг на предмет утилизации сети. Пробуем проверить качество канала чем то простым, вроде ftp. Если сервер удалённый - смотрим маршруты, на предмет потерь и перестройки. Для этого можно использовать tracepath или mtr.


На этом всё. Для тех, кто дочитал до конца всю серию постов и кому это всё интересно - у меня есть небольшой бонус:


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


To be continued…

GNU/Linux

1.2K постов15.6K подписчиков

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Вы смотрите срез комментариев. Показать все
17
Автор поста оценил этот комментарий

Первое, что бы я сделал - наглядно бы заставил показать пользователей, что именно тормозит, а уже потом лез бы в дебри сетей и дисковых подсистем. В твоей конфиге обчычно тормозит унылое говно типа файловой 1С. 80% - 1С, 10% - диски начинают сыпаться. 10% все остальное.


А может быть вообще люто-ебанутое. Например тормозит CIFS через OpenVpn... в этому случае всякие itop-ы с mtr-ами тоже мало помогают. Нужны более глубокие и специфические знания.


К тому-же почему к работающему серверу не прикручен тоже же Zabbix, где все можно удобно посмотреть за любой период? Действующий админ этого сервера - всегда лютый долбоеб?

раскрыть ветку (17)
17
DELETED
Автор поста оценил этот комментарий

Почему многие сисадмины любят оскорблять других сисадминов?

раскрыть ветку (8)
14
DELETED
Автор поста оценил этот комментарий
Потому что в реалиях старой школы “одменства с бубном” сказать “ты - хуй, админишь говно и вообще пиздуй читать маны” не оскорбление, а констатация фактов.
9
Автор поста оценил этот комментарий

А как иначе показать сисадмину, находящемуся в пищевой цепочке ниже тебя, своё превосходство и отношение к низшим?

раскрыть ветку (3)
0
DELETED
Автор поста оценил этот комментарий

Ну это ж так тупо. Многие с чего-то начинают. Не хочешь помогать, ладно, проигнорь и все. Но в чем суть именно оскорблений? Я просто подобное чаще всего замечаю именно от сисадминов.

раскрыть ветку (2)
2
DELETED
Автор поста оценил этот комментарий

как будто это проблема сисадминов. ЧСВ много у кого зашкаливает, и как еще показать кто здесь герой?

0
DELETED
Автор поста оценил этот комментарий

В том, что некоторые не админы, но они этого не смогут понять.

1
Автор поста оценил этот комментарий

Когда я писал коммент - имел ввиду, что в постах ТС, в задачах, которые он описыват абсолютно отсутствуют средства мониторинга и централизованного управления. То есть 1000 серверов и нет средства централизованного управления, то есть нагруженный сервер без средств мониторинга. Я, конечно понимаю, что ТС всего лишь приводит пример, но сами вопросы формулируются немного неверно. Из описания этого и выходит, что типа есть такая сложная система, но нет программы для управления и наблюдения, которая чуть ли не первым делом ставится. Поэтому и я написал в вопросительном ключе про дурака админа.


По поводу реального поливания дерьмом - есть такое. Это не только админов касается. Вместо админа можешь подставить сантехника, электрика, автомастера и даже врача(в наших реалиях это горькая правда). Да и вообще кого угодно.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий
«В заббикс, графану и ёлку любой дурак сможет посмотреть, а ты попробуй диагностировать без них» (с)
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Не. Ну так то да, конечно.

Скажу тебе так. Перед переездом в другой регион искал себе замену на должность "начальник отдела\линукс-админ-инфраструктура". Искал вместе с директором и владельцем предприятия... За 6 месяцев так никого и не нашли. Уровень соискателей просто днище. За 2-3 года до этого по счастливой случайности удалось себе набрать в отдел толковых ребят. И то ... один, к примеру, приехал из Молдавии, другой из Волгоградской области. И у них были очень скромные зарплатные ожидания в связи со своим положением, что было приемлемо и владельцу капитала. Так хорошо сработались ... эх.


Короче, всем одобрямсом и моим в том числе поставили на мое место моего заместителя Лёху.


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


: базовые навыкикоммуникативные способности. Остальное все набирается 3-4 месяца.


Я бы простыню написал, но лень.

2
Автор поста оценил этот комментарий

Согласен на 100%.

Сначала фиксируем проблему как она сформулирована.

Потом по возможности проверяем наличие проблемы (пользователи врут всегда)

И только потом лезть в диагностику. Иначе огромные шансы потратить кучу времени на изучении почему всегда было 20% cpu а теперь 40%, а у пользователя уже давно все ок или у него локальные проблемы на пк или в сегменте сети

раскрыть ветку (4)
6
Автор поста оценил этот комментарий
Поддерживаю, моя фирменная фраза : "пользователь всегда пи...т".
0
Автор поста оценил этот комментарий

Если на сервере было 20% а теперь 40% без достоверно известных причин такого поведения, то надо уже сейчас искать причину такого поведения.

раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Зачем? Если это не приводит к каким-то проблемам то что тебе это даст. У тебя разнородная нагрузка завязанная на действия пользователей - ищи конечно, ну найдешь что обычно пользователи делают 100 запросов в минуту, а сейчас один делает 100 в секунду ну и твоя прокся реплей кеш кербероса мучает. Ура ты узнал причину нагрузки пока пользователи жаловались на что-то другое

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Эммм... Я говорил о причинах. Выросшая нагрузка коррелирующая с количеством обрабатываемых в секунду запросов это одно, и сразу будет видно соответствие на графиках в мониторинге, а вот выросшая в два раза без явных причин нагрузка — свидетельство потенциальных проблем в будущем.

1
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий

Этот конфиг посто пример того, что на одном сервере могут жить и взаимно влиять несколько систем и надо понимать как такое диагностировать. Коммуникативные навыки это не затрагивает.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну какой вопрос, такой и ответ.

В один прекрасный момент к Вам начинают сыпаться сообщения от пользователей, что «Всё тормозит и ничего не работает». Ваши действия?

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

Какие диагностические средства помогут в решении следующей проблемы...

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества