Процессы, вышедшие из-под контроля

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

Процессы, занимающие слишком много времени центрального процессора, можно выявить, проанализировав результаты работы команды ps или top. Если очевидно, что пользовательский процесс потребляет больше ресурсов, чем ему действительно необходимо, его нужно исследовать. Кроме того, полезно выяснить номер процесса, ожидающего выполнения. Используйте команду uptime, которая (помимо текущего времени и времени, отработанного системой) показывает число пользователей в системе и среднюю загруженность системы за последние 1, 5 и 15 минут.

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

Процессы, которые используют значительный объем физической оперативной памяти, могут существенно снижать производительность системы. Размер памяти, занимаемый процессами, можно проверить с помощью команды top. Столбец VIRT содержит информацию об общем объеме виртуальной памяти, зарезервированной каждым процессом, а столбец RES — информацию о части этой памяти, которая в текущий момент времени записана в конкретные страницы памяти ("резидентный набор"). В системах Linux приложения, которые используют видеокарту (например, сервер X), получают незаслуженное обвинение", поскольку видеопамять включается в подсчет объема используемой памяти.

Оба значения могут отражать ресурсы совместного использования, такие как библиотеки, что теоретически может приводить к неправильной оценке реальной ситуации. Более точная информация о памяти, потребляемой процессом, содержится в столбце, который по умолчанию не отображается. Для того чтобы добавить этот столбец к информации, отображаемой командой top, после ее запуска нажмите клавишу <f> и выберите столбец DATA из списка. Отображаемое в этом столбце значение представляет объем памяти, занимаемый сегментами данных и стека каждого процесса, поэтому оно сравнительно специфично для отдельных процессов (оно представляет собой остаток Деления на объем сегментов памяти совместного использования). По нему можно судить как об относительном увеличении объема используемой памяти, так и об абсолютном ее объеме.

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

Первое, что нужно сделать в подобной ситуации, — определить, какая именно файловая система заполнена и каким файлом она заполняется в данный момент. Об использовании файловой системы можно узнать с помощью команды df -к. В выходных данных этой команды поищите файловую систему, которая заполнена на 100% или более. Для того чтобы понять, какой каталог занимает самую большую область памяти, используйте команду du для идентифицированной файловой системы. Повторяйте выполнение команды du до тех пор, пока не выявите самые большие файлы. Если вы не можете определить, какие процессы используют эти файлы, попробуйте получить больше информации с помощью команд fuser и lsof.

Можно приостановить все подозрительные процессы, пока не обнаружится источник проблем. Выявив "нарушителя", удалите все созданные им файлы и не забудьте возобновить "дисциплинированные" процессы. В случае, если некоторый файл содержит полезные или очень важные данные, было бы разумно сжать его с помощью утилиты gzip и переименовать.

 

Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.