Если вы запускали любую операционную систему какое-то время, вы, вероятно, сталкивались со странными явлениями. Когда дело доходит до компьютеров, странное обычно нежелательно. Чем дольше вы запускаете любую установку ОС без переустановки, тем больше вероятность того, что вы увидите хотя бы несколько странностей. Это может быть что угодно: от зависания программ до внезапного включения охлаждающего вентилятора и всевозможных странностей.

Для коммерческих операционных систем для настольных ПК с большим количеством установленных баз легко найти поддержку в виде официального производителя (OEM) или страниц документации по устранению неполадок разработчика ОС. Однако для Linux такие ресурсы не всегда доступны. Даже когда это так, они не всегда дают последовательные указания от дистрибутива к дистрибутиву и не гарантируют учета конкретного оборудования пользователя.

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

Вполне возможно, что не каждая процедура применима к рассматриваемой проблеме. Моя цель, тем не менее, состоит в том, чтобы предложить большое количество тестов, которые, по крайней мере, дадут вам отправную точку. Удобно, что они (за одним исключением) хорошо послужат вам на рабочем столе или сервере Linux, поскольку они используют инструменты командной строки.

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

Задача «Выключить браузер»? Откройте его диспетчер задач

Браузеры стали настолько надежными и важными для настольных компьютеров, что теперь у них есть собственный диспетчер процессов в стиле ОС. Эти инструменты позволяют пользователям видеть, какие открытые веб-соединения используют системные ресурсы и в какой степени.

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

У каждого браузера свой способ доступа к диспетчеру задач. В Firefox и Chrome вы можете получить доступ к диспетчеру задач из соответствующих меню в правом верхнем углу. Chromium и его близкие производные (например, Chrome) также предлагают возможность нажатия клавиш Shift + Escape для доступа к инструменту. Когда у вас открыт диспетчер задач, вы можете сортировать процессы по использованию ЦП или памяти, чтобы определить, что их перегружает. Наконец, вы можете убить процесс браузера, который пытается зацепиться за аппаратное обеспечение вашего компьютера.

Возьмите это с «сверху»

Если ваш браузер не является звездой шоу, вы, вероятно, захотите увидеть все процессы, которыми управляет ваша система. Лучший способ сделать это — открыть терминал и использовать верхняя команда. По сути, это диспетчер задач для Unix-подобных систем (например, Linux). С его помощью вы можете просматривать использование ЦП, использование памяти и многое другое для каждого активного процесса. Как и следовало ожидать, вы также можете сортировать по этой статистике. Любые вышедшие из-под контроля процессы могут быть уничтожены прямо из верхняя.

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

Обзор открытых файлов

Если вы подозреваете, что проблема связана не с потреблением ЦП или памяти, а с необычным дисковым вводом-выводом, извлеките lsof. Это инструмент, который я одновременно люблю и недостаточно использую. Эта команда CLI выводит список всех файлов, открытых в данный момент. Другими словами, он позволяет пользователям просматривать все файлы, которые считываются или записываются.

lsof Команда имеет слишком много мощных опций, чтобы подробно их описывать, для ограничения типов файлов, которые должны быть выведены. Одним из моих любимых является флаг «-u» для фильтрации или исключения файлов пользователем, обращающимся к ним. Если у вас есть ряд теневых процессов (возможно, из верхняя), вы можете использовать флаг «-p», чтобы искать только те процессы (по PID), чтобы увидеть файлы, над которыми он работает.

Мой любимый способ сделать короткую работу лсоф выход — передать его в grep и посмотреть, что я могу найти. Таким образом, я могу искать любой существующий шаблон, будь то пользователь, путь или что-то еще, что я могу придумать.

Не возражаете, если я расшифрую

Хотите взглянуть на все оборудование вашей системы с высоты птичьего полета? Смотрите не дальше, чем dmidecode.

выполнение dmidecode в оболочке с привилегиями суперпользователя распечатает сводку вашего системного оборудования с указанием марки, модели и режимов оборудования, на котором установлена ​​ваша ОС. Это особенно полезно, если вы используете Linux в стиле «сделай сам» или пытаетесь заставить работать необычное оборудование.

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

Linux — это не пункт назначения, это процесс

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

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

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

Чтобы привести более конкретный пример, я мог представить, как выбрасываю /proc/scsi/device_info чтобы проверить, почему вставленный интерфейс SCSI не обнаруживается. Возможно, вам придется проявить немного творчества с /прокно это не разочарует, если вы это сделаете.

Получить «dmesg»

Говоря о ядре, вы можете точно узнать, чем оно занимается, запустив dmesg с правами суперпользователя. Это выводит журнал ядра на вашу консоль в хронологическом порядке от загрузки. Если ядро ​​когда-либо пыталось работать с каким-то аппаратным обеспечением и потерпело неудачу, оно запишет здесь свое отклоненное продвижение.

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

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

Источник

Похожая запись