 | Уровень сложности: средний Кен Милберг, UNIX-консультант Future Tech, составитель технической документации и эксперт по сайту, Future Tech
20.08.2009 Это первая статья цикла из трех статей, посвященных различным вопросам оптимизации работы сети в AIX. В статье рассматриваются рекомендованные методики конфигурирования сети и их применение для эффективного отслеживания состояния сетевого оборудования. Вам в этом помогут такие утилиты, как netstat, netpmon, entstat и nmon. Также вы познакомитесь с инструментами, помогающими при настройке сетевых интерфейсов.
Об этой серии статей
Первая часть этой серии из трех статей (ссылки на них даны в разделе Ресурсы), посвященной сетевым вопросам в AIX ®, дает обзор сетевых возможностей и рассказывает об утилитах, служащих для контроля сетевого оборудования. Во второй части описаны тонкая настройка сетевой файловой системы (NFS) и программы для мониторинга, такие как nfsstat и nmon, а также рассмотрена настройка NFS с помощью nfso. В третьей части показано, как отслеживать сетевые пакеты при помощи netstat. Вы научитесь настраивать сеть утилитой no. И, наконец, будут рассмотрены рекомендованные методики оптимизации производительности сетевого ввода-вывода.
Введение
Первое, что обычно приходит на ум системному администратору при возникновении сетевых проблем, это запустить netstat. Аналогично использованию утилит vmstat и iostat для вывода информации о памяти, netstat позволяет получить необходимое представление о том, что происходит в сети. Однако, запустив эту утилиту с параметрами по умолчанию, вы, в отличие от vmstat или iostat, скорее всего не получите всех нужных сведений. Поэтому нелишне будет изучить правильное использование netstat для эффективного контроля состояния системы.
По правде говоря, netstat не является утилитой мониторинга в том смысле, в каком являются vmstat и iostat. Для мониторинга сетевой подсистемы существуют другие, более специализированные программы. В то же время невозможно приступить к контролю сети, не владея полной информацией обо всех компонентах, входящих в ее состав: это и сетевые адаптеры, и коммутаторы, и маршрутизаторы, а также конфигурация виртуальных логических разделов на интересующей вас машине. Вы вряд ли сможете чего-то добиться на локальной машине, если где-то в сети неправильно настроен коммутатор. Однако вы хотя бы сможете указать сетевым специалистам, где искать неполадку. В любом случае не пожалейте времени на сбор всей информации о вашей сети, иначе как вы собираетесь устранять проблемы, не имея точного представления о ее работе? В данной статье будут рассмотрены специфичные для AIX утилиты для контроля в реальном времени, такие как netpmon, которые помогут вам найти узкие места в сети.
В конце концов, какую бы подсистему вы ни настраивали, важно понимать эту работу как постоянный процесс. Как уже было сказано, лучше всего начать контролировать работу системы на начальных этапах, когда все еще работает нормально и пользователи не жалуются. Вы должны иметь представление о "правильном" уровне сетевой производительности – т.е. знать, как "выглядит" правильно работающая система. И последний совет – вносите изменения в работу сети по одному, иначе будет трудно уловить эффект от каждого действия.
Краткий обзор сетевого ввода-вывода
В этой части дается обзор сетевой поддержки в AIX, рассматриваются физические составляющие сети (адаптеры и драйверы устройств) и их настройка, а также описан сетевой стек AIX.
Сразу предупреждаю, что сетевая подсистема AIX непроста для понимания. Для установления проблем, связанных со слабым процессором или нехваткой памяти, достаточно проанализировать совсем немного аппаратных и программных параметров. Более сложным является дисковый ввод-вывод, так как его производительность зависит от гораздо большего числа факторов, особенно от выбранной архитектуры системы, и часто страдает при масштабировании дисковых ресурсов. В этом смысле, как и следовало ожидать, настройки сетевой и дисковой подсистем схожи – обе имеют в основе ввод-вывод. Итак, начнем. На рисунке 1 показаны логические уровни протокола TCP/IP в AIX.
Рисунок 1. Уровни протокола TCP/IP в AIX
Как видно, контроль состояния сети большего, чем просто запуск команды netstat и просмотр количества коллизий. Начиная с уровня приложений и заканчивая уровнем среды передачи данных существует множество параметров, нуждающихся в настройке, контроле и регулировании. Посмотрев на этот рисунок, можно заметить некоторое сходство с сетевой моделью OSI (Open Systems Interconnection Model, открытая модель соединения систем). Модель включает в себя семь уровней. Вот они (перечислены снизу вверх):
- Физический
- Канальный
- Сетевой
- Транспортный
- Сессионный
- Уровень представлений
- Уровень приложений
Пожалуй, наиболее важный момент, который нужно понять, – в процессе передачи данных каждый уровень на одной машине взаимодействует с соответствующем уровнем на другой машине. Приложения пользователя обмениваются данными либо по протоколу UDP (User Datagram Protocol, протокол пользовательских датаграмм), либо по протоколу TCP (Transmission Control Protocol, протокол управления передачей) – эти протоколы соответствуют транспортному уровню. Пакеты этих протоколов различны. Коротко говоря, UDP быстрее, но TCP надежнее. Здесь имеется множество параметров, поддающихся настройке, – их мы рассмотрим далее в статье. Для начала рекомендую вам познакомиться с командой no, при помощи которой меняется большинство сетевых настроек. На аппаратном уровне очень важно понимать, какие именно сетевые компоненты требуют настройки для достижения оптимальной производительности. Возможно, вам и приходилось работать вместе с инженерами, обслуживающими коммутаторы и маршрутизаторы, но скорее всего вам не придется это делать, если конечно вы не единственный человек, отвечающий за небольшую сеть. Наиболее важное устройство, с которым вы будете иметь дело – это cетевой адаптер. На момент написания статьи (2007 год) большинство сетевых адаптеров поддерживало стандарт Gigabit Ethernet, т.е. скорости 10/100/1000 Мбит/с. Приступим к описанию важнейших параметров, которые будут рассмотрены в статье.
Максимальный передаваемый блок
Максимальный передаваемый блок (MTU, Maximum Transfer Unit) определяется как наибольший пакет, который возможно передать в сеть. Он зависит от типа сети. Например, 16-битная сеть Token Ring по умолчанию имеет размер MTU 17914 байт, в то время как FDDI (Fiber Distributed Data Interface, распределенный волоконный интерфейс данных) – 4352 байта. Для Ethernet этот размер составляет 1500 байт (или 9000, если разрешены сверхдлинные jumbo-кадры). Чем больше размер пакета, тем меньше пакетов требуется передать, следовательно, тем выше пропускная способность системы. Но иногда бывает так, что само приложение формирует малые пакеты. Если вы используете Gigabit Ethernet, то вам доступна опция jumbo-кадров, однако поддержка этих кадров должна быть включена и на соответствующих коммутаторах.
Для включения jumbo-кадров сначала введите:
# smit devices.
Затем перейдите к разделу Communication>Ethernet>Adapter>Change/show
characteristics of an Ethernet adapter. Если есть аппаратная поддержка jumbo-кадров, измените соответствующую опцию с "No" на "Yes", как показано в листинге 1.
Листинг 1. Настройки характеристик Ethernet-адаптера
Change / show characteristics of an Ethernet adapter
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[TOP] [Entry Fields]
Ethernet Adapter ent1
Description Virtual I/O Ethernet >
Status Available
Location
Enable ALTERNATE ETHERNET address no +
ALTERNATE ETHERNET address [0x000000000000] +
Minimum Tiny Buffers [512] +#
Maximum Tiny Buffers [2048] +#
Minimum Small Buffers [512] +#
Maximum Small Buffers [2048] +#
Maximum Medium Buffers [128] +#
Maximum Medium Buffers [256] +#
Minimum Large Buffers [24] +#
[MORE...8]
F1=Help F2=Refresh F3=Cancel F4=List
F5=Reset F6=Command F7=Edit F8=Image
F9=Shell F10=Exit Enter=Do
|
А где же опции для jumbo-кадров? В данном случае эта опция отсутствует, так как иллюстрация соответствует виртуальному Ethernet-адаптеру. Помните, я уже говорил о важности понимания того, какое оборудование входит с состав системы?
А теперь обратимся к другой системе - см. листинг 2.
Листинг 2. Настройки адаптера для второго варианта
Change / show characteristics of an Ethernet adapter
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Ethernet Adapter ent1
Description 10/100/1000 Base-TX P>
Status Available
Location 1j-08
RX descriptor queue size [1024] +#
TX descriptor queue size [1024] +#
Software transmit queue size [8192] +#
Transmit jumbo frames yes +
Enable hardware TX TCP resegmentation yes +
Enable hardware transmit and receive checksum yes +
Media speed Auto_Negotiation +
Enable ALTERNATE ETHERNET address no +
ALTERNATE ETHERNET address [0x000000000000] +
Apply change to DATABASE only no +
F1=Help F2=Refresh F3=Cancel F4=List
F5=Reset F6=Command F7=Edit F8=Image
F9=Shell F10=Exit Enter=Do
|
Видно, что опция для jumbo-кадров уже присутствует.
Скорость передачи по каналу связи
Взаимодействие между адаптерами в сети зависит от того, каким образом настроена передача по каналу связи. Рекомендуется выбрать вариант настройки 100_full_duplex либо автовыбор. При автовыборе адаптеры на обоих концах сегмента согласовывают наибольшую возможную скорость. Хотя во многих руководствах (включая документацию IBM®) рекомендуется использовать автовыбор, большинство опытных администраторов AIX, которых я знаю, предпочитают явно выставлять полнодуплексный режим, чтобы установить для адаптера заведомо наибольшую возможную скорость. Если после этого соединение не работает должным образом, то следует обратиться к инженерам по обслуживанию сети. Лучше потратить больше времени сейчас, чем допустить передачу данных на низкой скорости из-за неправильно настроенного коммутатора. Для отображения всех необходимых настроек сетевого адаптера существует команда lsattr. Указав в качестве аргумента имя, начинающееся на ent, вы получите аппаратные сведения; начинающееся на en – информацию о соответствующем драйвере. На рисунке 3 показаны аппаратные сведения.
Листинг 3. Вывод аппаратных сведений
testsys:/home/test>lsattr -El ent0
alt_addr 0x000000000000 Alternate Ethernet Address True
(Альтернативный Ethernet-адрес)
busintr 166 Bus interrupt level False
(Шинный уровень прерывания)
busmem 0xc8030000 Bus memory address False
(Шинный адрес в памяти)
chksum_offload yes Enable RX Checksum Offload True
(Включить аппаратное вычисление
контрольной суммы при приеме)
intr_priority 3 Interrupt priority False
(Приоритет прерывания)
ipsec_offload no IPsec Offload True
(Аппаратное ускорение IPsec)
large_send no Enable TCP Large Send Offload True
(Дробление больших сообщений TCP)
media_speed Auto_Negotiation Media Speed True
(Скоростной режим канала связи)
poll_link no Enable Link Polling True
(Периодический опрос линии связи)
poll_link_timer 500 Time interval for Link Polling True
(Интервал периодического опроса)
rom_mem 0xc8000000 ROM memory address False
(Адрес, соответствующий ППЗУ адаптера)
rx_hog 1000 RX Descriptors per RX Interrupt True
(Число приемных дескрипторов для
приемного прерывания)
rxbuf_pool_sz 1024 Receive Buffer Pool Size True
(Размер пула приемного буфера)
rxdesc_que_sz 1024 RX Descriptor Queue Size True
(Размер очереди приемного дескриптора)
slih_hog 10 Interrupt Events per Interrupt True
(Максимальное количество событий для прерывания)
tx_preload 1520 TX Preload Value True
(Величина предзагрузки при передаче)
tx_que_sz 8192 Software TX Queue Size True
(Размер программной очереди передачи)
txdesc_que_sz 512 TX Descriptor Queue Size True
(Размер очереди дескриптора передачи)
use_alt_addr no Enable Alternate Ethernet Address True
(Разрешить альтернативный Ethernet-адрес)
|
В приведенном примере адаптер настроен на автовыбор скорости.
Также рекомендуется проверить версию прошивки – используйте самые последние версии. Я повидал немало случаев, когда после обновления прошивки сетевые проблемы исчезали. Команда lscfg выдаст информацию о прошивке, как показано в листинге 4.
Листинг 4. Получение информации о прошивке командой lscfg
testsys:/home/test >lscfg -vp | grep -p ROM
10/100 Mbps Ethernet PCI Adapter II:
Part Number.................09P5023
FRU Number..................09P5023
EC Level....................H10971A
Manufacture ID..............YL1021
Network Address.............0002556FC98B
ROM Level.(alterable).......SCU015
Product Specific.(Z0).......A5204207
Device Specific.(YL)........U0.1-P1-I1/E1
10/100/1000 Base-TX PCI-X Adapter:
Part Number.................00P3056
FRU Number..................00P3056
EC Level....................H11635A
Manufacture ID..............YL1021
Network Address.............00096B2E31BD
ROM Level.(alterable).......GOL002
Device Specific.(YL)........U0.1-P1/E2
|
В разделе Ресурсы в конце статьи приведены ссылки на сведения о последних версиях прошивок для различных адаптеров. Посмотрим историю прошивок для адаптера из нашего примера – 10/100/1000 Base-TX PCI-X:
- GOLxxx – шаблон для кодовых названий всех будущих версий прошивки.
- GOL021 – в этой версии исправлено значение Vendor Device ID для адаптеров, соответствующих классу B стандарта EMC. Теперь адаптеры правильно определяются в процессе настройки установки AIX по сети (AIX Network Installation Management, NIM). Контрольная сумма для команды
"sum" AIX составляет 38603.
- GOL012 – в версии OF (она же GOL001) существовала очень небольшая вероятность того, что адаптер вызовет зависание системы в случае аппаратной ошибки передачи. В этой версии исключена возможность бесконечной серии попыток посылок пакетов. Проделав неудачные попытки определенное время, адаптер включает таймер ожидания.
- GOL002 – исправлена проблема, возникающая, когда пользователь выбирал режим 10/auto или 100/auto и не производил сразу ping до коммутатора. В версии GOL001 этот параметр не устанавливался в auto/auto перед передачей в ОС AIX, поэтому AIX, приняв настройку 10/auto или 100/auto, не "знала, что делать", и система останавливалась с кодом ошибки 607. В новой версии прошивки любая неверная комбинация (10/auto, 100/auto, auto/full или auto/half) преобразуется к auto/auto.
- GOL001 – исходная Open Firmware-версия (GA).
Если посмотреть на список версий, сразу становится понятно, что прошивка нашего адаптера отстает от последней на две версии. Постарайтесь найти время на обновление прошивки, особенно если вы уже испытывали периодические сетевые проблемы.
Хотя в данной серии статей материал излагается последовательно, вы можете приступить к ознакомлению с принципами управления памятью в сетевой подсистеме. Для начала скажем, что оно основано на структурах данных под названием mbuf. Ядро использует эти структуры для хранения принятых и отправленных данных. Размер буферов варьируется от 32 до 16384 байт, а память под них выделяется посредством запросов к диспетчеру виртуальной памяти (Virtual Memory Manager, VMM). В SMP-машинах на каждый процессор существует отдельный пул доступной памяти. Здесь основной принцип – процессор не может запросить память из чужого пула.
Вот еще два важных понятия, которые вам необходимо знать: виртуальный и совместно используемый Ethernet.
- Виртуальный Ethernet обеспечивает передачу IP-пакетов между логическими разделами на одном и том же мейнфрейме. Поддерживается в AIX 5.3 для POWER5. Передача реализована через виртуальный коммутатор ввода-вывода. Соответствующие адаптеры создаются и управляются из консоли HMC. Если вы помните, только что мы пытались изменить настройку для такого адаптера.
- Совместно используемый Ethernet является одной из отличительных возможностей расширенной виртуализации POWER (Advanced POWER Virtualization) и позволяет использовать виртуальные серверы ввода-вывода (Virtual I/O Server, VIO). При этом несколько клиентских систем могут использовать один физический сетевой адаптер. Обычно эта конфигурация применяется в системах, не очень требовательных к пропускной способности сети.
Хотя эта статья не о виртуализации, вы должны понимать, что при применении виртуализации надо быть готовым к появлению дополнительных узких мест, лежащих за пределами вашей машины. Виртуализация – довольно заманчивая технология, однако следует быть осторожным при совместном использовании большого числа адаптеров VIO-сервера, иначе это может плохо сказаться на пропускной способности сети. Имея под рукой соответствующие утилиты для контроля, вы сможете узнать о такого рода проблеме. Вам не помешает также ознакомиться с протоколом разрешения адресов (Address Resolution Protocol, ARP) и работой сервера доменных имен (Domain Name Server, DNS) и тем, как они могут влиять на производительность и стабильность сети.
Контроль
В этом разделе будут описаны основные команды для контроля за состоянием сети и другие специфичные для AIX инструменты, доступные вам. Некоторые из этих утилит позволяют быстро устранить проблему, связанную с производительностью, другие – накопить сетевой трафик для последующего анализа в спокойной обстановке.
Вначале вернемся к уже упомянутой команде netstat, которая отображает общую сетевую статистику. Наиболее часто встречающийся способ запуска команды – netstat -in, показанный в листинге 5).
Листинг 5. Запуска команды netstat с опцией -in
@lpar7ml162f_pub[/home/u0004773] > netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
en1 1500 link#2 2a.21.70.0.90.6 21005666 0 175389 0 0
en1 1500 10.153 10.153.3.7 21005666 0 175389 0 0
en0 1500 link#3 2a.21.70.0.90.5 328241182 0 1189 0 0
en0 1500 172.29.128 172.29.137.205 328241182 0 1189 0 0
lo0 16896 link#1 62223 0 62234 0 0
lo0 16896 127 127.0.0.1 62223 0 62234 0 0
lo0 16896 ::1 62223 0 62234 0 0
root@lpar7ml162f_pub[/home/u0004773] >
|
Вот что означают столбцы:
- Name: Имя сетевого интерфейса.
- MTU: Максимальный передаваемый блок для интерфейса.
- Network: Конкретный сетевой адрес, связанный с данным интерфейсом.
- Address: MAC- или IP-адрес.
- Ipkts: Общее количество пакетов, принятых интерфейсом.
- Ierrs: Количество пакетов с ошибкой, принятых интерфейсом.
- Opkts: Общее количество пакетов, отправленных интерфейсом.
- Oerrs: Количество пакетов с ошибкой, отправленных интерфейсом.
- Coll: Количество коллизий на адаптере. В случае Ethernet это поле всегда пусто.
Другая полезная опция netstat, -m, которая позволяет получить статистику о выделении памяти в ядре, т. е. о запросах на выделение памяти под буферы mbuf, включая размеры буферов, число задействованных буферов и количество ошибочных выделений на каждом процессоре. Пример статистики показан в листинге 6.
Листинг 6. netstat с опцией -m
root@lpar7ml162f_pub[/home/u0004773] > netstat -m
Kernel malloc statistics:
******* CPU 0 *******
By size inuse calls failed delayed free hiwat freed
32 194 5203 0 2 62 2620 0
64 484 3926 0 7 28 2620 0
128 309 14913 0 8 875 1310 0
256 392 14494 0 22 136 2620 0
512 2060 261283179 0 261 60 3275 0
1024 31 2714 0 8 25 1310 0
2048 587 1237 0 292 5 1965 0
4096 9 8367 0 2 2 655 0
8192 2 12 0 2 1 327 0
16384 224 354 0 29 2 163 0
32768 48 183 0 13 3 81 0
65536 84 142 0 42 0 81 0
131072 3 4 0 0 51 102 0
******* CPU 1 *******
By size inuse calls failed delayed free hiwat freed
32 17 96 0 0 111 2620 0
64 295 1214 0 5 25 2620 0
128 151 93806 0 5 713 1310 0
256 83 273 0 5 29 2620 0
512 1577 86936634 0 199 23 3275 0
1024 4 18 0 2 4 1310 0
2048 515 516 0 257 1 1965 0
4096 1 707 0 0 1 655 0
8192 1 1 0 1 4 327 0
16384 32 32 0 4 0 163 0
65536 34 34 0 17 0 81 0
131072 0 0 0 0 44 88 0
|
Кроме того, для Ethernet-адаптера можно вывести статистику, связанную с драйвером адаптера, запустив команду entstat (см. листинг 7).
Листинг 7. Вывод статистики драйвера командой enstat
testsys:/home/test>entstat -d en1
-------------------------------------------------------------
ETHERNET STATISTICS (en1) :
(Ethernet-статистика)
Device Type: 10/100 Mbps Ethernet PCI Adapter II (1410ff01)
(Тип устройства)
Hardware Address: 00:02:55:6f:c9:9b
(Аппаратный адрес)
Elapsed Time: 5 days 12 hours 14 minutes 46 seconds
(Время начала сбора статистики)
Transmit Statistics: Receive Statistics:
(Статистика передачи) (Статистика приема)
-------------------- -------------------
Packets: 803536 Packets: 2095253
(Всего пакетов)
Bytes: 511099654 Bytes: 1099945394
(Всего байт)
Interrupts: 520 Interrupts: 2074913
(Кол-во прерываний)
Transmit Errors: 0 Receive Errors: 0
(Кол-во ошибок)
Packets Dropped: 0 Packets Dropped: 0
(Отброшенных пакетов)
Bad Packets: 0
(Испорченных пакетов)
Max Packets on S/W Transmit Queue: 38
(Максимальное количество пакетов, отмеченное в программной очереди отправки)
S/W Transmit Queue Overflow: 0
(Количество переполнений программной очереди передачи)
Current S/W+H/W Transmit Queue Length: 1
(Текущая суммарная длина программной и аппаратной очереди передачи)
Broadcast Packets: 535 Broadcast Packets: 997476
(Кол-во широковещательных пакетов)
Multicast Packets: 2 Multicast Packets: 5477
(Кол-во multicast-пакетов)
No Carrier Sense: 0 CRC Errors: 0
(Кол-во отсутствий физического соединения) (Кол-во ошибок по CRC)
DMA Underrun: 0 DMA Overrun: 0
(Кол-во переполнений DMA)
Lost CTS Errors: 0 Alignment Errors: 0
(Кол-во потерь сигнала CTS) (Кол-во ошибок выравнивания)
Max Collision Errors: 0 No Resource Errors: 0
(Максимальное кол-во ошибок из-за коллизий) (Кол-во ошибок отсутствия ресурсов)
Late Collision Errors: 0 Receive Collision Errors: 0
(Кол-во ошибок из-за поздних коллизий) (Кол-во ошибок из-за коллизий на приеме)
Deferred: 0 Packet Too Short Errors: 0
(Кол-во задержанных пакетов) (Кол-во ошибок из-за слишком
коротких пакетов)
SQE Test: 0 Packet Too Long Errors: 0
(Кол-во ошибочных SQE-тестов) (Кол-во ошибок из-за слишком
длинных пакетов)
Timeout Errors: 0 Packets Discarded by Adapter: 0
(Кол-во ошибок таймаута) (Кол-во пакетов, отвергнутых адаптером)
Single Collision Count: 0 Receiver Start Count: 0
(Кол-во единичных коллизий) (Начало отсчета приемника)
Multiple Collision Count: 0
(Кол-во множественных коллизий)
Current HW Transmit Queue Length: 1
(Текущая длина аппаратной очереди передачи)
General Statistics:
(Общая статистика)
-------------------
No mbuf Errors: 0
(Кол-во ошибок из-за нехватки буферов mbuf)
Adapter Reset Count: 0
(Кол-во сбросов адаптера)
Adapter Data Rate: 200
(Скорость обмена адаптера)
Driver Flags:
(Флаги драйвера) Up Broadcast Running
Simplex AlternateAddress 64BitSupport
ChecksumOffload PrivateSegment DataRateSet
10/100 Mbps Ethernet PCI Adapter II (1410ff01) Specific Statistics:
(Специфическая статистика адаптера)
--------------------------------------------------------------------
Link Status : up
(Состояние соединения)
Media Speed Selected: Auto negotiation
(Выбранный скоростной режим)
Media Speed Running: 100 Mbps Full Duplex
(Установившийся скоростной режим)
Receive Pool Buffer Size: 1024
(Размер приемного буфера)
No Receive Pool Buffer Errors: 0
(Кол-во ошибок из-за недоступности приемного буфера)
Receive Buffer Too Small Errors: 0
(Кол-во ошибок из-за нехватки приемного буфера)
Entries to transmit timeout routine: 0
(Кол-во входов с процедуру истечения таймаута передачи)
Transmit IPsec packets: 0
(Кол-во переданных IPsec-пакетов)
Transmit IPsec packets dropped: 0
(Кол-во отброшенных при передаче IPsec-пакетов)
Receive IPsec packets: 0
(Кол-во принятых IPsec-пакетов)
Receive IPsec packets dropped: 0
(Кол-во отброшенных при приеме IPsec-пакетов)
Inbound IPsec SA offload count: 0
(Кол-во аппаратных ускорений при приеме IPsec SA)
Transmit Large Send packets: 0
(Кол-во отправок больших пакетов)
Transmit Large Send packets dropped: 0
(Кол-во отброшенных при отправке больших пакетов)
Packets with Transmit collisions:
(Кол-во пакетов, при отправке которых возникали коллизии)
1 collisions: 0 6 collisions: 0 11 collisions: 0
2 collisions: 0 7 collisions: 0 12 collisions: 0
3 collisions: 0 8 collisions: 0 13 collisions: 0
4 collisions: 0 9 collisions: 0 14 collisions: 0
5 collisions: 0 10 collisions: 0 15 collisions: 0
testsys:/home/test>
|
Вы не увидите большого числа коллизий, так как ваша сеть, скорее всего, построена на коммутаторах. Обратите внимание на количество ошибок при передаче – это значение не должно быстро возрастать. Перед тем, как приступать к тонкой настройке, вам необходимо научиться бороться с коллизиями и другими ошибками. Кстати, для вывода аналогичной информации возможно использовать и netstat с опцией -v.
Теперь обратимся к команде netpmon. Она выдает сведения о загрузке процессора, создаваемой сетевой подсистемой, о вводе-выводе в сетевом драйвере и о сокетных системных вызовах и другую статистику. Как и схожие утилиты для мониторинга в реальном времени – tprof и filemon, netpmon запускает мониторинг и работает в фоновом режиме до тех пор, пока вы не дадите команду trcstop. Лично я предпочитаю netpmon, так как она выдает очень подробную информацию о работе сети, а также захватывает трафик, который можно в дальнейшем проанализировать и определить его характер и динамику (хотя для захвата пакетов удобнее использовать nmon). В листинге 8 показан запуск мониторинга с размером буфера в 2 миллиона байт.
Листинг 8. Запуск команды netpmom с опцией -T
root@lpar7ml162f_pub[/etc] > netpmon -T 2000000 -o /tmp/net.out
Wed Sep 5 05:30:27 2007
System: AIX 5.3 Node: lpar7ml162f_pub Machine: 00C22F2F4C00
Run trcstop command to signal end of trace.
|
А теперь остановим процесс, как показано в листинге 9.
Листинг 9. Остановка netpmom
root@lpar7ml162f_pub[/etc] >
root@lpar7ml162f_pub[/etc] > trcstop
root@lpar7ml162f_pub[/etc] > [netpmon: Reporting started]
[netpmon: Reporting completed]
[ 4 traced cpus ]
[ 245.464 secs total preempt time ]
[netpmon: 164.813 secs in measured interval]
root@lpar7ml162f_pub[/etc] >
|
Посмотрим, что мы собрали. В листинге 10 приведен небольшой фрагмент собранных данных.
Листинг 10. Фрагмент сбора
# more net.out
Process CPU Usage Statistics:
(Статистика использования процессора по процессам)
-----------------------------
Network
Process (top 20) PID CPU Time CPU % CPU %
----------------------------------------------------------
UNKNOWN 15920 151.2735 36.558 0.000
UNKNOWN 7794 104.8801 25.346 0.000
UNKNOWN 6876 73.8785 17.854 0.000
UNKNOWN 5402 50.6225 12.234 0.000
xmwlm 13934 15.0469 3.636 0.000
-ksh 5040 0.0371 0.009 0.000
getty 18688 0.0280 0.007 0.000
sshd: 28514 0.0224 0.005 0.000
syncd 10068 0.0212 0.005 0.000
gil 3870 0.0163 0.004 0.004
swapper 0 0.0135 0.003 0.000
spray 5400 0.0085 0.002 0.000
send-mail 18654 0.0084 0.002 0.000
rmcd 15026 0.0081 0.002 0.000
ping 5036 0.0068 0.002 0.000
ksh 26642 0.0062 0.002 0.000
trcstop 5404 0.0057 0.001 0.000
rpc.lockd 22032 0.0052 0.001 0.000
mail 6872 0.0039 0.001 0.000
IBM.ServiceRMd 28126 0.0032 0.001 0.000
----------------------------------------------------------
Total (all processes) 395.9176 95.681 0.004
Idle time 70.3216 16.995
========================================================================
First Level Interrupt Handler CPU Usage Statistics:
(Статистика использования процессора обработчиком
прерываний первого уровня)
---------------------------------------------------
Network
FLIH CPU Time CPU % CPU %
----------------------------------------------------------
PPC decrementer 18.4640 4.462 0.000
queued interrupt 6.2882 1.520 0.000
external device 0.6343 0.153 0.000
data page fault 0.0220 0.005 0.000
----------------------------------------------------------
Total (all FLIHs) 25.4085 6.140 0.000
TCP Socket Call Statistics (by Process):
(Статистика обращений к TCP-сокетам по процессам)
----------------------------------------
------ Read ----- ----- Write -----
Process (top 20) PID Calls/s Bytes/s Calls/s Bytes/s
------------------------------------------------------------------------
sshd: 28514 0.47 7754 0.65 40
sshd: 29596 0.04 596 0.05 3
------------------------------------------------------------------------
Total (all processes) 0.51 8350 0.70 43
========================================================================
NFSv3 Client RPC Statistics (by Server):
(Статистика RPC-обращений к NFSv3-клиентам по серверам)
----------------------------------------
Server Calls/s
----------------------------------
p650 0.03
------------------------------------------------------------------------
Total (all servers) 0.03
========================================================================
PROCESS: ping PID: 5036
reads: 12
read sizes (bytes): avg 192.0 min 192 max 192 sdev 0.0
read times (msec): avg 7.927 min 7.136 max 12.806 sdev 1.496
writes: 12
write sizes (bytes): avg 64.0 min 64 max 64 sdev 0.0
write times (msec): avg 0.052 min 0.039 max 0.063 sdev 0.007
|
Как видно, за время сбора общая сетевая активность была невелика. Самая верхняя часть статистики наиболее ценная, так как показывает, какие процессы больше других задействуют сеть.
Команда lsattr, использовавшаяся нами ранее для просмотра аппаратных параметров, также позволяет получить статистику интерфейсов. Атрибуты, показываемые chdev, настраиваются командами chdev или no. Выведем параметры драйвера, как показано в листинге 11.
Листинг 11. Вывод параметров драйвера командой lsattr
testsys:/home/testsys >lsattr -El en0
alias4 IPv4 Alias including Subnet Mask True
(IPv4-псевдоним с маской подсети)
alias6 IPv6 Alias including Prefix Length True
(IPv6-псевдоним с префиксом длины)
arp on Address Resolution Protocol (ARP) True
(Протокол ARP)
authority Authorized Users True
(Авторизированные пользователи)
broadcast Broadcast Address True
(Широковещательный адрес)
mtu 1500 Maximum IP Packet Size for This Device True
(Максимальный размер пакета для данного устройства)
netaddr Internet Address True
(Интернет-адрес)
netaddr6 IPv6 Internet Address True
(Интернет-адрес IPv6)
netmask Subnet Mask True
(Маска подсети)
prefixlen Prefix Length for IPv6 Internet Address True
(Длина префикса для адресов IPv6)
remmtu 576 Maximum IP Packet Size for REMOTE Networks True
(Максимальный размер пакета для удаленных сетей)
rfc1323 Enable/Disable TCP RFC 1323 Window Scaling True
(Включить/выключить регулировку окна TCP по RFC 1323)
security none Security Level True
(Уровень безопасности)
state detach Current Interface Status True
(Текущее состояние интерфейса)
tcp_mssdflt Set TCP Maximum Segment Size True
(Максимальный размер TCP-сегмента)
tcp_nodelay Enable/Disable TCP_NODELAY Option True
(Включить/выключить опцию TCP_NODELAY)
tcp_recvspace Set Socket Buffer Space for Receiving True
(Размер сокетного буфера на прием)
tcp_sendspace Set Socket Buffer Space for Sending True
(Размер сокетного буфера на отправку)
testsys:/home/testsys>
|
Для устранения различных проблем я также люблю пользоваться командой spray. Эта команда посылает с вашей машины однонаправленный поток пакетов на удаленные машины, после чего выдает количество переданных пакетов и скорость передачи (см. листинг 12).
Листинг 12. Работа команды spray
root@lpar7ml162f_pub[/etc] > /usr/etc/spray lpar8test -c 2000 -l 1400 -d 1
sending 2000 packets of length 1402 to
lpar8test ...
34 packets (1.700%) dropped by lpar8test
23667 packets/second, 33181234 bytes/second
root@lpar7ml162f_pub[/etc] >
|
В приведенном примере было послано 2000 пакетов на машину lpar8test с задержкой в 1 микросекунду. Каждый пакет имел размер 1400 байт. Перед запуском spray убедитесь, что демон sprayd не закомментирован в настройках inetd (по умолчанию в AIX это так). Раскомментировав нужную строку, не забудьте заставить inetd перечитать настройки. Если вы видите много отброшенных пакетов, с вашей сетью что-то не так.
И в заключение давайте взглянем на утилиту nmon, работа которой показана в листинге 13.
Листинг 13. Утилита nmon
?nmon????????p=Partitions???????Host=lpar7ml162f_pubRefresh=2 secs???05:43.15?????????
? Network ????????????????????????????????????????????????????????????????????????????
?I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans ?
? en1 2.1 0.0 46.3 0.0 46.0 0.0 2.1 0.0 ?
? en0 43.8 0.3 575.2 0.5 77.9 674.0 43.8 0.6 ?
? lo0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ?
? Total 0.0 0.0 in Mbytes/second ?
?I/F Name MTU ierror oerror collision Mbits/s Description ?
? en1 1500 0 0 0 2047 Standard Ethernet Network Interface ?
? en0 1500 0 0 0 2047 Standard Ethernet Network Interface ?
? lo0 16896 0 0 0 0 Loopback Network Interface
|
Если вы уже знакомы с другими моими статьями об AIX (см. раздел Ресурсы), вы, наверное, заметили, что я очень люблю команду nmon – да вы сами наверняка ее полюбите, начав использовать. Если нажать n после запуска nmon, то вашему взору предстанет удобная картина всего, что связано с сетью, включая детальные сведения об адаптерах, MTU, счетчики ошибок и коллизий, скорости в мегабитах.
Кроме этого, nmon позволяет захватывать сетевой трафик. Анализатор nmon "умеет" создавать удобные графические отчеты в формате Microsoft® Excel. В разделе Ресурсы вы найдете ссылку на Wiki от IBM, которая содержит руководство по использованию утилиты и разные файлы для загрузки.
Резюме
В статье было продемонстрировано, насколько важной является сетевая подсистема. Были описаны логические уровни сетевой подсистемы AIX и их соответствие модели OSI. Вы освоили некоторые рекомендуемые методики конфигурирования сети, научились изменять настройки Ethernet (включать jumbo-кадры) и просматривать информацию о сетевом адаптере и драйвере. Мы попробовали утилиты для контроля за сетью – netpmon и nmon – и провели с их помощью мониторинг в реальном времени. В следующей части этой серии статей вы научитесь настраивать NFS и овладеете различными утилитами для мониторинга, такими как nfsstat и nmon, а также откроете для себя настройку NFS при помощи nfso.
Ресурсы Научиться
- Оригинал статьи (EN)
- Читайте RSS-ленту, чтобы не пропустить новые статьи из серий: (Узнать больше об RSS-каналах можно здесь.)
- Ознакомьтесь с другими сериями статьей:
- Описание к nmon и другие материалы имеются в Wiki (EN) по AIX.
- Статья (EN) о том, как увеличить производительность базы данных с помощью параллельного ввода-вывода AIX.
- Описание и история высокопроизводительной архитектуры Power опубликованы на этой (EN) странице.
- "Power to the People; A history of chip making at IBM" (developerWorks, декабрь 2005 г.) (EN): статья, описывающая архитектуру процессоров IBM Power.
- В статье "Настройка и мониторинг центрального процессора " (март 2002 г.) (EN) описаны стандартные утилиты AIX для устранения узких мест, связанных с процессором.
- Скачать nmon analyzer – бесплатную утилиту для создания отчетов о производительности в AIX – можно по ссылкам из этой (EN) статьи Стивена Аткинса (developerWorks, апрель 2006 г.).
- Прочитайте Практическое руководство по утилитам для настройки производительности AIX 5L из серии IBM Redbooks (EN) – исчерпывающий источник информации о мониторинге производительности и соответствующим утилитам в AIX 5L версии 5.3.
- В статье Шива Дутты "AIX 5L версия 5.3: Чем нас порадует эта версия?"(developerWorks, июнь 2005 г.) рассказывается о полезных свойствах этой версии AIX.
- Прочитайте статью Найджела Гриффтса об nmon "nmon – свободная утилита для анализа производительности в AIX и Linux" (developerWorks, февраль 2006 г.) (EN).
- Руководство по управлению производительностью AIX 5.3 из серии IBM Redbooks (EN) будет полезно прикладным и системным программистам, инженерам по техобслуживанию, системным инженерам, системным администраторам, опытным и начинающим пользователям – всем, кому необходима исчерпывающая информация об оценке и настройке производительности, связанной с процессорами, файловыми системами, памятью, дисками, NFS, Java™ и коммуникациями.
- Книга "Управление операционной системой и устройствами" от IBM поможет пользователям и системным администраторам разобраться в выборе возможностей, возникающих при проведении таких мероприятий, как резервное копирование и восстановление системы, управление физическими и логическими хранилищами, установление нужного размера области подкачки.
- Хотите стать сертифицированным специалистом по AIX 5L на eServer® и pSeries®? Прочитайте Руководство по подготовке к сертификации IBM по администрированию и поддержке AIX 5L версии 5.3 на системах eServer p5 и pSeries (EN).
- В этой (EN) статье из серии IBM Redbooks рассмотрены отличия AIX 5L версии 5.3 от предыдущей версии 5.2.
- Другие статьи и руководства от Кена Милберга:
- Узнайте (EN), что больше всего интересует ваших коллег в AIX и UNIX®.
- Раздел AIX и
UNIX на developerWorks содержит море информации обо всех аспектах администрирования AIX-систем и поможет повысить ваши навыки в UNIX.
- Новичок в AIX или UNIX? Посетите соответствующий раздел, чтобы ознакомиться с этими системами.
-
AIX Wiki (EN): совместная разработка документации AIX.
- Найдите нужную информацию по следующим темам:
- Книжный Интернет-магазин Safari (EN): посетите эту электронную библиотеку и найдите нужную техническую информацию.
-
Оставайтесь в курсе, посещая раздел технических мероприятий и Web-трансляций IBM (EN)
-
Подкасты (EN): настройтесь и будьте на связи с техническими экспертами IBM.
- Посетите сайт компании Future Tech (EN), чтобы узнать о ее новейших предложениях.
Получить продукты и технологии
- Разработайте ваш следующий проект с помощью пробного ПО от IBM (EN), которое можно загрузить прямо с developerWorks.
Обсудить
Об авторе  | |  | Кен Милберг занимает должности Technical Writer и Site Expert на сайте techtarget.com и предоставляет техническую информацию и поддержку по Linux на searchopensource.com. Он также является автором и техническим редактором IBM Systems Magazine, Open Edition. Кен обладает степенью бакалавра компьютерных и информационных наук и степенью магистра по менеджменту технологий Университета штата Мэрилэнд. Он является основателем и лидером группы пользователей POWER-AIX Лонг-Айленда. В течение многих лет он работал как в крупных, так и небольших организациях и занимал различные должности от директора по информационным технологиям до главного разработчика AIX. Сейчас он работает в Future Tech, бизнес-партнере IBM в Лонг-Айленде. Кен обладает званиями PMI certified Project Management Professional (PMP), IBM Certified Advanced Technical Expert (CATE, IBM System p5 2006), и Solaris Certified Network Administrator (SCNA). Вы можете связаться с ним по адресу kmilberg@gmail.com. |
Выскажите мнение об этой странице
|  |