Журнал LinuxFormat - перейти на главную

LXF117:Чиним Linux

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Чиним Linux

Нейл Ботвик познакомит вас с пингвиньим арсеналом устранения неполадок в ОС.

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

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

Перед вами руководство по решению наиболее частых проблем, плюс пара советов на тему «поведение при катастрофе». Популярные бедствия распадаются на несколько обширных категорий; наиболее обсуждаемые из них – загрузка, оборудование и драйверы к нему, непослушные программы и настройка сети. Мы не можем заранее выдать готовый рецепт для всех проблем, но опишем самые вероятные из них, а главное, научим их распознавать. Читая, помните: даже если вы не в силах разобраться в проблеме сами, чёткое её описание, изложенное в вашем вопросе, очень нам поможет.

Проблемы при загрузке

Ваша машина упала на первом барьере – ладно, отряхнём её...

Инсталляторы современных дистрибутивов неплохо справляются с обнаружением имеющейся установки Windows и с настройкой двойной загрузки, но эту набитую вирусами Windows приходится переустанавливать, и тут оказывается, что машина загружается прямиком в Windows, а установка Linux – исчезла! Не паникуйте: Windows просто затёрла Grub собственным аналогом, удалив загрузочное меню. Все данные на месте – нужно только вернуть информацию о настройках загрузчика в главную загрузочную запись диска (MBR). Для этого загрузитесь с LiveCD, откройте терминал и наберите

sudo grub-install /dev/sda

Здесь предполагается, что у вас всё установлено на первом (или единственном) жёстком диске. Как правило, grub-install отлично находит установку Grub и приводит всё в порядок. В противном случае придётся потрудиться вручную – это гораздо проще, чем кажется. Наберите sudo grub для запуска командной оболочки Grub, затем

find /boot/grub/stage1

чтобы определить, на каком разделе находятся файлы Grub. Если на первом находится Windows, то, скорее всего, Grub будет на втором, и тогда командная строка вернёт нечто вроде (hd0,1). Теперь настроим Grub:

root (hd0,1)
setup (hd0)
quit

Первая команда определяет загрузочный раздел, вторая – устанавливает загрузчик в MBR, а затем мы покидаем оболочку Grub. Grub интересует только местоположение каталога /boot, и если он у вас находится на своём разделе, опустите параметр /boot в команде find.

Загрузку «заклинило»

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

Если загрузка «клинит» на ранней стадии, может помочь добавление опции noapic к загрузочным параметрам ядра, таким же образом, как убираются строчки, относящиеся к экранной заставке (см. ниже). Если это не сработает, отредактируйте файл конфигурации Grub в /boot/grub/menu.lst или /boot/grub/grub.conf, дописав опцию noapic и/или другие спасительные параметры, добытые поиском.

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

Какие бывают LiveCD

Если переустановка Windows затёрла загрузочный сектор Grub и ваш Linux не загружается, попробуйте Live-дистрибутив. Он работает прямо с CD (или DVD), не нуждаясь в установке на компьютер. Knoppix был одним из первых LiveCD, он до сих пор один из лучших и – как вам повезло!– имеется на нашем LXFDVD. Knoppix, особенно его DVD-версия – это полноценный дистрибутив на базе Debian, запускающийся с CD/DVD, и всё, о чём тут говорилось, можно проделать с его помощью.

Более компактная альтернатива, System Rescue CD, также имеется на DVD этого месяца. За догадку о его назначении приз не предусмотрен, но его преимущество – малый объём (менее 250 МБ) и программа установки, позволяющая перенести систему на USB-брелок. В его составе – лёгкий графический рабочий стол и множество инструментов для починки компьютера.

Как правило, LiveCD прекрасно определяют и настраивают аппаратные составляющие системы. При проблемах с распознаванием оборудования загрузитесь с одного из таких дисков и посмотрите, что получится.

Шаг за шагом: Ловим ошибки при загрузке

  • Удаляем заставку
    Чтобы отключить картинку и увидеть загрузочные сообщения, выберите курсором первый пункт в меню загрузчика и нажмите клавишу E (для редактирования, англ. «edit»), переместите подсветку на строку, касающуюся kernel (ядра), и снова нажмите E. Удалите всё упоминающее quiet или splash, нажмите Enter и затем B (для загрузки, англ. «boot»).
  • SUSE не такой, как все...
    SUSE работает иначе: установки насчет экрана загрузки в него встроены. Загрузочные параметры вводятся напрямую: просто добавьте splash=0. Нажмите F1, чтобы получить список возможностей, и далее используйте Enter или Tab, чтобы подробнее узнать про каждую из опций.

ВНИМАНИЕ! В подавляющем большинстве случаем для того чтобы отключить заставку достаточно после ее появления нажать клавишу ESC.

LXF117 21 1.jpg

  • Находим источник проблемы
    Теперь, видя загрузочные сообщения, легко понять, на каком этапе прерывается процесс загрузки. Введите в Google текст строки, содержащей ошибку (или последнюю выведенную системой строку) – там вам подскажут метод борьбы. Возможно, проблема вызвана одним из аппаратных компонентов; тогда отключите всё ненужное оборудование и попробуйте снова.

Оборудование

Когда все win-принтеры станут lin-принтерами, нам конец. А пока придется нести вахту.


Не ждите, что драйвера Linux найдутся на CD, приложенном к вашему сияющему и навороченному, свежекупленному устройству. И не только потому, что многим изготовителям наплевать на Linux, но и потому, что драйвера для большинства компонентов вашего компьютера уже установлены в системе как модули ядра. Последние загружаются из консоли или в процессе инициализации системы – то есть обычно все происходит автоматически. А ну как этот автомат поломается? Откуда узнать, какие модули требуется загрузить?

Опознаём оборудование

Первым делом нужно получить подробности с помощью команд lspci (для встроенного оборудования) и lsusb (для USB-оборудования); иногда внутренности ноутбуков тоже подключаются через USB-порты. Команды следующие:

sudo lspci
sudo lsusb

И вывод будет примерно такой:

00:1f.2 SATA controller: Intel Corporation 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation GeForce 7100 GS (rev a1)
02:00.1 IDE interface: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 03)
03:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)

и

Bus 001 Device 004: ID 03f0:2c17 Hewlett-Packard
Bus 004 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Определив, что есть что, конкретное оборудование можно опросить с помощью ключа -s или, ради более полной информации, с помощью ключа -v, например:

sudo lspci -s 03:00.0 -v
sudo lsusb -s 001:004 -v

Ключ -v особенно удобен в случае lspci, поскольку тогда выводится название модуля ядра, отвечающего за эту часть аппаратуры (если он присутствует). Опция -k также покажет его (и ничего больше). Вы спросите, зачем это надо: ведь мы, наоборот, ищем, какого модуля ядра не хватает? Разгадку даст LiveCD – любимчик всех диагностов. Если ваше устройство опознаётся при загрузке с LiveCD, запустите lspci -k, чтобы узнать, какой модуль оно использует, затем вернитесь в установленную систему и попробуйте загрузить его командой

modprobe -v имя_модуля

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

insmod /lib/modules/.../modulename.ko

значит, вы как раз загрузили модуль, и драйвер теперь заработает, или хотя бы станет доступен для настройки. Другой вариант ответа – ‘device not present’, он означает, что аппаратура, соответствующая этому модулю, не найдена, а вы пытались загрузить чужой модуль. И, наконец, сообщение ‘module not found’ даст вам знать, что такого модуля в системе нет. Большинство дистрибутивов предоставляют максимум предустановленных модулей, так что или ваши устройства не в меру хитры, и для их поддержки придётся пересобирать ядро, или же оборудование поддерживается более свежим ядром, чем ваше. Версию ядра на LiveCD и в системеможно узнать с помощью

uname -r

Если ядро, идущее в составе LiveCD, более свежее – поищите обновления для своего дистрибутива. Ещё один вариант – для оборудования нет поддержки в ядре, но существует сторонний драйвер. Часто такое бывает с беспроводными сетевыми картами, которым нужен либо MadWifi, либо NdisWrapper, вероятно, имеющийся в репозиториях дистрибутива. После его установки всё должно заработать.


Графическое оборудование

Все вышесказанное не относится к графическим картам, поскольку драйвера для них входят в состав ПО от X.org, если только ваша карта не NVidia или ATI. Для этих в X.org тоже имеются драйверы, но отдельный пакет от изготовителя даст лучшую производительность, особенно если вам нужно 3D-ускорение, будь то для игр или для эффектов рабочего стола. Хотя такие драйверы доступны к загрузке с официальных сайтов, лучше всё-таки установить их посредством пакетного менеджера вашего дистрибутива: он сам внесет необходимые изменения в файл xorg.conf, контролирующий настройки графики. Решившись на независимую установку, убедитесь, что загружаете правильный пакет, соответствующий вашей карте, и обязательно внимательно прочтите инструкцию, прежде чем выполнять какие-либо действия. Подробнее о настройке графической системы читайте статью Xorg.conf изнутри.

