Руководство системного администратора • третье издание { h h y с п п т п р



Pdf просмотр
страница7/82
Дата12.11.2016
Размер7.94 Mb.
Просмотров13054
Скачиваний0
ТипРуководство
1   2   3   4   5   6   7   8   9   10   ...   82
% nice +10 -/bin/longtask
% renice -5 aS29 Следует отметить, что в разных системах нет четкого соглашения относительно того, как задавать требуемый приоритет. Обычно даже команды nice и renice одной системы имеют различный синтаксис. Иногда нужно указывать только приращение, а иногда — абсолютное значение. В одних случаях значению должен предшествовать дефис, в других — флаг пав третьих — вообще ничего.
72
Чость I. Основы ОДМИНИСТрИрОВОНИЯ
Чтобы все было еше сложнее, существует версия команды nice, встроенная в интерпретатор Си некоторые другие (ноне в sh). Если не указать абсолютное путевое имя, будет вызвана именно встроенная версия, а не системная. Это очень неудобно, так как синтаксис их в большинстве случаев различен (иногда отличаются даже диапазоны значений. В табл. 4.3 перечислены основные варианты. Параметр приор — это абсолютное значение nice, тогда как параметр инкр определяет приращение приоритета по отношению к значению nice текущего интерпретатора команд. Чтобы ввести отрицательное значение, необходимо поставить два дефиса например, —10). Знак '+' нужно указывать только во встроенной версии команды nice.
Тоблица 4.3. Синтаксис эодония приоритетов в различных версиях команд nice и renice
ОГ ДЛЬго/он Снеге n i c
° комокцо Гвшсе
^ комондо nice в csh
Solaris 0—39 -инкр или -п инкр +инкр или -инкр инкр шш -п инкр
HP-UX 0—39 -приор или -п приор + инкр или -инкр -а приор
]
Red Hat -20-20 -инкр или -п инкр +инкр или -инкр приор
FreeBSD -20— 20 -приор +инкр или -инкр приор
1
Указывается абсолютный приоритет, но к введенному значению добавляется 20. Самый распространенный из высокоприоритетных процессов в современном мире — xmpd демон тактовой синхронизации. Поскольку для выполнения его миссии быстрый доступ к центральному процессору имеет очень большое значение, этому процессу обычно назначается фактор уступчивости -12. Если какой-либо процесс займет столько времени центрального процессора, что доведет показатель средней загруженности системы до 65, то перед выполнением команд, необходимых для исследования этой проблемы, может понадобиться запуск с помощью команды nice высокоприоритетного интерпретатора. В противном случае весьма вероятно, что у команд не будет ни малейшего шанса быть выполненными.
4 7. Текущий контроль процессов команда ps Команда ps — основной инструмент, которым системный администратор пользуется для текущего контроля процессов. Версии этой команды различаются аргументами и выходным форматом, но, по сути, выдают одну и туже информацию. Все версии можно разбить и а два основных лагеря системы семейства System V (Solaris, H P - U X ) и системы семейства BSD (Red Hal,
FreeBSD). Кроме того, поставщики могут настраивать эту команду с учетом конфигурации системы, так как она тесно связана с особенностями обработки процессов в ядре и поэтому часто отражает изменения в ядре. С помощью команды ps можно получить информацию об идентификаторах, приоритете, управляющем терминале того или иного процесса и многое другое. Она также позволяет узнать о том, какой объем памяти использует процесс, сколько времени центрального процессора он затребовал, каково его текущее состояние (выполняется, остановлен, простаивает и т.д.).
Процессы-эомбн в листинге команды ps обозначаются как < e x i t i n g > или
< d e f u n c t > .
Глова 4 Упровление процессами
/3
Администратор должен научиться понимать выходную информацию команды. Посмотрев на полученный листинг, можно определить (помимо всего прочего, какие процессы выполняются в системе, сколько ресурсов центрального процессора и памяти они используют и кому принадлежит каждый из них. Команда ps стремительно усложнилась за последние несколько лет. Некоторые поставщики бросили попытки стандартизировать выходной формат этой команды и сделали ее полностью конфигурируемой. Проведя небольшую настройку, можно получить практически любые требуемые результаты. В Red Hat команда ps является настоящим хамелеоном и понимает наборы опций из целого ряда других систем. Имеется также специальная переменная среды, с пом о шью которой можно выбрать нужный набор. Не пугайтесь подобной сложности пусть это будет кошмаром разработчиков ядра, а не системных администраторов Несмотря на частое применение команды ps. достаточно знать лишь несколько магических заклинаний. В Red Hat и FreeBSD получить список всех процессов, выполняющихся
& в системе, можно с помошью команды ps aux. Ниже показаны результаты работы этой команды во FreeBSD (вони будут немного другими.
* р ь a u x
USER PID *CPU ЧМЕМ
VS2
RSS TT STAT STARTED TTI-5E
COMMAND r o o t
0 0 . 0 С 0 0
0
??
DLs
8 35PM 0 00 06
( s w a p p e r ) r o o t
1 0 . 0 0 0 2 0 8 120
??
Ss в 35PH 0 DO 20 i n i t - s r o o t
2 0 . 0 0 0 0 12
??
BL e 3*>PM 0 00 03 i p a g e d a e n w n j r o o t
46 fl.O
0 0 160 112 "7 Ss e 37 PM
0
01 45 e y s l o q d r o o t bo
0.0
0 0 22B
Lai ?3 1 в 37 PM 0 00
/3 СГОГ
r o o t
75 0 . 0 0 0
226
1 a ?' lWs 8 3"PM 0 DD 02
Lpd r o o t
100 5 . 5 0 0 204 92
??
Is
в 37PM
0 00 1« l n e t d
evi
1251 0 . 0 0 0 320 256 p8 l S +
1
50PM
с
06
«Т
- c s h (ceh> e v i
1511 0 . 0 0 D
126 64 pB
s-»
3
ПРМ
0 00 03 nan l o g g e r e v i
1520
o . c
0 0 332 224 pB RE-
3
17PM
0 00 04 p s a u x Описание каждого поля приводится в табл. 4.4.
Рще один полезный набор аргументов команды ps в Red Hat н FreeBSD — lax. Команда ps lax выдает более специализированную информацию и выполняется быстрее, поскольку не осуществляет сопоставления идентификаторов процессов с именами пользователей. Это может оказаться весьма важным фактором, если система уже серьезно загружена каким- то процессом Ниже в сокращенном виде показаны результаты работы команды. Обратите внимание на дополнительные поля P P I D (идентификатор родительского процесса. N1 (значение nice) и W C H A N (ресурс, которого ожидает процесс.
» ps lax
UID PID PPID CPU PR Г MI
vsz
RS5
WCHAN STAT TT ТГМЕГ
COMMAND
0 0
0 0 - 1 8 0
0
0 a 5 e € c
DLs
??
0 : 0 0 . .06 f s w a n p e r )
0 1
0 0
10 0
208 120 w a i t
I s ?? 0 : 0 0 . 20 i n i t - s
0 2
0 0
- 1 6 0
G
12 a 2 0 3 c
DL
??
0 : 0 0 . 06 pagpdaemon
0 46
I
0 2
0 160 112 s e l e c t
S s
??
0 : 0 1 . ,47 s y s l o c d
0 77 1
0 2 с "60
BB s e l e c t
IWs
??
0 : 0 0 . .0» porVPiap
0 64 0
2 0 260 204 s e l e c t tMs
??
0 : 0 0 . > 2 ? m o j n t d
70
Чость I. Основы одминистрировония
Таблица 4.4 Пояснения к выходной информоции комонды ps oux (во FreeBSD) Поле
USER
P I D
%CPO
%MEM v s z
RSS
TT
STAT Содержимое
STARTED
T I M E
COMMAND Имя владельца процесса Идентификатор процесса Доля времени центрального процессора (в процентах, выделенная данному процессу Часть реальной памяти (в процентах, используемая данным процессом Виртуальный размер процесса в килобайтах Размер резидентного набора (количество стран ид памяти размером
1 Кб) Идентификатор управляющего терминала Текущий статус процесса
R — выполняется
D — ожидает записи на диск
I — неактивен (< 20 с)
S — неактивен (> 20 с) Т — приостановлен
Z — зомби Дополнительные флаги
> — процесс имеет повышенный приоритет
N — процесс имеет пониженный приоритет
< — процесс превысил программный лимит на использование памяти
А — процесс запросил замену произвольной страницы s — процесс запросил замену страницы по принципу FIFO
V — процесс приостановлен на время выполнения вызова vforV
Е — процесс пытается выполнить вызов exit
L — некоторые страницы блокированы в оперативной памяти
X — процесс находится в состоянии трассировки или отладки
S — процесс является лидером сеанса (владельцем управляющего терминала) w — процесс выгружен на диск
+ — процесс находится в интерактивном режиме своего управляющего терминала
Время запуска процесса
Время центрального процессора, затребованное процессом
Имя и аргументы команды'
Список аргументов может быть неполным. Добавьте опцию ww. чтобы запретить усечение.
В Solaris и H P - U X получить и н ф о р м а ц и ю о выполняемых процессах можно с помошью команды ps -ef (она работает н в Red Hat):
% р е - e f
DID
PIC
PPID
C
STIME
TTV
TIME
COMD o o t
0 0
BO
Dec 21 0 : 0 2 s h e d o o t
1 0
2
D e c 21 4 : 3 2
/ e t c / i n i t - o o t
2 0
В
D e c 21 0 : 0 0 p a g e o u t o o t
1 7 1 1
BO
Dec 2 1 0 : 0 2
/ u s r / l i b / s e i w n a o . 1 - b d t e n t
B4B2
Б444 3 5 1 4 : 3 4 : 1 0 p t s / 7 0 : 0 0 p s - e f t e n t e<44
Б422 2 0 3 1 4 : 3 2 : 5 0 p t s / ч
0 : 0 1
- c s h
Пояснения к этому листингу даны в табл. 4.5.
Глово 4. Упровление процессоми
/5
Таблица 4.5. Пояснения к выходной информоции комонды реи) Пале Содержимое _
UID Имя владельца процесса
PID Идентификатор процесса
PPID Идентификатор родительского процесса с Информация об использовании центрального процессора и планировании
STIME Время запуска процесса
TTY Управляющий терминал
TIME Время центрального процессора, затребованное процессом
COMD Команда и аргументы Подобно команде ps lax в Red Hat и FreeBSD, ps -elf позволяет в системах семейства System V увидеть и другие интересные данные
% ре - « i f
F
S UID
PID PPID Ст c 2 f d 8 0
0 : 0 2 s c h e d
6 s r o o t
1 0
65 1
20 f f 2 e a B 0 0 ее f f 2 6 3 2 c B
4:32 i n i t -В S r o o t
1 4 2 1
41 1
20
f f 2 e B 0 0 0 1 7 6 f 0 0 c b 6 9 0 : 0 0 s y s L o a d Столбцы S T I M E и TTY здесь опущены, чтобы листинг уместился по ширине страницы они идентичны столбцам, выдаваемым командой ps -ef. Поля листинга описаны в табл. 4.6.
Таблица 4.6. Пояснения к выходной информоции комонды реи
Поле Содержимое _
F Флаги процесса возможные значения зависят от системы (редко используются системными администраторами)
S Статус процесса о — в текущий момент выполняется
S — неактивен (ожидает события)
R — разрешен к выполнению Т — остановлен или отлаживается
Z — зомбн
D — неактивен и не может быть прерван обычно ожидает записи на диск) С Информация об использовании центрального процессора (применяется для планирования процессов) Р Приоритет планирования (внутреннее значение ядра, отличается от значения nice)
N1 Значение nice или константа SY для системных процессов
ADDR Адрес процесса в памяти
SZ Число страниц, занимаемых процессом в оперативной памяти
WCHAN Адрес ресурса, которого ожидает процесс
76
Чость I. Основы одминистрировония

4.8. Улучшенный текущий контроль процессов программа top Команда ps позволяет сделать только разовый, моментальный "снимок" системы, но получить полную картину всего происходящего в ней довольно сложно. Существует бесплатная программа t o p , которую можно установить в системах многих типов, чтобы получать с ее помощью регулярно обновляемую сводку активных процессов и используемых ими ресурсов. Автором этой программы является Уильям Лефевр (William LeFebvre).
[vj Программу top можно загрузить с узла vsww.groupsys.com.
Вот примерные результаты ее работы l a s t p i d : 2 1 3 1 4 ; Lped a v e r a g e s : 2 . 9 7 , 2 . 9 5 , 2 . B 9 1 5 : 5 1 : 5 1 75 p r o c e s a e s : 71 s l e e p i n g , 3 r u n n i n g , 1 zombie cpu s t a t e s : 4 4 . 5 1 u s e r , 0 % n i c e , 2 3 . 9 * s y s t e m , 3 1 . 6 4 i d l e
Memory: 113M a v a i l , 1CBM in u s e , 4972K f r e e , 6232K l o c k e d
PID
USER
PHI NICE
SIZE
RES STATE TIME
ИСР13
CPU
COMMAND
1313 r o o t
1 - 1 9 297K
14BK s l e e p
0: : 00 9 . 3 *
0 . 7 1 e c p c d
2В5В r o o t
1 0
1564K
67 6K s l e e p
0: : 20 5 . 4 *
0 . 7 1 s e ^ d m s
1310 r o o t
27 0
812K
4BBK r u n
0: : 00 7 . 6 1 0.3% sendma
901 r o o t
29 0
2152K
2324K r u n
0: :03 0 . 0 1 0 . 0 * t o p
192 r o o t
1 0
44K
27 6K s l e e p
0: :4B
0.0%
0.0% i n . r l o
778 u u c p
27
D
244K
508K r u n
0: : 04
D. 01 0 . 0 1
UUC1CO В r a n d y
15 0
220K
176K s l e e p
0; : 00 0 . 0 4 0.0% c s h
151 r o o t
15 0
12K
BK s l e e p 54; : 4 D 0,0%
0 . 0 » u p d s t e
0962 t r e n t
15 0
212K
OK s l e e p
0; : 00
C-0%
0.0% c s h
5843 b e t h
15 0
20BK
OK s l e e p
0: : 00
D.0%
0.0% c s h
167 r o o t
15 0
100K
OK s l e e p
0: : 00 0.0% o . o t l p d
1311 r a n d у
5
D
224K
40BK s l e e p
0: : 00 0 . 0 1 0.0% p r e v По умолчанию эта информация обновляется каждые десять секунд. Наиболее активные процессы указываются первыми. Программа t o p позволяет также посылать процессам сигналы и использовать команду r e n i c e , чтобы пользователь маг наблюдать затем, как его действия влияют на общее состояние системы. Для того чтобы обновлять информацию каждые десять секунд, программа t o p должна занимать некоторую часть времени центрального процессора. По этой причине ее следует использовать только для диагностически* целей, а не как программу, постоянно работающую в отдельном окне. Пользователь root может запустить программу top с опцией -q, чтобы обеспечить ей максимально возможный приоритет. Это очень удобно, если какие-то процессы уже существенно замедлили работу системы.
4.9. Процессы, вышедшие из-под контроля
Ииогда в системе появляются процессы, которыми по той или иной причине должен заниматься администратор. Неуправляемые процессы бывают двух видов пользовательские, потребляющие слишком много системных ресурсов (например, времени центрального процессора или дискового пространства, и системные, которые внезапно "ападают в буйство" и начинают вести себя непредсказуемо. Процессы первого типа могут бьггь вполне работоспособными, просто они некорректно обращаются с ресурсами. В тоже время системные процессы всегда должны работать в соответствии с определенными правилами.
Глово 4. Упровление процессоми
/5

Об обработке неуправляемых процессов читайте также в параграфе 25.4.
Процессы, занимающие чересчур много времени центрального процессора. можно выявить, проанализировав результаты работы команды ps. Если очевидно, что какой-либо пользовательский процесс потребляет больше ресурсов, чем ему действительно необходимо, его нужно исследовать. Самый простой способ разобраться в ситуации — связаться с владельцем процесса испросить, что происходите Если зто невозможно, придется действовать на свой страхи риск. Хотя в обычной ситуации системный администратор старается не заходить а каталоги пользователей, это допускается, если нужно изучить исходный текст неуправляемого процесса н выяснить, что же он делает. Это может понадобиться по двум причинам. Во-пераых. процесс может быть действительно важным для пользователя Уничтожать каждый процесс, который занимает много времени центрального процессора, не совсем разумно. Во-вторых, процесс может оказаться деструктивным, написанным хакером-злоумышленником. В этом случае нужно точно знать, что он натворил, иначе исправить положение не удастся. Если причину появления неуправляемого процесса определить не удается, приостановите его сигналом STOP и отправьте владельцу по электронной почте сообщение о том, что случилось. Процесс можно впоследствии перезапустить сигналом CONT. Помните о том, что некоторые процессы перестают нормально функционировать в случае слишком долгого простоя, поэтому описанным подход не всегда приемлем. Например, процесс мог осуществлять обмен данными через сетевое соединение, а после "пробуждения" обнаруживается, что соединение уже разорвано. Если процесс использует слишком много ресурсов процессора, поделает нечто обоснованное и работает правильно, необходимо с помощью команды r e n i c e понизить его приоритет и попросить владельца в будущем запускать процесс с более низким приоритетом. В системах, где не реализованы каоты. результаты работы неуправляемых процессов могут заполнить всю файловую систему н. таким образом, повлечь за собой бесчисленные проблемы. При переполнении файловой системы на консоль выдается множество сообщений, и попытки записать что-лнбо на диск вызывают появление сообщений об ошибках. Первое, что нужно сделать в такой ситуации, — это остановить процесс, который переполняет диск. Если на диске было специально зарезервировано свободное пространство, тов случае его внезапного заполнения можете быть уверены тут что-то неладно. Не существует средства, аналогичного команде p s , которое сообщило бы о том, кто использует дисковое пространство. Но есть утилиты, позволяющие получить список открытых файлов и процессов, работающих сними описание утилит fuser и Isof приведено в параграфе 5.2. Можно приостановить все подозрительные процессы, пока не обнаружится источник проблем. В этом случае не забудьте после выявления нарушителя удалить все созданные им файлы и перезапустить невиновные процессы. Старый и хорошо известный трюк — запуск из интерпретатора команд бесконечного цикла while 1 mkdir a d i r c d a d i r
74
Чость I. Основы одминистрировонир
t o u c h a f i l e end Такое иногда происходит, если злоумышленник проник в систему через незащищенную учетную запись или зарегистрированный в системе терминал, брошенный без присмотра. Созданное дерево каталогов не занимает много места на диске, просто переполняется таблица индексных дескрипторов файловой системы, и другие пользователи теряют возможность создавать новые файлы. Единственное, что можно сделать в подобной ситуации. — устранить последствия и предупредить пользователей о необходимости зашиты своих учетных записей. Поскольку дерево каталогов, оставленное таким маленьким программным "перлом, может оказаться слишком большим для команды гш -г, придется написать сценарий, который спустится по дереву вниз, а затем, возвращаясь, удалит все каталоги. Если проблема возникла в каталоге / t m p , а он был создан как отдельная файловая система, то вместо того чтобы пытаться удалять файлы, можно проинициатизировать каталог / t m p с помощью команды n e w f s . Более подробно об управлении файловыми системами рассказывается в главе 8.

5
Файловая система
Ответьте, не раздумывая, на вопрос что из нижеперечисленного можно встретить в файловой системе Процессы Последовательные порты Каналы межзадачного взаимодействия Совместно используемые сегменты памяти Если речь идет о UNIX, ответом будет "все вышеперечисленное. Ну и. конечно, в файловую систему входят собственно файлы. Хотя основным предназначением файловой системы является организация хранимых ресурсов системы (те. файлов, программистам не хотелось каждый раз заново изобретать колесо при управлении объектами других типов Очень часто оказывалось удобным представлять такие объекты в виде элементов файловой системы Подобный унифицированный подход имеет как преимущества (единый программный интерфейс, легкий доступ из командного интерпретатора, таки недостатки (реализация файловых систем по методу доктора Франкенштейна). Но независимо оттого, нравится он вам или нет, именно такой подход применяется в UNIX. Файловую систему можно представить состоящей из четырех основных компонентов пространство имен — методы именования объектов и организации их в виде иерархий
• API" — набор системных вызовов, предназначенных для перемещения между узлами системы и управления ими Интерфейс программирования приложений (Application Programming Interface, API) — это обший термин для описания набора подпрограмм, организованных в виде библиотеки или совокупности библиотеки доступных программистам.
80
Чость I. Основы одминистрировония
модель безопасности — схема зашиты, укрывания и совместного использования объектов реализация — программный код, который связывает логические модели с дисковой подсистемой. Современные файловые системы в UNIX определяют абстрактный интерфейс уровня ядра, позволяющий работать с различными аппаратными интерфейсами. Некоторые части файлового дерева обрабатываются традиционной дисковой подсистемой, другие управляются отдельными драйверами ядра. Например, за работу сетевых файловых систем (NFS) отвечает драйвер, который перенаправляет запросы серверу на другой компьютер. К сожалению, архитектурные границы нечетко очерчены, и имеется слишком много "особых" случаев. Скажем, файлы устройств позволяют программам взаимодействовать с драйверами ядра. Они не являются файлами данных, но обрабатываются базовыми средствами файловой системы, а их характеристики записываются на диск. Наверное, имело бы смысл переписать операционную систему с учетом опыта последнего десятилетия. Другим усложняющим фактором является то, что современные версии
UNIX поддерживают несколько типов файловых систем. Помимо базового варианта — 4 3BSD, распознаваемого большинством ОС, существуют файловые системы, обладающие повышенной надежностью или упрошенными средствами восстановления после сбоев (например, VXFS в HP-UX), системы, поддерживающие иную семантику (например, расширения, связанные со списками прав доступа в Solaris и HP-UX), и системы, построенные на других типах носителей (в частности, жесткие диски DOS или компакт-диски формата ISO-966D). Все они могут отличаться от стандартной файловой системы UNIX, описываемой в настоящей главе.
5.1. Путевые имена Файловая система — это единая иерархическая структура, которая начинается с каталога / и разветвляется, охватывая произвольное число подкаталогов. Каталог самого верхнего уровня именуется корневым. Цепочка имен каталогов, через которые необходимо пройти для доступа к заданному файлу, вместе с именем этого файла называется путевым именем.
Путевые имена могут быть абсолютными (например, /tmp/аШе) или относительными (скажем, ЬоокЗ/niesystem). Последние интерпретируются, начиная с текущего каталога. Некоторые считают, что текущий каталог задается командным интерпретатором. На самом деле текущий каталог имеется у каждого процесса.
Термины файл и имя файла, а также путевое имя и путь в большей или меньшей степени являются взаимозаменяемыми. Понятия имя файла и путь
можно употреблять как для абсолютных, таки для относительных путевых имен. Под путевым именем, как правило, подразумевают абсолютный путь.
Слово файл часто используется в случаях, когда нужно сконцентрировать внимание на содержимом файла, а не на его имени. Файловое дерево в UNIX может быть произвольного размера. Однако существуют определенные ограничения имя каталога должно состоять не более чем из 255 символов, а в отдельном путевом имени не должно быть более 1023 символов. Чтобы получить доступ к файлу, абсолютное путевое имя которого не удовлетворяет этим требованиям, необходимо с помощью
Глово 5. Фойловоя систеадо
81
команды cd перейти в промежуточный каталога затем воспользоваться относительным путевым именем. На имена файлов и каталогов не накладывается никаких ограничений, за исключением того, что длина имен не должна превышать заданный предел ив имена нельзя включать символы '/'. В частности, теоретически допускаются имена, содержащие пробелы. Нона самом деле по давней традиции аргументы командной строки в U N I X разделяются пробелами, поэтому старые программы интерпретируют пробелы в именах файлов как признак конца одного имении начала другого. Учитывая количество всевозможных файловых систем, существующих на сегодняшний день, нельзя полагать, что вам никогда не встретятся имена файлов с пробелами. Даже если вы не взаимодействуете с компьютерами, работающими под управлением Macintosh или Windows, все равно есть много пользователей, привыкших давать своим файлам сложные имена. О подобной возможности не следует забывать при написании любых сценариев, взаимодействующих с файловой системой В общем случае имена с пробелами надлежит просто заключать в двойные кавычки. Например, команда



Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   10   ...   82


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал