Войтов Η. М. Администрирование ос red Hat Enterprise Linux Учебный курс І р п souline a c a d e m y a L l I a n c e м о с к в а, 2011




страница5/13
Дата19.11.2016
Размер5.62 Mb.
Просмотров314
Скачиваний0
1   2   3   4   5   6   7   8   9   ...   13
rsync может работать в режиме «клиент-сервер». В данном случае на сервере функционирует демон rsyncd, который ссылается на конфигурационный файл /etc/rsy n cd .co n f. Ф айл /e tc /r sy n cd .co n f содержит глобальные конфигурационные параметры и секции с описанием модулей, каждая из которых представляет собой дерево каталогов для экспорта или импорта:
^Название модуля (используется при подключении в командной строке Каталог, в который будет производиться загрузка файлов path = /var/rsync/pub
# Режим доступа к модулю (чтение или чтение+запись) read only = false
# Идентификаторы пользователя и группы, которые будут использоваться при загрузке файлов uid = root gid = root
# Список хостов,
которым разрешено загружать файлы в данный модуль hosts allow = m a i n .linux.lab
В данной конфигурации все операции выполняются в каталоге /v a r /r s y n c /
pub, а доступ разрешен только хосту main.linux.lab. С точки зрения пользователя или клиента можно осуществлять загрузку файлов на сервер, указывая в качестве пункта назначения выражение вида <хост>::<модуль>, которое соответствует описанному выше модулю.
1.8. Автоматизация выполнения
задач
Очень часто администратору приходится выполнять повторяющиеся задачи ротацию системных журнальных файлов, проверку ресурсов оборудования, резервное копирование и др. Повторяющиеся задачи можно выполнять при помощи имеющегося в ОС Linux планировщика задач cron. Д ля использования планировщика задач cron в ОС Linux должны быть установлены пакеты vixie-cron и
crontabs.
П ланировщ ик задач cron присутствует в системе в виде фонового процесса
crond, который каждую минуту считывает несколько конфигурационных файлов, содержащих списки командных строки расписание их вызова. Командные строки выполняются в командном интерпретаторе Для управления конфигурационными файлами планировщика
исполь­
зуется команда crontab. Основной конфигурационный файл, используемый для задания системных административных заданий, /etc/cro n ta b , содержит следующие записи:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
Автоматизация выполнения задач
ΙΙΙΙΙ···
57
MAILTO=root
НОМЕ=/
• run-parts
Ql
*
*
* *
root run-parts /etc/cron.hourly
Q
2 4
*
* * root run-parts /etc/cron.daily
22 4 *
* 0 root run-parts /etc/cron.weekly
42 4 1
* * root run-parts В первых четырех строках данного листинга определяются переменные окружения, которые будут доступны для заданий планировщика. Каждая строка в файле /etc/c ro n ta b состоит из шести полей минута, час, число (день месяца, день недели, команда.
Каждое из полей времени может содержать:
• символ «*», обозначающий любую цифру;
• целое число;
• два целых числа, разделенные символом «-», обозначающих диапазон;
• целые числа или диапазоны, разделенные запятыми.
Диапазоны значений могут содержать значение шага поиска. Например, последовательность 0,3,6,9,12,15,18 можно записать короче 0-18/3. Можно также использовать сокращенные названия месяцев и дней недели, но только не вместе с диапазонами значений.
Все остальные символы в строке файла
интерпретируются как выполняемая команда с ее параметрами. Если команда отправляет какой-нибудь текст в стандартный канал вывода, этот текст отправляется по почте пользователю, указанному в переменной MAILTO.
В файле etc/crontab при помощи скрипта run-parts запускаются команды, содержащиеся в каталогах /etc/cron .h ou rly, /e tc /c r o n .daily, /e tc /c r o n .w eek­
ly и /e tc /c r o n .monthly. И з названий каталогов понятно, что запуск выполняется каждый час, каждый день, каждую неделю и каждый месяц. Как правило, в каталогах /e tc /c r o n .* содержатся системные команды, выполняющие периодическую работу. Например, в каталоге /etc/cro n .d a ily содержатся скрипты утилиты
logrotate, выполняющей ротацию журнальных файлов, скрипт утилиты updatedb, которая обновляет базу данных языковых параметров (locale), скрипт tmpwatch, который периодически удаляет файлы из каталогов /tm p и /var/tm p.
Помимо выполнения административных задачу обычных пользователей существует также возможность задавать пользовательские задания. Для этого пользователю необходимо выполнить команду crontab -е, в результате которой откроется его персональный файл расписания, /уаг/8роо1/сгоп/<регистрационное_имя_
пользователя^ в котором пользователь задает расписание выполнения команд. Для каждого пользователя предусмотрен только один такой файл. В качестве имени файла выбирается регистрационное имя пользователя, которому он принадлежит, и на основании этого имени демон crond выясняет, какое значение U ID нужно использовать при выполнении команд, содержащихся в данном файле.
В ОС Linux существует возможность предоставлять доступ к демону crond только определенным пользователям. Два файла конфигурации /etc /c ro n .d e n y
и /etc /cro n .a llo w содержат информацию о том, кому из пользователей разрешено использовать команду crontab. Если файл cron.allow существует, то он содержит список пользователей, имеющих доступ к демону crond (по одному имени в строке. Пользователи, которых нет в списке , не имеют права выполнять команду
crontab. Если файла нет, проверяется файл cron.deny. Он также содержит список пользователей доступ разрешен всем, кроме указанных в данном файле. Если нет ни одного из этих файлов, использовать команду crontab имеет право только пользователь r o o t .
При запуске демон crond считывает все свои конфигурационные файлы, помещает их в память и переходит в режим ожидания. Разв минуту демон активизируется, проверяет даты модификации пользовательских и системных расписаний и загружает те файлы, которые изменились, а затем выполняет команды, запланированные на данную минуту, после чего снова переходит в режим ожидания.
Помимо планировщика задач cron в ОС Linux существует планировщик также предназначенный для выполнения команд по расписанию, однако этот планировщик может быть настроен только на единовременное выполнение команды в заданное время. Планировщик работает по схожей схеме, что и cron: запланированные задания помещаются в очередь в каталоге /v a r /s p o o l/a t и выполняются в указанное время. Для запланированного запуска заданий используется команда
at, имеющая следующий синтаксис:
at [-f <файл>] <время>
При указании аргумента -f с параметром <файл> команда at будет брать задания из указанного файла. В аргументе <время> указывается время, когда должно быть запущено задание. Если аргумент -f опущен, то задания считываются из стандартного канала ввода.
Таблица 1.11.
Примеры запуска команды В М І Н Н І Модуль 1. Системное администрирование
Временной
период
Пример
Описание
Минуты at now + 10 Задания запустятся через десять минут
Часы at now + 2 Задания запустятся через час
Дни at now + 1 Задания запустятся через 24 часа
Недели at now + 1 Задания запустятся через 7 дней- at 20:00 Задания запустятся в 20:00 31 декабря
2008 года
Д ля просмотра очереди заданий демона atd используется команда atq.
1.9. Журналирование системных
событий
Неотъемлемой частью контроля и мониторинга работы ОС Linux и всех ее сервисов является журналирование событий. Все утилиты создают журнальные
Ж урналирование системных событий
ΙΙΙΙΙ···
59
данные, которые регистрируются в системе. Ж урналирование событий позволяет выявить причины сбоя в работе различных команд и демонов. В ОС Linux существует несколько утилит, позволяющих выполнять мониторинг активности систе-
В ОС Linux по умолчанию присутствуют два демона журналирования: klogd и syslogd. Демон klogd журналирует события и сообщения ядра ОС Linux. Демон
syslogd используется для ж урналирования событий всех остальных процессов и сервисов. Демон syslogd позволяет не только журналировать события процессов, происходящих на локальном хосте, но и записывать события с удаленных хостов на один определенный хост, выступающий в роли хранилища журнальных файлов. Оба демона автоматически запускаются в процессе загрузки ОС Linux. После того как демоны начали функционировать в фоновом режиме, демон syslogd счи­
тывает конфигурационный файл /e tc /s y s lo g .c o n f для определения типа событий, которые необходимо журналировать, а также уровня их детализации.
Каждая строка файла syslog.con f содержит записи вида:
средство.уровень
действие
Средством является программа, посылающая журнальные сообщения, и уровень критичности данных сообщений процессу syslogd. Н азвания средств и уровней критичности следует выбирать из стандартного списка значений (табл. 1.12); программы не могут самостоятельно сформировать такие списки. Есть средства, определенные для ядра, для основных системных утилит и для локальных программ. Все остальное проходит под общим названием user (пользователь). Выражение средство.уровень является по сути фильтром, который определяет, какие события следует журналировать ив какой файл их необходимо журналировать.
По умолчанию, все журнальные файлы ОС Linux располагаются в каталоге
/v a r/lo g , поэтому рекомендуется размещать данный каталог как отдельную файловую систему с высокой производительностью записи.
Ф ильтры могут содержать ключевые слова * и попе, которые обозначают соответственно все и ничего. В фильтре разрешается через запятые перечислять группу средств. Допускается также разделение самих фильтров с помощью точки с запятой. В общем случае фильтры объединяются методом логического сложения, те. указанное действие будет выполняться для сообщения, соответствующего любому из фильтров. Фильтр уровня попе означает исключение перечисленных в нем средств независимо оттого, что указано в остальных фильтрах этой же строки.
Таблица 1.12.
Уровни критичности сообщений
Уровень
Значение
emerge
Экстренные сообщения Срочные сообщения Критические сообщения Основные журнальные файлы ОС Linux приведены в приложении 3.
Ш ПИ І І І І
Модуль I . Системное администрирование
Уровень
Значение
err
Сообщения об ошибках Предупреждающие сообщения Сообщения, имеющие интерес Информационные сообщения Отладочные сообщения
Например, предположим, что в файле sy slo g .co n f задана следующая строка В данной строке осуществляется посылка сообщений, удовлетворяющих указанным фильтрам, в файла именно:
• посылка всех сообщений, имеющих уровень важности info и выше;
• отмена посылки всех событий для средств mail, news, authpriv и con.
В файле syslog.con f уровни обозначают минимальную важность, которую сообщение должно иметь для того, чтобы быть зарегистрированным. Например, сообщение почтовой системы, имеющее уровень важности warning, будет соответствовать фильтру mail.warning, а также фильтрами. В ОС Linux возможно ограничивать посылку сообщений только определенных уровней. Для этого используются специальные символы «=» и «!», обозначающие «только данный уровень и «кроме
данного и более высоких уровней».
Таблица 1.13.
Примеры использования ограничений посылки событий
Обозначение
Значение
mail.info
Посылка сообщений почтовой системы с уровнем info и выше Посылка сообщений почтовой системы только с уровнем info Посылка сообщений почтовой системы с уровнями info, notice и warning mail, debug Посылка сообщений почтовой системы с любым уровнем, кроме warning
Таблица 1.14.
Действия syslog
Действие
Значение
имя_файла
Записать сообщение в указанный файл на локальном хосте
@имя_хоста
Переслать сообщение демону syslogd, функционирующему на удаленном хосте с указанным именем
Процессор ill··
61
Действие
Значение
@1Р_адрес
Переслать сообщение демону syslogd, функционирующему на удаленном хосте с указанным ІР-адресом
1 файл Н РО Переслать сообщение в указанный именованный канал пользователи, пользователь2,...
Переслать сообщение на экран терминала указанных пользователей, если они зарегистрированы в системе
*
Переслать сообщения на экраны всех зарегистрированных в системе пользователей
Ж урналирование событий осуществляется в регулярные файлы. При необходимости перед файлом можно указать знак «-», чтобы не использовать синхронизацию данных в файле после каждой посылки событий. Это может немного повысить производительность в случае, если приложение использует очень детализированный уровень важности.
1.10. Мониторинг и оптимизация
производительности
Производительность ОС Linux во многом определяется эффективностью распределения и совместного использования ее основных ресурсов. В первом приближении основное влияние на производительность оказывают следующие факторы:
• время использования центрального процессора;
• использование виртуальной памяти;
• пропускная способность дисковой подсистемы ввода-вывода;
• пропускная способность сетевой подсистемы ввода-вывода.
1.10.1. Процессор Самый простой сточки зрения учета ресурс - время использования центрального процессора (C P U ). В распоряжении системы всегда находится практически
100% его мощности. Для процесса, занимающего более 90% времени ЦП, ограничивающим фактором является быстродействие центрального процессора. Такой процесс потребляет большую часть вычислительных мощностей системы. Основными параметрами, влияющими на производительность центрального процессора являются:
• количество задач, ожидающих выполнения;
• утилизация процессора;
• приоритет выполнения процессов.
Для того, чтобы просмотреть количество задач, решаемых процессором, используется команда uptime. Д анная команда отображает общее время работы системы, количество работающих пользователей и нагрузку на процессор (load
average). Вывод данной команды имеет следующий вид:
05:08:07 up 6:10, 2 users, load average: 0.00, 0.00, 0.00
В идеале количество задач на процессоре должно быть равным 1, что говорит о том, что каждый процесс имеет постоянный непрерывный доступ к процессору В действительности из-за большого количества задач данный параметр может находиться в пределах от 8 дои даже выше. Большая утилизация процессора время использования его ресурсов) также не всегда является показателем падения производительности, поскольку процессор может ожидать получения необходимых данных из других подсистем, например, получения данных из виртуальной памяти.
Пользователь не имеет возможности изменять приоритет процессов, он может изменять только приоритет предпочтения (nice) процессов. Если какие-то процессы работают медленно, можно предоставить им больше процессорного времени, снижая их приоритет предпочтения (nice priority). Например, для увеличения приоритета предпочтения для работающего процесса на -5 необходимо использовать следующую команду -5 По умолчанию пользовательские процессы имеют приоритет предпочтения, равный 0. Установка отрицательного значения для данного параметра позволяет процессу использовать большую долю времени работы процессора.
Для того чтобы определить утилизацию процессора, приоритет предпочтения и реальный приоритет выполнения процессов, используются команды top или ps.
Если в системе используется несколько процессоров, то имеет смысл сгруппировать процессы, которые вызывают большое количество прерываний процессоров, на одном или нескольких процессорах - это позволит избежать перемещения процессов между процессорами и достигнуть более оптимальной работы процессорного кэша. Данный механизм оптимизации заключается в организации родственности процессов (C P U affinity) по отношению к процессорам. Например, для того, чтобы какое-либо прерывание выполнялось на ом процессоре, необходимо задать значение маски процессора в файле smp_affinity:
echo 03 > /proc/irq/19/smp_affinity
Общую информацию об использовании процессора можно узнать с помощью команды vmstat. Она принимает два аргумента время (в секундах, в течение которого необходимо наблюдать за системой для получения каждой строки выходной информации, и необходимое количество замеров. Если не указать число замеров, команда будет выполняться до тех пор, пока пользователь не нажмет клавиши
.
В первой строке отображаемых данных сообщаются средние значения, измеренные с момента запуска системы. В следующем листинге приведены результаты
ΈΙΗΙΙΙΙΙΙ
Модуль 1. Системное администрирование
Процессор ill··
63
каждого очередного замера, стандартная продолжительность которого составляет
5 секунд.
# vmstat 5 5
procs memory swap
_

-- 10---
_

system г b swpd free buff cache si so bi bo in cs us sy id wa st
0 0
0 73464 69748 163304 0
0 7
7 1005 50 0
0 99 0
0 0
1 0
73464 69752 163300 0
0 0
5 1003 44 0
0 100 0
0 0
0 0
73464 69756 163304 0
0 0
1 1004 44 0
0 100 0
0 0
0 0
73464 69756 163304 0
0 0
0 1003 43 0
0 100 0
0 0
0 0
73464 69756 163304 0
0 0
0 1004 44 0
0 100 В результате отображается ряд параметров пользовательское время (us), сис­
темное время (время ядра) (sy), время простоя (id) и время ожидания для каналов ввода-вывода (I/O ) (wa). Больш ие числа в колонке us обычно означают вычисления, а в колонке sy они свидетельствуют о том, что процессы осуществляют очень много системных вызовов или выполняют операции ввода-вывода.Общее правило распределения времени процессора заключается в следующем система должна тратить примерно 50% рабочего времени на обслуживание пользовательских запросов и столько жена системные запросы. Если сервер выделяется под одно-единственное, но интенсивно использующее процессор приложение, большая часть времени должна тратиться на обработку пользовательских запросов.
В колонке cs показано число переключений контекста (con text sw itches) за данный период, те. сколько раз планировщик процессов (C PU scheduller) пере­
ключал процессы. В колонке in отображается число прерываний, генерируемых аппаратными устройствами или компонентами ядра. Слишком большие значения в этих колонках свидетельствуют о неправильно работающем аппаратном устройстве. Остальные колонки важны для анализа использования памяти и жесткого диска.
Как видно из показанного примера, центральный процессор практически простаивает, о чем свидетельствует среднее время простоя (id), равное В многопроцессорных системах команда vm stat выводит среднее значение по всем процессорам. Для вывода информации по конкретному процессору необходимо использовать команду mpstat. Данную команду удобно использовать при отладке программ, поддерживающих многопроцессорную обработку
Общие рекомендации по оптимизации производительности использования процессора заключается в следующем.
• И спользуя команду renice, определите некритичные для вас процессы, работающие в системе, и снизьте их приоритет выполнения.
• При помощи команды ps определите запущенные в системе процессы, которые реально не используются. Если такие процессы существуют, определите какие сервисы их запускают и отключите их запуск.
• В многопроцессорной системе следует разделить все процессы между раз Обычно положительный эффект, сточки зрения производительности, от использования многопроцессорных систем могут получить приложения, использующие технологию
multi threading.
ными процессорами, используя команду taskset. Это позволит не допустить частого очищения процессорных кешей, которое происходит при переходе процесса от одного процессора к другому
И спользуя команду top, определите динамику изменения утилизации процессора различными процессами. Это поможет понять, какие процессы максимально используют вычислительные ресурсы процессора.
И спользуя команду vm stat, определите общие показатели работы процессора. Если время простоя процессора практически равно нулю, необходимо разобраться, какие процессы используют процессор и задуматься о его модернизации, так как для стабильной работы системы должен существовать хотябы небольшой запас процессорного времени, хотя бы Назначьте приоритет для прерываний, которые чаще других прерывают процессор, используя утилиту irqtune и файл /proc/interrupts.
Модуль 1. Системное администрирование
1.10.2. Память
В ОС организация доступа к памяти реализована с использованием механизмов вирт уальной памяти. Каждому процессу в ОС Linux выделяется некоторое виртуальное адресное пространство. При использовании 32-битной архитектуры процессора каждому процессу доступно до 4 Гб виртуального адресного пространства. При этом по умолчанию 1 Гб этого всего виртуального адресного пространства отдается ядру. Таким образом, пользователю становятся доступны только 3 Гб памяти. При использования 64-битной архитектуры процессора данное ограничение отсутствует, и пользовательским процессам доступно практически неограниченное количество виртуального адресного пространства.
П риложения, работающие в ОС Linux, ничего не знают об архитектуре физической памяти. Вся физическая память транслируется в виртуальную (memory
mapping). Виртуальная память может быть транслирована не только в физическую память - если приложению требуется большее количество памяти (большее, чем общее количество физической памяти, то некоторая часть виртуальной памяти транслируется в пространство подкачки (swap space) дисковой подсистемы.
Виртуальная и физическая память в ОС Linux организована в виде модулей, называемых страницами. Размер одной страницы, как правило, составляет 4 Кбайт. Каждая такая страница транслируется на физическое хранилище - ОЗУ или жесткий диск. Информация о связях между виртуальными и реальными страницами хранится в таблице страниц.
Ядро ОС Linux способно эффективно обрабатывать запросы процессов, дополняя физическую память областью подкачки. Системе постоянно приходится перемещать страницы между ОЗУ и областью подкачки. Такие операции называются страничным обменом (paging).
Управление страницами осуществляется так, чтобы те из них, к которым обращение было сделано недавно, хранились в физической памяти, а менее активные выгружались на диск. ОС Linux отслеживает частоту обращения к каждой

Память
M ill··
65
странице виртуальной памяти. Ядро ведет несколько списков страниц. Страницы, частота обращения которых больше нуля, считаются активными и помещаются в список активных страниц (active pages). Всякий раз, когда происходит обращение к странице, ее частота обращения увеличивается. Параллельно с этим выполняется демон kswapd, который регулярно уменьшает частоту обращения неактивных страниц. Как только частота обращения снижается до нуля, демон kswapd переме­
щает страницу в список неактивных страниц (inactive pages) и удаляет ссылку на нее из таблицы страниц. Такие страницы считаются готовыми к выгрузке на диск, однако при поступлении запроса к ним ядро сможет восстановить их из памяти или с диска и снова поместить в таблицу страниц. Страницы, выгруженные на диск, должны быть прочитаны с диска, прежде чем их можно будет использовать. Количество активных и неактивных страниц можно просмотреть, используя команду


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


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

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


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