Дело не всегда в программах

Самые трудные для диагностики проблемы – те, что на вид случайны, особенно если система «виснет» или выключается без сообщений. Если такое происходит во время использования одной и той же программы или в один и тот же момент, тогда виновник налицо; но если ошибка выскакивает действительно случайным образом, причиной могут быть аппаратные проблемы. Чаще всего это перегрев, неисправность памяти или нестабильное питание. Нет смысла думать: «В другой ОС у меня такого не происходит, значит, плох Linux», потому что разные системы работают с оборудованием по-разному. Linux, например, более интенсивно использует память, и, соответственно, начнёт сбоить из-за ошибок в ней раньше, чем эти симптомы проявятся в Windows.

Вентиляторы и радиаторы со временем забиваются пылью и прочим мусором. Попробуйте сдуть наслоения с помощью баллончика со сжатым воздухом. Установив lm_sensors (наверняка найдётся в вашем дистрибутиве), вы всегда будете в курсе температур процессора и корпуса, а системный монитор типа GkrellM отобразит их на вашем рабочем столе. Ноутбук лучше не вскрывать, хотя бы и ради продувки, но стоит проверить разные входные отверстия на предмет засорения.

По части питания ноутбуки находятся в безопасности – батарея обеспечивает постоянный и ровный приток энергии. А вот блоки питания настольных компьютеров – дело другое, особенно дешёвые безымянные, идущие в составе корпусов низшей ценовой категории. Какая цена, такое и качество сборки; иногда, даже будучи новыми, такие блоки едва дотягивают до требований стандартов. Попробуйте поставить другой блок питания – разница вас удивит. Скверное питание может повредить и оборудование, и данные, так что экономия тут себя не оправдывает. А приличный блок питания служит годами. Если в вашем районе проживания часто случаются скачки и перебои напряжения, источник бесперебойного питания (UPS) может оказаться достойным вложением денег, поскольку сетевой фильтр не уберегает от снижения напряжения, он только смягчает его скачки.

Протестировать память довольно легко, хотя это отнимет много времени. Большинство LiveCD включает программу Memtest86, именно она и тестирует память. Надо будет загрузиться в Memtest86, поскольку проверке подвергается только незанятая память, и полностью загруженная и работающая ОС нам не нужна. Прогоните полный набор тестов как минимум дважды, желательно ночью. Чем больше времени на это отвести, тем надёжнее будут результаты. Появление ошибок означает, что как минимум одна из планок памяти нуждается в замене.

А где мой рабочий стол?

Итак, установив свежий дистрибутив с одного из наших дисков, вы перезагружаетесь, и… вместо трёхмерного рабочего стола во всей его красе вас встречает чёрный экран с мигающим курсором. Что не так? Как правило, основная причина – программа установки не смогла автоматически определить параметры графической карты или монитора. Поэтому загрузка выбрасывает вас либо в текстовую консоль, либо в ограниченную графическую среду с разрешением 800 × 600 и без всякого ускорения. Рабочая конфигурация создается запуском утилиты настройки, специфичной для вашего дистрибутива, но первым делом нужно будет по возможности зайти в систему как root, или уж как обычный пользователь с паролем, заданным при инсталляции. Какую программу запускать, зависит от дистрибутива, но наиболее популярны таковы:

system-config-display --configure # Fedora/Red Hat
drakx11 # Mandriva
sax2 # OpenSUSE

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

X -configure

Если после загрузки вы опять попали в текстовую консоль, то авторизуйтесь в системе и наберите

startx

Это загрузит самую элементарную графическую среду. Нажмите Ctrl+Alt+Backspace, чтобы выйти из неё. Теперь у вас есть рабочая графическая оболочка. Если startx не сработал, просмотрите журнальный файл /var/log/Xorg.0.log – в частности, строки, содержащие (EE): это сообщения об ошибках. Файл довольно длинный, но отфильтровать нужные строчки можно с помощью

grep EE /var/log/Xorg.0.log

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

Сеть

Компьютеры не выходят на связь…


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

Во-первых, убедитесь, что драйвера загружены, просмотрев вывод

sudo ifconfig -a

Соединение через физический кабель будет показано как eth0, а беспроводное – как wlan0, ath0 или даже eth1. Если ничего такого нет, попробуйте повторить процедуру, загрузившись с LiveCD, и в случае их присутствия запустите

sudo lspci -k

чтобы узнать, какой модуль используется. Если вы всё ещё находитесь в тупике, подробности вывода lspci -v снабдят вас информацией про вашу карту, на основании которой можно поискать подходящий драйвер в Интернете. А получив его, уже можно приступать к настройке? Не всегда, потому что некоторым беспроводным картам для инициализации нужен уже загруженный файл аппаратной прошивки (firmware). Драйвер позаботится о загрузке, но ему нужно, чтобы этот файл находился в каталоге /lib/firmware. Раздобыть его можно разными способами, в зависимости от используемой аппаратуры, но, как правило, файл нужно выудить из драйверов для Windows (или же скачать драйвер, уже предварительно кем-то оттуда вынутый). Теперь мы готовы к дальнейшей настройке соединения, так что пропускаем следующие абзацы.

Последняя надежда

Что же делать, если драйвер не нашёлся? В этом случае вам нужен NdisWrapper. Это модуль ядра, который использует драйверы NDIS (Network Driver Interface Specification), изначально предназначенные для Windows, в среде Linux. Первым делом установите NdisWrapper с помощью менеджера пакетов вашего дистрибутива. Затем понадобятся файлы с диска, идущего в комплекте с вашей беспроводной картой. Очень важно использовать правильный диск, поскольку изготовители имеют привычку менять чипсеты в картах, а следовательно, и драйверы, оставляя старый номер модели. Информацию о драйверах, требуемых для конкретных карт, можно найти по ссылке: http://burnthesorbonne.com/?page_id=32.

После установки NdisWrapper найдите файл драйвера на диске: он имеет расширение INF. Загрузите его таким образом:

sudo ndiswrapper -i /path/to/driver.inf

Проверим, работает ли он:

sudo ndiswrapper -l

что даст нам список драйверов, которыми теперь располагает NdisWrapper. Наконец, загрузим сам модуль:

sudo modprobe -v ndiswrapper

и ваша беспроводная карта теперь появится как wlan0. Если на диске не нашлось INF-файла, то скорее всего он запрятан в EXE-файл – как правило, самораспаковывающийся zip-архив в исполняемом файле Windows. Распаковать его в Linux можно с помощью unzip:

unzip /mnt/cdrom/install.exe

Скорее всего, вам захочется поставить NdisWrapper в автозагрузку – в таком случае просмотрите врезку об автозагрузке модулей, чтобы узнать, как это сделать.

Пытаемся подключиться

Первое правило беспроводных сетей – всегда использовать шифрованное соединение, но в данном случае будет проще на пару минут отключить его, поскольку это устранит потенциальный источник проблем. Заодно убедитесь, что ваш маршрутизатор не фильтрует все подряд, кроме некоторых МAC-адресов (мы все наступали на эти грабли, подключая новый ноутбук или новую беспроводную карту).

Настройкой беспроводных (и кабельных) соединений в большинстве дистрибутивов заведует Network Manager, и имя вашей беспроводной точки доступа должно появиться после щелчка по его иконке на панели задач. Если этого не произошло, первым делом проверьте, настроена ли ваша точка доступа на передачу идентификатора SSID (Service Set Identifier – имя вашей беспроводной сети). Некоторые отключают эту опцию, думая, что тем самым повышают безопасность (и зря, поскольку при каждом подключении к сети SSID передаётся открытым текстом). Если же и тогда ваша точка доступа не появится, попробуйте физически перебраться к ней поближе. Также проверить наличие доступных сетей можно с помощью таких команд:

sudo ifconfig wlan0 up
sudo iwlist wlan0 scan

Первая команда активирует беспроводную карту, а вторая выведет список всех доступных беспроводных сетей. Сообщение «Interface Doesn’t Support Scanning» («интерфейс не поддерживает сканирование») означает, что либо вы используете неверный интерфейс (кабельный вместо беспроводного), либо неподходящий драйвер или прошивку для карты. Тогда придётся вернуться к началу страницы и повторить всё снова.

Установив соединение, тут же отключитесь, включите шифрование на вашей точке доступа или маршрутизаторе и подключайтесь снова. Лучший тип шифрования – WPA2; если ваша карта или драйвер его не поддерживает, используйте WPA (Wi-Fi Protected Access). WEP берите, только если других вариантов нет: уровень защиты в нём минимален, и любой целеустремленный сосед, алчный до трафика, запросто его взломает.

