книги хакеры / журнал хакер / 119_Optimized
.pdf
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|
||||
|
|
X |
|
|
|
|
|
|
|
|
||||
|
- |
|
|
|
|
|
|
d |
|
|
|
|
||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
||
P |
|
|
|
|
|
|
NOW! |
o |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
|
|
. |
|
|
|
|
|
|
.c |
|
|
|
|
||
|
|
p |
|
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
|
|
|||
|
|
|
|
|
-xcha |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
E |
|
|
|
|
|
|
C |
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
X |
|
|
|
|
|
||||||
|
- |
|
|
|
|
d |
|
|
- |
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
i |
|
|
F |
|
|
|
|
|
|
i |
|
||
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
t |
|
||||
P |
D |
|
|
|
|
|
|
|
o |
P |
D |
|
|
|
|
|
|
|
o |
||
|
|
|
NOW! |
r |
|
|
|
NOW! |
r |
||||||||||||
|
|
|
|
|
|
ХАКЕР.PRO |
|
|
|
|
|
|
|
||||||||
|
|
|
|
to>>BUY |
|
|
|
|
|
to BUY |
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
m |
w |
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
o |
w Click |
|
|
|
|
|
o |
||||||||
|
w |
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
.c |
|
|
. |
|
|
|
|
|
.c |
|
||||
|
|
p |
df |
|
|
|
e |
|
|
|
p |
df |
|
|
|
e |
|
||||
|
|
|
|
g |
|
|
|
|
|
|
|
g |
|
|
|
||||||
|
|
|
|
n |
|
|
|
|
|
|
|
|
n |
|
|
|
|
||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Ульяна Смелая |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выжать |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
максимум |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
Тонкая настройка производительности серверных версий Windows |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
Win2k3 и Win2k8 по умолчанию оптимизированы под стандартную сетевую |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
среду. Но если серверную ОС надлежащим образом настроить (например, |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
под требования компании), то это благоприятно отразится на каждом ас- |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
пекте работы сети, начиная от самого оборудования и заканчивая пользова- |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
телями, подключенными к серверу. |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
Анализируем причину |
всего леса (подробности смотри в статье «В лабиринте AD» в |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
Любая внештатная ситуация, в том числе и снижение производительнос- |
этом же номере, — Прим. ред.). Так мы разгрузим основной КД и снизим |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
ти сервера, требует тщательного анализа. Не собрав всей информации, |
нагрузку на Сеть (в том числе и на внешний канал, если для соединения |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
можно нагородить дел. Возьмем такой случай. Контроллер домена (КД) |
между офисами используется интернет). |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
уже не справляется со своими обязанностями — пользователи подолгу |
Узкие места могут возникать по нескольким причинам: |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
регистрируются в системе или не могут зайти в сетевую папку. В зави- |
•системныересурсысервераилисетиисчерпалисвоивозможности |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
симости от топологии Сети, вариантов решения может быть несколько. |
— как правило, требуется наращивание или модернизация; |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
Например, можно модернизировать железо, перераспределить нагрузку |
•отдельныесистемыилиучасткисетинагруженынеравномерно— требу- |
|
|
|
|
|
|
|||||||||
|
|
|
|
|
между серверами (в том случае, когда КД выполняет еще и другую задачу) |
ется перераспределение ресурсов; |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
или же снизить нагрузку на основной КД за счет установки еще одного |
• ресурсиспользуетсявмонопольномрежиме— возможно, потребуется |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
КД в отдельном подразделении компании. При использовании Win2k8 в |
замена программы на аналог, запуск ее только по требованию или в перио- |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
удаленном офисе есть вариант установить контроллер домена только для |
ды низкой загрузки; |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
чтения (RODC). Тогда в случае компрометации сервера или банальной |
• неправильнаянастройка— необходимо изменение параметров. |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
кражи оборудования можно не бояться за нарушение функционирования |
Теперь разберем некоторые моменты подробнее. |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
140 |
xàêåð 11 /119/ 08 |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
Ищем бутылочное горлышко
Производительность систем и сервисов, то есть время, за которое они выполняют некоторую задачу, зависит от ресурсов процессора и памяти, емкости и производительности дисковых накопителей и пропускной
способности сети. Все они имеют свой лимит. При превышении запаса прочности одного из ресурсов производительность начинает резко снижаться, образуя узкое место. Как результат, общая производительность сервера определяется именно этим ресурсом, хотя остальное в норме.
ВновойWin2k8иWin2k3,котораяещедолгобудетверойиправдойслужить насерверах,системымониторинганесколькоотличаются,ноненастолько, чтобынеразобратьсяприсменесистемы.Диспетчерзадач,вызываемый по<Ctrl+Alt+Del>(вWin2k8нужнобудетвыбратьвменюещеиStartTask Manager)или<Ctrl+Shift+Esc>,позволяетвовкладкеPerformanceувидеть состояниеосновныхсистемныхресурсов(CPU,ОЗУ)иСети(вовкладке Networking).Вобеихсистемахможнооценитьвкладотдельногопроцессав общуюпотерюпроизводительности.Еслиинформациинедостаточно,добав-
ляемсчетчикипроизводительности.Дляэтогодостаточноперейтивовкладку «Processes»ивыбратьвменюView—SelectColumns,послечегоустановить флажкинапротивнужныхпунктов.Поумолчаниюактивировановсегодва счетчика:CPUUsage(загрузкаЦП)иMemory—PrivateWorkingSet(Memory UsageвWin2k3,Использованиепамяти).Названиянекоторыхсчетчиковв системахотличаются,норазобратьсянесложно.
ВWin2k3 для наблюдения за производительностью системы в штатную поставку входит «Монитор Производительности» (вызывается через Старт Администрирование Производительность, perfmon.msc), который выводит показания активных счетчиков в виде графиков, диаграмм или таблиц. Ведется история событий, помогающая отследить все изменения. При достижении порогового значения можно, например, отправить сообщение админу — в общем, выполнить действие. Подробности о «Мониторе Производительности» и основных счетчиках смотри в статье «Поставь сервер на счетчик», опубликованной в X_11_2007.
НасайтеMicrosoftдляWin2k3доступноещеодноэффективное,хотяималоиз- вестноесредствоанализапроизводительности—ServerPerformanceAdvisor V2.0(SPA).Спомощьюэтойутилитыможнособратьинформациюонастройках, данныесосчетчиковсодногоилинесколькихсерверов,отслеживатьсобытия (EventTracing).Порезультатамработыполучимудобныедлячтенияианализа отчетыопроизводительности,содержащиепредупрежденияирекомендации поустранениюнеполадок.ВSPAимеетсяболее90предварительнонастроенныхгруппколлекторов.Причемсамыевостребованныеуженастроены!Например,коллекторSystemOverviewсодержитосновныесистемныесчетчики:CPU usage,Memoryusage,занятыефайлыиTCP-клиенты,top-потребителиCPU,
атакжесчетчикидляосновныхсерверов—контроллеровдомена,файловых службAD,IIS,DNS,TerminalServices,SQLидр.
ВWin2k8контрользаосновнымипараметрамисистемывозложенна
ReliabilityandPerformanceMonitor(RPM),которыйвобралвсебяфункции отдельныхприложений,доступныхвWin2k3.Запуститьегоможнонесколькимиспособами:изменюAdministrativeTools,нажатиемклавишиResource MonitorвовкладкеPerformanceвTaskManager,выбравпунктвменю DiagnosticвServerManagerиливведявконсолиperfmon.exe.Вглавном окнеRPMувидимчетыреграфика,выводящиеинформациюозагрузке CPU,Disk,MemoryиNetworkвреальномвремени.Чутьнижерасположены таблицысподробнойинформацией,разбитойпоэтимжегруппам.Вкаждой показанпроцессисвязанныеснимданные(PID,объемОЗУ,загрузкаCPU, ResponseTimeдисковыхопераций,количествопереданныхипринятыхсетевыхпакетовипрочее).Зачастуюдостаточноодноговзгляданаграфикии таблицу,чтобыоценитьобстановкуипринятьрешение.Ноиэтоещеневсе. «Монитор Производительности» находится в меню Performance Monitor. По умолчанию активирован только один счетчик Processor Time, но достаточно выбрать в контекстном меню Add Counter, как откроется одноименное окно, в котором можно выбрать нужный счетчик. Полный список охватывает все параметры системы и сервисов. Следующее меню, хотя и не связано с оценкой производительности, — тем не менее, очень полезно при поиске неисправностей. Речь идет о Reliability Monitor («Монитор Надежности»). Справа от графика выводится индекс ожидания появления проблемы
System Stability Index («Системный Индекс Устойчивости»). График Stability
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||
>> ХАКЕР.PROto BUY |
|
|
|
m |
|||||
w Click |
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Убираем лишние протоколы
Index помогает быстро найти дату, когда было замечено первое появление проблемы (уменьшился System Stability Index). В поле System Stability Report показаны детали возникшей проблемы.
Два меню Data Collector Sets и Reports выступают в роли удобного аналога SPA. Так, в первом из них содержатся шаблоны коллекторов, которые могут быть использованы с любой программой, предназначенной для сбора данных. Выполнив, например, LAN Diagnostics или System Performance (то есть любой коллектор или группу), в соответствующем подменю в Reports получим полный отчет.
Тюнинг системы
Информация собрана, а значит, пора принимать решение. Чтобы добиться увеличения производительности, можно изменить алгоритм работы буксующей подсистемы, модифицировав соответствующий системный параметр. Признаю, это временная мера, которая не всегда улучшает ситуацию. Но при правильном подходе она позволит серверу продержаться на должном уровне еще несколько месяцев, пока начальство не раскошелится на новое оборудование. Перед внесением изменений сформулируем для себя несколько правил:
•одновременновносимнеболееодногоизменения,дажееслиузкоеместо требуетнастройкинесколькихпараметров.Таклегчебудетсделатьоткатв случаенеудачи.Следующееизменениепроизводим,толькоубедившись, чтоидемправильнымпутем.Внесениесразунесколькихнастроекделает невозможнымопределениерезультатадлякаждогоконкретногопараметра;
•после каждого изменения повторяем наблюдение в течение некоторого времени, достаточного для сбора статистической информации;
•так как изменения могут повлиять на другие ресурсы, сохраняем подробную информацию об изменениях и результатах наблюдений за производительностью.
Среди советов встречаются такие, как отключение «лишних» сервисов и проверка запланированных заданий, но в Win2k8 изначально запущено только то, что действительно нужно. Поэтому эти советы больше актуальны для ранних версий Windows.
Оптимизация сети
Сетевая подсистема в Win2k3/Win2k8 (как, впрочем, и в любой другой ОС) является многоуровневой. Глубокий тюнинг следует производить на каждом уровне, начиная от драйвера и NDIS (спецификация интерфейса сетевых драйверов) и заканчивая уровнем приложений. Начнем «снизу». Вызываемсвойстваадаптераиизучаемактивныепротоколы.Любой протоколгенерируетнекоторыйтрафик,поэтомудажевнебольшойсети
путешествуетгораздобольшепакетов,чемнужнодляеенормальногофункционирования.Например,адаптеру,которыйсмотритвинтернет,частоникчему NetBEUI(даисточкизрениябезопасности,этоминус).Поэтомуотключаем вселишнее,втомчислеиIPv6(внашейстранепоканеобходимостивнем
xàêåð 11 /119/ 08 |
141 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
E |
|
|
||||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
NOW! |
o |
|||||
|
|
|
|
|
||||||
|
|
|
|
|
|
|||||
w Click |
to BUY |
|
>> |
|||||||
|
|
|
|
|
|
m |
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
|||
|
|
|
|
-xcha |
|
|
|
|
|
ХАКЕР.PRO
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
32bitvs64bit
Учитывая,что32 битныепроцессоры,можносказать,уходятсосцены, |
Win2k3—в Boot.ini,авWin2k8командой: |
а32или64версииОСстоятодинаково,использование64 битнойархи- |
|
тектурынасерверахвыглядитпредпочтительнее.Крометого,приложе- |
> bcdedit /set IncreaseUserVA 3072 |
ния,оптимизированныепод64 битнуюархитектуру,показывают,как |
|
правило,большуюпроизводительность.Исключениеможетбытьлишь |
Кслову,64 битныйпроцессв64 битнойОСможетиспользоватьдо8Тб |
принесовместимостиприложенияс64 битнойОС.Такжев64 битных |
ОЗУ.Ещеодинвариантвыделения32 битномупроцессудо4Гбпамяти |
системахотсутствуютнекоторыеограничения,которыемогутбыть |
в32-и64 битныхверсияхОС—компиляцияпрограммысфлагом |
существенными.Например,в32 битныхОСневозможноиспользовать |
IMAGE_FILE_LARGE_ADDRESS_AWARE. |
памятьобъемомболее3,5Гб(с3,5до4Гбзанятыподадресацию).Плюс, |
C16 битнымиприложениямиситуацияобстоитнапорядокхуже. |
каждый32 битныйпроцессможетиспользоватьнеболее2ГбОЗУ.Хотя |
64 разрядныеверсииОСснимиработатьнемогут,азапускв32 битной |
вWin2k3иWin2kAdvancedServerпредусмотренафункциярегулировки |
системеиз-заспецификиработыприведеткобщемупадениюпроизво- |
ОЗУ4GT(4 gigabytetuning)—онапозволяетразделитьпространство |
дительности.Поэтомулучшелибоотнихотказатьсявообще,перейдя |
памятипроцессанадвечасти:3Гбвыделяетсянапамятьприложения |
насовременнуюверсиюпрограммы,либозапускатьнаотдельном |
и1Гб—насистемнуюпамять.Этофактическиснимаетограничение. |
компьютере.Благо,такиеприложения,какправило,нетребовательны |
Включается4GTустановкойключа/3GBвпараметрахзагрузчика.В |
кресурсам. |
|
нет).Параллельновключаемснифериотлавливаем«лишние» |
|
пакеты,определяяихисточник.Еслирасположитьболеебыс- |
|
трыйиличастоиспользуемыйпротоколвначалесписка,тоэто |
|
позволитувеличитьпроизводительность. |
|
ЛокальныефайлыHOSTS(дляTCP/IP)иLMHOSTS(NetBEUI),хра- |
info |
нящиеадресаиименасистем,помогаютуменьшитьколичество |
• Если расчеты пока- |
запросовнаразрешениеимен.Этинастройкиможнопроизвести |
зывают, что 100 Мбит |
каквручную,такизайдявсвойстваTCP/IPвнастройкахсетевой |
будет недостаточно, то |
карты,изатемвыбравAdvanced.Распространятьизменения |
подумай о гигабитной |
вэтихфайлахможновнебольшихсетяхвручную,авAD—при |
карте. Но подключать |
помощиполитик.ПрисутствиеDNS-иWINS-серверовтакже |
Gigabit Ethernet в |
способноуменьшитьколичестволишнихзадержек. |
обычный PCI-слот не- |
Кстати, новая концепция ролей в Win2k8 приносит свои |
целесообразно. Лучше |
плоды: в настройках Сети после установки системы ничего |
остановить свой выбор |
лишнего не включено, а новые алгоритмы настройки и |
на PCI-X, PCIe x8 и |
оптимизации требуют меньше телодвижений со стороны |
выше. |
администратора. Например, автоматическая настройка TCP |
|
Receive Window Auto-Tuning динамически изменяет размер |
• Желательно настро- |
принимающего буфера TCP, используемого для хранения |
ить Сеть так, чтобы |
входящих данных, тем самым повышая пропускную способ- |
вынести в отдельную |
ность, скажем, при передаче больших файлов на высокос- |
подсеть системы, |
коростных каналах (поэтому ключ реестра TcpWindowSize |
используемые одной |
в Win2k8 игнорируется). Средство Compound TCP (CTCP) |
группой пользовате- |
увеличивает количество одновременно отправляемых |
лей или формирующие |
данных — ну, и так далее. Впрочем, кое-что нам оставили и |
большой трафик (это |
для ручной настройки. |
базы данных и файло- |
Нажав кнопку Configure в свойствах адаптера, получаем |
вый сервер). |
во вкладке Advanced доступ к ряду настроек (их количество |
|
зависит от конкретного адаптера). Например, для файлового и |
• Для перераспре- |
FTP сервера рекомендуется задействовать следующие опции: |
деления рабочей |
IPv4, TCP и UDP Checksum offload, Segmentation offload и |
нагрузки можно вос- |
TCP offload engine (TOE). Поддержка последнего включается |
пользоваться распре- |
следующим образом: |
деленной файловой |
|
системой (о том, как |
> netsh int tcp set global chimney = enabled |
настроить DFS, читай в |
|
|
|
z_12_2007). |
Для веб-сервера и сервера базы данных желательно акти- |
|
вировать еще и Receive-side scaling (RSS). Но если сетевой |
|
адаптер не справляется с нагрузкой, — наоборот, пробуем |
|
по одному отключать все offload настройки. В Link Speed & |
|
Duplex указывается режим работы адаптера (по умолчанию |
|
он выбирается автоматически), а в Transmit/Receive Buffers |
|
— буфер приема и передачи. В целях экономии ресурсов |
размер буфера по дефолту установлен в минимальное или среднее значение. При больших нагрузках это чревато потерями пакетов. Если адаптер позволяет вручную изменить размер буфера, то увеличиваем, не задумываясь.
ПараметрInterruptModerationпоумолчаниюустановленв Adaptive.Поигравшисьснастройками,можнопопробовать выбратьприемлемыйрезультатмеждупроизводительностью СетиинагрузкойнаCPU.ЕслинасерверенесколькоCPUисетевыхкарт,товозможнапривязкаCPUксетевомуадаптеру.Это положительноскажетсянапроизводительностиСетиисистемызасчетуменьшенияколичества«лишних»прерываний. Конечно, это не все, что может сделать админ для разгрузки Сети. Например, для настройки драйвера http.sys, который используется IIS, есть целая ветка реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Http\Parameters
Что-то можно сделать и на прикладном уровне. Например, в ISA Server реализована функция сжатия данных, передаваемых по протоколу HTTP. Правда, за меньший трафик придется платить большей нагрузкой на CPU. В медленных сетях пропускная способность повышается на 30%. Также уменьшается задержка при передаче информации, хотя нагрузка на процессор не увеличивается более чем на 20%. Для разгрузки сер-
вера терминалов в Computer Configuration — Administrative Templates — Windows Components — Terminal Services
— Terminal Server можно уменьшить глубину цвета и размер рабочего стола, установить сжатие RDP, отключить обои и т.д.
Дисковая подсистема
Часто именно дисковая подсистема служит основной причиной потери производительности. Она ограничена числом физических обращений к диску в секунду (зависит от скорости вращения диска и от того, насколько случайный характер имеют операции обращения). Самым простым методом сокращения частоты обращения к диску будет установка дополнительных дисков или использование RAID.
Кое-чтоможносделатьисамому.Поумолчаниюфайлподкачки равен1.5объемаОЗУирасположеннасистемномдиске. Последнийобычносильнозагружен,ктомужеподвержен фрагментации.Поэтому,еслиимеетсянесколькодисков, создаемфайлподкачкинакаждом.ДляэтоговControlPanel
142 |
xàêåð 11 /119/ 08 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
>>
ХАКЕР
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||
.PROBUY |
|
|
|
|
|||||
w Click |
to |
|
|
|
|
m |
|||
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
|
|
|
Добавляем счетчик в Performance Monitor |
|
|
|
|
|
|
|
|
|
Тонкая настройка сетевой карты |
|
|
|
|
|
|
SystemвыбираемAdvancedSystemSettingиполучаемзнакомое |
Установка в 0 ключа CountOperations позволит отключить не- |
|
||||
окноSystemProperties(«Свойствасистемы»).Нажимаемво |
которые счетчики, что также повлияет на производительность |
|
||||
вкладкеAdvancedвполеPerformanceкнопкуSetting,снова |
в лучшую сторону: |
|
||||
щелкаемAdvanced,азатемкнопкуChange.Впоявившемся |
|
|
|
|
|
|
окнеснимаемфлажок«Automaticallymanagepagingfileforall |
|
|
HKEY_LOCAL_MACHINE\System\CurrentControlSet\ |
|
||
driver»иуказываем,накакихдискахиразделахследуетсоздать |
|
|
Session Manager\I/O System\CountOperations |
|
||
файлподкачки.Приэтомследуетпомнить,чтоиспользование |
|
|
|
|
|
|
|
|
|
|
|
||
несколькихразделоводногодискадляфайлаподкачки,мягко |
Установка в 1 (REG_DWORD) ключа DontVerifyRandomDrivers |
|
||||
говоря,нецелесообразно.Своплучшеразмещатьнаразделахс |
запрещает тестирование и проверку некорректно работающих |
links |
||||
меньшейбуквой,накоторых,какправило,скоростьповыше. |
драйверов: |
Подробные инструк- |
||||
По умолчанию Windows записывает данные блоками по 64 Кб, |
|
|
|
|
ции по 4GT смотри |
|
но жесткие диски и приложения могут использовать блоки |
|
|
HKEY_LOCAL_MACHINE\System\CurrentControlSet\ |
в статье Q171793 |
||
других размеров. Данные в этом случае придется записывать |
|
|
Session Manager\Memory Management\ |
«Сведения о регули- |
||
на несколько секторов, что снижает производительность. В |
|
|
DontVerifyRandomDrivers |
ровке ОЗУ для при- |
||
состав Win2k8 и Win2k3 SP1 входит программа Diskpart, пред- |
|
|
|
|
ложений с помощью |
|
|
|
|
|
|||
назначенная для создания разделов диска. С ее помощью |
В Win2k8 используется сложный алгоритм, индивидуально |
функции 4GT» (http:// |
||||
можно задать другое смещение. Пользоваться программой |
управляющий приоритетом I/O. Если для экспериментов ты |
go.microsoft.com/ |
||||
просто. Для запуска в командной строке набираем diskpart. |
захочешь его отключить, установи в 0: |
fwlink/?LinkId=43549). |
||||
exe. Далее командой «List Disk» выводим список дисков, |
|
|
|
|
|
|
выбираем нужный диск — «Select Disk 1», создаем раздел |
|
|
HKEY_LOCAL_MACHINE\System\CurrentControlSet\ |
|
||
«Create Partition Primary Align=64» и присваиваем ему букву |
|
|
Control\DeviceClasses\{Device |
|
||
(«Assign Letter=D»). Помни, что Diskpart уничтожает данные, |
|
|
GUID}\DeviceParameters\Classpnp\ |
|
||
поэтому предварительно создай резервную копию! |
|
|
IdlePrioritySupported\I/O Priorities |
|
||
Также стоит отключить индексацию файлов для (якобы) |
|
|
|
|
|
|
|
|
|
|
|
||
быстрого поиска и компрессию диска (если взведен флажок |
Чтобы запретить обновление даты последнего обращения к |
|
||||
«Compress this drive to save disk space»). И, конечно же, не за- |
файлу, устанавливаем в 1 (REG_DWORD) ключ: |
|
||||
бываем о периодической дефрагментации (Свойства диска |
|
|
|
|
warning |
|
|
|
|
|
|||
Tools Defragment Now). В подменю Shadow Copies находят- |
|
|
HKLM\System\CurrentControlSet\Control\ |
|||
ся настройки теневых копий. Если резервирование произво- |
|
|
FileSystem\NtfsDisableLastAccessUpdate |
Утилита Diskpart унич- |
||
дится другими средствами, то для повышения производитель- |
|
|
|
|
тожает данные. |
|
|
|
|
|
|||
ности их можно отключить или изменить алгоритм работы. |
Это только основные параметры. А подробную информацию |
Не забудь предва- |
||||
Не помешает знать и о некоторых параметрах реестра (они |
по настройке дисковой подсистемы можно найти в докумен- |
рительно создать |
||||
подходят и для Win2k3). Так, параметр NumberOfRequests, |
те «Disk Subsystem Performance Analysis for Windows» на |
резервную копию! |
||||
зависимый от драйвера сетевой карты, позволяет задать |
сайте Microsoft. |
|
||||
количество запросов, ускоряя работу за счет распараллели- |
|
|
|
|
|
|
вания. Драйвер сам устанавливает оптимальное значение, но |
Точность хирурга |
|
||||
рекомендуется установить его в диапазоне от 32 до 96. |
Повышение производительности сервера — это сугубо инди- |
|
||||
|
|
видуальная операция, которую нужно производить с точнос- |
|
|||
HKEY_LOCAL_MACHINE\System\CurrentControlSet\ |
тью хирурга, контролируя каждый этап. Но ничего сложного |
|
||||
Services\MINIPORT_ADAPTER\Parameters\ |
здесь нет! Потратив некоторое время, ты неизменнополучишь |
|
||||
DeviceN\NumberOfRequests (REG_DWORD) |
результат.Акакойименно,—зависиттолькооттебя.z |
|
||||
|
|
|
|
|
|
|
xàêåð 11 /119/ 08 |
143 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
|
||
P |
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
ХаКер.Pro |
|
|||
w Click |
to>>BUY |
|
|
|||||||
|
|
|
|
|
m |
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
.c |
|
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
|
df |
|
n |
e |
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сергей «grinder» яреМчуК
/ GriNDer@ua.fm, Tux.iN.ua /
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Óниверсальныé наблþäатель
rrdtool:удобныйинструМентМониторингасети
Мониторинг сети и аппаратных ресурсов входит в обязанности любого администратора. Только постоянное наблюдение может выявить узкие места и предотвратить возможные проблемы. Предлагаю закатать рукава и настроить все самостоятельно. Настало время узнать, почему набор утилит RRDTool так не любят новички.
готовыерешения–ненашМетод
Инструмент RRDTool (Round Robin Database tool) предназначен для хранения, обработки и отображения любых данных, изменяющихся во времени (например, сетевой трафик, пропускная способность сети, загрузка процессора и ОЗУ, температура и т.д.). По сравнению с MRTG, RRDTool имеет более мощные средства сбора информации и создания графиков. Вся инфа хранится в кольцевой базе данных, ячейки которой задействуются циклически, – в итоге, размер БД остается постоянным. Заложенные алгоритмы усредняют результат; таким образом, можно охватить больший промежуток времени при малых размерах баз. Хотя именно по этой причине RRDTool нельзя использовать там, где нужны точные результаты (к примеру, в биллинговой системе). За большую гибкость в работе приходится платить и отсутствием единого конфигурационного файла, и некоторой сложностью в настройках. Но эту проблему стараются решить за счет использования различного рода дополнений, список которых можно найти на странице oss.oetiker.ch/rrdtool/rrdworld/index. en.html.
установкаrrdtool
RRDToolимеетсяврепозитарияхбольшинствадистрибутивовLinux ипортахBSD-систем.ЧтобыустановитьRRDToolвFree/OpenBSD, достаточноввести:
#cd /usr/ports/databases/rrdtool
#make install clean
Команда«sudoapt-cachesearchrrdtool»вDebian/Ubuntuвыведетне тольконазваниенужногопакета,ноибольшойсписокприложений,являющихсяфронтэндами.ВдальнейшемработатьбудемвUbuntu8.04, новсесказанное,заисключениемособенностейустановкизависимос- тей,касаетсяидругихдистрибутивовLinuxи*nix-систем.
Наданныймоментактивноразвиваетсяветка1.3.x,аврепозитории нампредлагают1.2.19-1ubuntu1(sudo apt-cache show rrdtool | grep -i version),поэтомупроизведемустановкуизисходных текстов.Сначалаинсталлируемпакеты,требуемыедлякомпиляциии удовлетворениязависимостей:
144 |
xàêåð 11 /119/ 08 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
ХаКер
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||
.ProBUY |
|
|
|
|
|||||
w Click |
to |
|
|
|
|
m |
|||
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
По окончании конфигурирования скрипт выдает текущие установки
$ sudo apt-get install build-essential \ libpango1.0-dev libxml2-dev
$ sudo apt-get build-dep rrdtool
Затемскачиваемираспаковываемархивссорцами:
$ wget -c http://oss.oetiker.ch/rrdtool/pub/rrdtool. tar.gz
$ tar xzvf rrdtool.tar.gz
$cd rrdtool-1.3.3
Вдефолтномрежимеустановкапроизводитсяв/usr/local/ rrdtool-1.3.3.Этонескольконеудобно,поэтому:
$ ./configure --prefix=/usr/local/rrdtool
Поокончаниипроцессаконфигурированияполучаемитоговуютабли- цу.Внимательнопросмотриполяс«no»,вдругскриптненашелчто-то важное.Есливсевпорядке,выполняемстандартнуюсборку:
$ make
Просмотр доступных идентификаторов объекта SNMP
•проектированиеисозданиебазыданных(rrdtoolcreate);
•получениепоказанийсчетчикаиобновлениеинформациивбазе
(rrdtoolupdate);
•созданиеграфиков(rrdtoolgraph).
Вотличиеотреляционнойбазыданных,кольцеваяимеетболеепростуюструктуру.Внеезаписываетсязначениепеременнойисвязанная временнаяметка.Такжевбаземожетхранитьсяинформация,спомощьюкоторойзаложенныевRRDToolалгоритмыпозволятвычислить значенияпропущенныхпараметров.
Дляпримерасоздадимбазу,кудабудемзаноситьзначениязагрузки каналадлявходящегоиисходящеготрафика.Считываниепараметров можнопроизводитьнесколькимиспособами:анализвыводакоманды ifconfig,SNMPит.д.Впримеребудетиспользованвторойвариант, какболееуниверсальный(хотябольшойразницывтом,откудабрать информацию,нет).Создадимкаталогдляхранениябаз:
$ mkdir /usr/local/rrd
Новуюбазусотворимприпомощи«rrdtoolcreate»:
$ sudo make install |
$ sudo rrdtool create /usr/local/rrd/bandwidth.rrd \ |
|
--start N DS:in:COUNTER:600:U:U DS:out: |
Проверитьправильностьустановкиоченьпросто.Вподкаталоге share/rrdtool/examples находитсярядготовыхскриптов:
$ ls /usr/local/rrdtool/share/rrdtool/examples/ 4charts.pl cgi-demo.cgi perftest.pl shared-demo.pl bigtops.pl minmax.pl piped-demo.pl stripes.pl
Запустимодинизних:
$ sudo ./shared-demo.pl
Послевыполненияскриптавтекущемкаталогепоявятсядвафайлас расширениемrrdидварисунка.Копируемрисункивкорневойкаталог веб-сервера(илиоткрываемвовьювере):
$ cp shared-demo* /var/www/
Теперьзаходимнастраницуhttp://localhost/shared-demo1.pngисмот-
римрезультат.Еслирисуноксгенерирован,значит,всеработает.
настраиваеМrrdtool
ВсяработасRRDToolпроизводитсяприпомощиоднойутилиты, котораятакиназывается–rrdtool.Утилитаимеет13параметров,оп- ределяющих,чемонасейчасбудетзаниматься(полнуюинформацию онихможнонайтивсправочнойстраницеrrdtool(1)).Вбольшинстве случаевтребуетсяпройтитриэтапа:
COUNTER:600:U:U \
RRA:AVERAGE:0.5:1:432
Выглядит малопонятно, но сейчас мы это поправим. Первым аргументом команды является имя базы. По умолчанию файл будет создан в текущем каталоге, но лучше привыкать использовать полный путь (в скриптах, естественно, можно подставлять переменные). Параметр «--start N» указывает на время создания базы. Время в базе сохраняется в Unix-формате (от 01-01-1970). Параметр N (от Now) показывает на текущее время, но его можно представить в виде «20081001 12:10». Подробности по всем вариантам установки времени смотри в rrdfetch(1). Чтобы задать интервал отсчета времени, в команде можно использовать параметр ‘--step’ с указанием времени в секундах (по умолчанию, 300 секунд). Источник данных описывается параметром DS (data source). В одной базе может храниться информация сразу о нескольких источниках. Вторым аргументом после DS идет название источника. Имя не должно превышать 19 символов [a-zA-Z0-9_]. В примере создано два источника in и out, в которых и будем хранить информацию о входящем и исходящем трафике.
СледующееполесозначениемCOUNTERопределяеттипданных, которыебудутполученыотисточника.Существуетпятьвозможных значенийэтогополя:
•GAUGE–всчетчиксохраняетсясчитанноезначениебезизменений;
•COUNTER–предполагается,чтоэтотсчетчиквсегдаувеличивается. Значениесохраняетсяввиде«единицавсекунду»,тоестьтекущее
xàêåð 11 /119/ 08 |
145 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
|
o |
||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
ХаКер.Pro |
||||
w Click |
to |
>>BUY |
|
||||||||
|
|
|
|
|
|
|
m |
||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
|
$ rrdtool info /usr/local/rrd/bandwidth.rrd |
|
|
|
|
|
|
|
Есливпроцессеэксплуатациивыяснилось,чтопараметры |
|
|
|
базыданныхподобранынеудачно(например,выбрано |
|
|
|
малоеколичествоячеек),тоничегострашноговэтомнет. |
|
info |
|
ЧтобыизменитьразмерRRA,используй«rrdtoolresize»; |
|
•СтатьюоCactiсмотри |
|
дляизменениялюбогопараметраDSприменяется«rrdtool |
|
в z_09_2007. |
|
tune». |
|
|
|
Базаесть,теперьеенужночем-тонаполнить. |
|
•НазваниеDSисточни- |
|
|
|
кадолжносостоятьиз |
|
байтикивкопилку |
|
символов[a-zA-Z0-9_] |
|
Какдоговорились,RRD-базубудемзаполнятьприпомощи |
|
ибытьнеболее19 |
Информацияозагрузкеканала,собраннаяприпомощиRRDTool |
SNMP.Устанавливаемнужныепакеты: |
|
знаков. |
|
|
|
|
|
$ sudo apt-get install snmp snmpd |
|
|
значениевычисляетсякакразностьмеждусчитанными |
|
|
|
Послеустановкиунасужеестьготовыйфайлsnmpd.conf, |
||
|
предыдущим,разделенноенаколичествовремени.Для |
||
|
этогосчетчикаобрабатываетсяпереполнение. |
настроенныйнавыдачуданныхтолькодляlocalhost.Он |
|
|
•DERIVE–подобенпредыдущему,ноегозначениеможет |
намподходит,поэтомунетнеобходимостивыполнятько- |
|
|
уменьшаться;переполнениенеобрабатывается; |
манду«sudo snmpconf -i».Копируемеговнадлежащее |
|
|
•ABSOLUTE–используетсядлясчетчиков,значение |
местоиперезапускаемдемон: |
|
|
которыхобнуляетсяприкаждомсчитывании;вячейкуза- |
|
|
|
писываетсясчитанноезначение,поделенноенаинтервал |
$ sudo cp –v /usr/share/snmp/snmpd.conf /etc/ |
|
|
времени; |
snmp/ |
|
|
•COMPUTE–виртуальнаяячейка,хранящаярезультат |
$ sudo /etc/init.d/snmpd restart |
|
|
выполненияформулызначенийиздругихячеек. |
|
|
|
Смотримсписокдоступныхидентификаторовобъекта |
||
|
Теперь,думаю,понятно,почемубылвыбранименно |
||
|
COUNTER.Подсчитываяданныеотрафике,мыбудемзнать |
(objectidentifier,OID).Здесьпараметр«–v1»указываетна |
|
|
загрузкуканала. |
версиюпротокола,а‘-c’–накомьюнитидлядоступа: |
|
dvd |
Значение 600 после поля счетчика устанавливает так |
|
|
На прилагаемом |
называемый heartbeat – максимально допустимый |
$ snmpwalk -v 1 -c public localhost |
|
к журналу диске |
интервал (в секундах) между считываниями (реко- |
|
|
Наспокаинтересуютсетевыеинтерфейсы,поэтомувывод |
|||
ты найдешь набор |
мендуется двойной '--step '). Он показывает, как |
||
скриптов для обра- |
часто должна заполняться ячейка (при превышении |
можемсократить: |
|
ботки и визуализации |
этого интервала пропущенные значения заполняются |
|
|
данных, поступающих |
значением *UNKNOWN*). И, наконец, два последних |
$ snmpwalk -v 1 -c public localhost interfaces |
|
с источника беспере- |
поля предназначены для указания минимального и |
|
|
Ищемнумерациюсетевыхкарт,котораяописываетсяпри |
|||
бойного питания APC |
максимального значения параметра. При превышении |
||
Smart-UPS. |
этих чисел значение будет установлено в *UNKNOWN*. |
помощиIF-MIB::ifDescr: |
|
|
Если определить эти цифры невозможно, то так и пишем |
|
|
|
– “U” (то есть UNKNOWN). |
IF-MIB::ifDescr.1 = STRING: lo |
|
|
ПараметрRRA(roundrobinarchives)определяетколичес- |
IF-MIB::ifDescr.2 = STRING: eth0 |
|
|
твоячеекдлякаждогоDS(наDSможетбытьнесколько |
IF-MIB::ifDescr.3 = STRING: eth1 |
|
|
RRA),атакжефункцию,показывающую,каквычислять |
|
|
|
Намнужналишьпоследняяцифрапараметра.Впримере |
||
|
значениеячейки.Функцииконсолидациимогутбыть: |
||
|
•AVERAGE–среднееарифметическоевсехотсчетов; |
видим,чтоинтерфейсуeth0соответствуетцифра2,аeth1 |
|
|
•MINиMAX–максимальноеиминимальноезначение; |
–3.Текущиепоказателисчетчиковвходящегоиисходяще- |
|
|
•TOTAL–суммавсехотсчетов; |
готрафикапоказанысоответственновпараметрахIF- |
|
|
•LAST–последнийполученныйотсчет. |
MIB::ifInOctets и IF-MIB::ifOutOctets: |
|
|
Вверсии1.2дополнительнокосновнымфункциям |
|
|
|
добавленыещенесколькоспециализированных,обеспе- |
IF-MIB::ifInOctets.1 = Counter32: 444010 |
|
links |
чивающихэкспоненциальноесглаживаниепоалгоритму |
IF-MIB::ifInOctets.2 = Counter32: 34402149 |
|
• Самую свежую |
Холта-Винтерса–HWPREDICT,SEASONAL,DEVSEASONAL, |
IF-MIB::ifInOctets.3 = Counter32: 0 |
|
версию RRDTool |
DEVPREDICTиFAILURES. |
|
|
можно найти на сайте |
Число 0.5 показывает на достоверность – то есть число |
IF-MIB::ifOutOctets.1 = Counter32: 444010 |
|
проекта – oss.oetiker. |
отсчетов со значением *UNKNOWN*, после превыше- |
IF-MIB::ifOutOctets.2 = Counter32: 2797708 |
|
ch/rrdtool/. |
ния которого ячейка также принимает значение «U». В |
IF-MIB::ifOutOctets.3 = Counter32: 5726 |
|
|
качестве значения должно быть использовано число в |
|
|
• Список фронтэн- |
Получитьзначениедляeth0можноприпомощикоманды |
||
диапазоне 0-1. |
|||
дов найдешь на |
Последниедвецифрыопределяютшаг(количество |
snmpget,добавиввкачествепоследнегоаргументаOID. |
|
странице oss.oetiker. |
первичныхточек,которыеформируютточкуданных, |
Дополнительныйпараметр '–Oqv' позволяетсократить |
|
ch/rrdtool/rrdworld/ |
поступающуювархив)и,собственно,числоячеек.Базасоз- |
вывод,оставивтолькозначения: |
|
index.en.html. |
дана,просмотретьинформациюонейможноприпомощи |
|
|
|
команды: |
$ snmpget -v 1 -c public -Oqv localhost \ |
|
|
|
|
146 |
xàêåð 11 /119/ 08 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
Следим сразу за тремя серверами
IF-MIB::ifInOctets.2 IF-MIB::ifOutOctets.2 35816758 3962688
Командадлязанесенияданныхвтаблицувобщемслучаевыглядиттак:
rrdtool update file.bandwidth.rrd время:значениеDS1[:
значениеDSn]
Пишем:
$ sudo rrdtool update /usr/local/rrd/bandwidth.rrd N:\ 'snmpget -v 1 -c public -Oqv localhost IF-MIB::
ifInOctets.2':\
'snmpget -v 1 -c public -Oqv localhost IF-MIB:: ifOutOctets.2'
Вывод«rrdtoolinfo»показывает,чтоданныевбазеизменились.Если всенормально,даемпланировщикууказание,чтобыонзапускалэту командукаждые5минут.
$SuDocRonTab-e
0-55/5 * * * * /usr/local/rrdtool/bin/rrdtool update ...
Кактыпонимаешь,вкачествезаписываемогозначенияможноиспользоватьотформатированныйвыводлюбойкоманды.Например:
$ ifconfig eth0 | grep "RX bytes"| awk -F: \ '{print $2}' | awk '{print $1}'
36888337
$ ifconfig eth0 | grep "TX bytes" | awk -F: \ '{print $2}' | awk ' {print $1}'
47806191
Все,–базанаполняетсязначениями.Переходимкнаписаниюскрипта дляпостроенияграфиков.
строиМграФик
Командадлясозданияграфиковдовольнолегкадляпонимания,хотя вскриптахонаобычновыглядитпугающеиз-забольшогоколичества возможныхзначений.Послеработы«rrdtoolgraph»будетсгенерирован толькографическийфайл;html-оберткудляегопоказавбраузерепри- детсярисоватьсамому.Дляудобствасоздадимскриптbandwidth-graph. shтакогосодержания:
$SuDonanobanDWIDTh-GRaph.Sh
#!/bin/sh
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||
>> ХаКер.Proto BUY |
|
|
|
m |
|||||
w Click |
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
/usr/local/bin/rrdtool graph \ /usr/local/rrd/bandwidth.png \
-a PNG -h 125 -v "Данные о загрузке eth0" \ 'DEF:in=/usr/local/rrd/bandwidth.rrd:in:AVERAGE' \ 'DEF:out=/usr/local/rrd/bandwidth.rrd:out:AVERAGE' \ 'CDEF:kbin=in,1024,/' \
'CDEF:kbout=out,1024,/' \ 'AREA:in#00FF00:Загрузка In' 'LINE1:out#0000FF:Загрузка Out\j' \
'GPRINT:kbin:LAST:Последнее значение In\: %3.2lf кБ-
сек'
'GPRINT:kbout:LAST:Последнее значение Out\: %3.2lf
кБсек\j'
При описании можно использовать и русские названия, но большие комментарии к подписям я бы делать не стал, они могут просто не поместиться на рисунок.
В скрипте не указаны параметры '--start' и '--end'. С их помощью можно задать время начала и конца интервала, который попадет на график. Если они опущены, то будет выведен график за прошедшие сутки. Временной промежуток также влияет на масштаб графика. Размеры рисунка можно установить принудительно при помощи '–w' (--width) и '–h' (--height), указав значение в пикселях. Тип файла задает параметр '–a', в качестве значения можно использовать PNG|SVG|EPS|PDF. Заголовок рисунка можно оформить горизонтально '–t' или вертикально '–v'. Параметр DEF указывает на то, какие данные мы будем извлекать из RRA-записи. Затем идет имя переменной, которое будет использовано в графиках. Далее — практически все, как при «rrdtool create»: имя файла, извлекаемый параметр и функция консолидации.
А вот CDEF позволяет производить действия с извлеченными параметрами. Сюда записывается выражение в обратной польской записи (смотри блок-врезку). В данном случае значение in и out делится на 1024, результат (килобайты) записывается в kbin и kbout.
Параметры AREA и LINE показывают метод вывода указанного параметра на графике. В результате in будет показан зеленым сплошным цветом (#00FF00), а out — синей (#0000FF) полосой. Последним значением идет легенда, то есть описание параметра. Чтобы легенду напечатать под графиком, используем \j (justify).
Функция GPRINT выводит данные мониторинга. Обрати внимание: чтобы показать последнее значение параметра, вместо AVERAGE используется LAST! Теперь делаем скрипт исполняемым и запускаем:
$ sudo chmod +x bandwidth-graph.sh
$sudo ./bandwidth-graph.sh
Врезультатевкаталоге /usr/local/rrd долженпоявитьсяфайл bandwidth.png.
ничегосложного
Каквидишь,ничегосложноговRRDToolнет.Этооченьгибкаяипонятнаявработепрограмма.Посидевнемногонадскриптами,можно аналогичнымобразомстроитьграфикипоостальнымданным,выдаваемымдемономSNMPилилюбымидругимиутилитами.z
Обратнаяпольскаянотация(Обратнаяпольскаязапись,Постфикс- наянотация,Польскаяинверснаязапись,Полиз)—формазаписи математическихвыражений,вкоторойоперандырасположеныперед знакамиопераций.Так,выражению«kbin=in,1024,/»соответствуетkbin=in/1024.Удобнотем,чтопозволяетизбавитьсяотскобок, содержащихсяввыражении.
xàêåð 11 /119/ 08 |
147 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
E |
|
|
||||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
||||
w Click |
to BUY |
|
>> units |
|||||||
|
|
|
|
|
|
m |
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
ЖаННа «MeHoVUSHka» КоНдратьева
/ mehovuShechka@yaNDex.ru /
тайНые
зНаКи
ВНешНости
за Кулисами, или что мы прЯчем за ВНешНостью?
Собеседник еще не произнес ни слова, а ты уже многое о нем знаешь.
И это вовсе не байка из разряда «я — ясновидец», просто знание психологии внешности помогает если и не увидеть человека насквозь, то, по крайней мере, составить о нем верное представление.
Для некоторых людей умение составлять правильное
представление о других — профессиональная необходимость. Например, для педагогов, врачей или продавцов.
Видя учеников впервые, преподаватель, как правило, сразу понимает, что за человек перед ним: спокойный, уверенный или же проблемный. Продавец, видя покупателя, способен определить, склонен тот к покупке или нет, какое у него настроение и даже некоторые черты ха-
рактера. Как же они это делают, и есть ли таким способностям научное обоснование?
три типа телосложения
Первая попытка найти взаимосвязь между телосложением и характером принадлежит немецкому психологу и психиатру Эрнесту Кречмеру. Он обследовал огромное количество человек, произвел
148 |
xàêåð 11 /119/ 08 |