Сеть

Проблема неработающей сети время от времени возникает в любой операционной системе. Такие ситуации сильно нервируют, поскольку кажется, что сеть «вообще не работает», и нет никаких указаний на слабое звено в цепи. Первая проверка – старый добрый ping:

ping www.linuxformat.ru

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

ping 88.212.205.226

это IP-адрес сайта Linux Format, и если тут всё сработает, можно делать вывод, что ваша машина не в состоянии перевести имя домена в IP-адрес. Проверьте файл /etc/resolv.conf, там должны быть записаны адреса DNS-серверов вашего провайдера. Если вы используете маршрутизатор и сервер DHCP, в этом файле будет записан адрес маршрутизатора, и необходимо будет проверить, что IP-адреса на маршрутизаторе настроены правильно.

Если IP-адрес в порядке, попробуйте пропинговать один из серверов провайдера, например, сервер DNS (провайдеры обычно дают его адрес на своих сайтах, так почему бы им не воспользоваться?). Если здесь всё нормально, то это у вашего провайдера проблемы с подключением вас к остальному Интернету. Также возможно, что ваша система пытается использовать IPv6, более новый IP-протокол, а ваш маршрутизатор его не понимает, и это порождает задержки, достаточно долгие, чтобы создалось впечатление полного краха сети (подробно про удаление поддержки IPv6 см. ниже).

Следующий шаг – проверка возможности подключения к web-интерфейсу вашего маршрутизатора (если таковой имеется) или пинг вашего модема. Если всё работает, значит, отсутствует связь между вашим модемом и провайдером. Это может быть вызвано обрывом линии (проверьте, не ободрал ли вам ADSL кот или ктото из домашних), проблемами вашего провайдера или же отключением за неуплату. В этом пункте поможет звонок в техподдержку провайдера. Если вам никак не дозвониться, то проблема на их стороне, и единственное решение – какое-то время потерпеть.

Наконец, проверьте всё локально: подключены ли кабели? Показывает ли ifconfig -a хотя бы ваш сетевой интерфейс? Если нет, не меняли ли вы какие-нибудь настройки со времени последней загрузки? Обновление ядра требует переустановки сторонних модулей, поскольку они перестают работать, а некоторые сетевые адаптеры, в частности, беспроводные, используют сторонние модули ядра.

Автозагрузка модулей

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

В Ubuntu нужно просто дописать название модуля в конец файла /etc/modules. Пользователи SUSE должны будут отредактировать файл /etc/sysconfig/kernel и изменить настройки параметра MODULES_LOADED_ON_BOOT на что-то типа:

MODULES_LOADED_ON_BOOT=”module1 module2”

В Fedora нужно добавить файл (точнее, скрипт) с расширением .modules в каталог /etc/sysconfig/modules/. Например, чтобы загрузить NdisWrapper, надо создать файл /etc/sysconfig/modules/ndiswrapper.modules с таким содержимым:

#!/bin/sh
/sbin/modprobe ndiswrapper

Поскольку это скрипт, сделайте его исполняемым:

sudo chmod +x /etc/sysconfig/modules/ndiswrapper.modules

Шаг за шагом: Решаем проблему IPV6

  • Обновим маршрутизатор
    Самый правильный способ решения проблемы – это научить свой маршрутизатор «понимать» IPV6. Проверьте, доступны ли на сайте изготовителя обновления для программной прошивки вашего маршрутизатора. Обычно нужно только скачать файл и «скормить» его маршрутизатору через web-интерфейс.
  • Тест Firefox
    Можно отключить поддержку IPv6 в Firefox – наберите в адресной строке about:config, затем IPv6 в строке фильтра. Вы увидите опцию network.dns.disableIPv6. Щёлкните по ней правой кнопкой мыши и выберите Toggle, что поменяет значение с false на true. Попробуйте зайти на сайт – если всё получится, то проблема была именно в IPV6.
  • Отключаем IPV6
    Поддержку IPV6 можно отключить глобально, отредактировав файл конфигурации для модулей. Как правило, это или /etc/modprobe.conf, или /etc/modprobe.d/aliases, в зависимости от дистрибутива. Удалите всё, что касается IPv6, и добавьте следующие две строки:
    alias net-pf-10 off
    alias ipv6 off

Программы

Что делать, если все процессы хотят запускаться одновременно?


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

Потребление ЦПУ проще всего проверить программой top (это название, а не комплимент). Будучи запущенной, она показывает в окне терминала данные, разбитые на строки и столбцы. Колонка CPU показывает, какой процент процессорного времени потребляют те или иные разновидности программ: sy – это система, us – пользователь, а ni – программы, запущенные с положительным значением nice. Nice – это способ заставить программу использовать больше или меньше ресурсов ЦПУ; чем выше его значение, тем вежливее (nicer) программа себя ведёт по отношению к другим процессам, уступая им первые места в очереди к доступным циклам ЦПУ. На самом деле всё немного сложнее, поскольку nice – только рекомендация планировщику процессов ядра, но здесь мы в это вдаваться не будем.

Двойной top

Если у вас в системе больше одного процессора, нажмите 1 (цифра один), чтобы top показала их все. В первую очередь взгляните на id и wa, что означает соответственно idle и wait, то есть «свободный» и «ждущий». Если не компилировать программы или не проигрывать видео, значение idle будет высоким, обычно за 90 %. Если оно падает до однозначной цифры или даже до нуля, значит, имеется активный пожиратель процессорных циклов. Хорошо, если это ваша работа, например, перекодировка видео, но это может быть и неконтролируемый процесс. Список процессов показывает объём ресурсов ЦПУ и памяти, используемые каждой программой, и по умолчанию он сортирован по потреблению ЦПУ. Если некий процесс прожирает ресурсы, с помощью top можно либо увеличить ему значение nice, либо убить его.

Первая колонка показывает PID – идентификатор (ID) процесса. Нажмите клавишу R, для изменения значения nice, либо K для «убийства», и введите значение идентификатора процесса. При переназначении nice вводится величина, добавляемая к текущей (чем выше значение, тем программа «уступчивее»). Диапазон значений nice – от -20 до 19, но отрицательные значения может задавать только root. Пять – неплохо для начала, а 19 означает, что процесс дорвётся до процессора только тогда, когда его освободят все другие процессы, что удобно для интенсивных фоновых задач вроде перекодирования видео. «K» посылает сигнал 15 (TERM), эквивалентный нажатию Ctrl+C в терминале. Он просит программу остановиться, завершившись чисто. Но если программа взаправду вышла из-под контроля, она не отреагирует, и тогда придётся послать сигнал 9 (KILL) – он остановит программу, невзирая ни на что. LXF

Контроль загрузки диска

А иногде бывает так, что система реагирует крайне медленно, но при этом top показывает что большая часть ресурсов системы (процессор+память) совершенно свободны. Обратите внимание на индикатор жесткого диска - если он горит не переставая или часто моргает, то все ясно - систама занята медленными операциями ввода-вывода (например индексацией файловой системы). Чтобы выяснить кто именно так интенсивно общается с диском используйте утилиту iotop, аналогичную top по интерфейсу и коммандам. В отличие от top iotop сортирует выполняющиеся программы по количеству опраций чтения/записи, так что программу, занявшую все ресурсы, будет легко обнаружить.

Шаг за шагом: Работа над ошибками

  • Проверьте версию программы
    Если вам кажется, что в программе ошибка, сперва убедитесь, с помощью менеджера пакетов вашего дистрибутива, что используется самая новая версия. Затем хорошо бы узнать на официальной страничке программы, нет ли еще более новой версии, где ошибка уже исправлена. Если она есть, сообщите об этом разработчикам вашего дистрибутива.
  • Домашнее здание
    Соберите как можно больше информации. Проконсультируйтесь с man-страничкой или запустите программу в консоли с параметром --help: возможно, для программы доступны опции --verbose или --debug, дающие более подробный вывод. Запишите его в файл, запустив программу следующим образом:
    название_исполняемого_файла_программы --verbose >program.log

LXF117 26 2.jpg

  • Доложите об ошибке
    Сообщите об ошибке, воспользовавшись web-системой отслеживания неполадок для вашего дистрибутива. У многих проектов есть для этого собственные ресурсы, но если вы пользуетесь пакетом, собранным специально для вашего дистрибутива, то начните с него. Большинство разработчиков мира открытого ПО приветствуют сообщения об ошибках, особенно если информации в них достаточно для нахождения и исправления проблемы.
Персональные инструменты
купить
подписаться
Яндекс.Метрика