Апр
17
2010
С ростом сети и увеличением трафика через маршрутизатор возможна ситуация, когда роутер начинает не справляться с нагрузкой и начинает потихоньку терять пакеты на интерфейсах. Пока это эпизодическое явление, в пиковые моменты — ничего страшного, когда это явление становится постоянным и только растет число отброшенных пакетов нужно снимать нагрузку. Тут самое важное не пропустить тот момент, когда ошибки начинают появляться и планировать ввод второго маршрутизатора или апгрейд текущего. Лучше всего наблюдать за потерянными пакетами на графике.
Я использую такой конфиг для MRTG:
Target[127.0.0.1_rouerr1]: ifInErrors.1&ifInErrors.1:netstat@127.0.0.1: SetEnv[127.0.0.1_rouerr1]: MRTG_INT_IP="192.168.0.3" MRTG_INT_DESCR="em0" MaxBytes[127.0.0.1_rouerr1]: 125000000 Title[127.0.0.1_rouerr1]: Router Error rate on em0 PageTop[127.0.0.1_rouerr1]: <h1>Error rate on em0</h1> <div id="sysdetails"> <table> <tr> <td>System:</td> <td>Router</td> </tr> <tr> <td>Maintainer:</td> <td>noc@hilik.org.ua</td> </tr> <tr> <td>Description:</td> <td>em0 </td> </tr> <tr> <td>ifType:</td> <td>ethernetCsmacd (6)</td> </tr> <tr> <td>ifName:</td> <td>em0</td> </tr> <tr> <td>Max Speed:</td> <td>1000.0 Mbits/s</td> </tr> <tr> <td>Ip:</td> <td>192.168.0.3 ()</td> </tr> </table> </div>
Приведен пример для первого интерфейса ifInErrors.1, в случае второго интерфейса будет соответственно ifInErrors.2 ну и тд.
Сервер Asus RS160-S5, два Xeon E5420 @ 2.50GHz, четырех портовая сетевая карта intel 82571PT и встроенные (2х канальный интегрированный в чипсет контроллер + интерфейс физического уровня Intel 82563EB 10/100/1000 Мбит/с и 2 сетевых контроллера Intel 82573)
lagg0 объединяет четыре порта 82571PT и один встроенной сетевой карты. На интерфейсы lagg0 попадает мониторинг с роутера, далее в netgraph и выводить с другого lagg-интерфейса(два порта). На входящих в lagg0 интерфейсах есть ошибки из-за cpu:
FreeBSD 7.2-RELEASE # ifconfig em0 em0: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500 options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM> ether 00:15:17:7f:57:b0 media: Ethernet autoselect (1000baseTX <full-duplex>) status: active lagg: laggdev lagg0 # netstat -w 1 -I em0 input (em0) output packets errs bytes packets errs bytes colls 125071 34001 77377039 0 0 0 0 127231 32662 78761625 0 0 0 0 129571 29724 81239227 0 0 0 0 125599 32527 78889850 0 0 0 0 #netstat -w 1 input (Total) output packets errs bytes packets errs bytes colls 985841 110710 600567974 780195 0 313484948 0 983657 120779 594569491 777140 0 306421389 0 996726 115091 602176326 789737 0 312895661 0 last pid: 3584; load averages: 4.31, 4.38, 4.37 up 0+01:41:59 17:39:14 99 processes: 13 running, 72 sleeping, 14 waiting CPU 0: 0.0% user, 0.0% nice, 100% system, 0.0% interrupt, 0.0% idle CPU 1: 0.0% user, 0.0% nice, 100% system, 0.0% interrupt, 0.0% idle CPU 2: 0.0% user, 0.0% nice, 3.5% system, 3.5% interrupt, 93.0% idle CPU 3: 0.0% user, 0.0% nice, 54.4% system, 0.0% interrupt, 45.6% idle CPU 4: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 5: 0.0% user, 0.0% nice, 100% system, 0.0% interrupt, 0.0% idle CPU 6: 0.0% user, 0.0% nice, 8.8% system, 0.0% interrupt, 91.2% idle CPU 7: 0.0% user, 0.0% nice, 75.4% system, 0.0% interrupt, 24.6% idle Mem: 58M Active, 26M Inact, 109M Wired, 144K Cache, 28M Buf, 7731M Free Swap: 4096M Total, 4096M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 31 root 1 -68 - 0K 16K CPU5 5 99:24 100.00% em2 taskq 29 root 1 -68 - 0K 16K CPU0 0 99:21 100.00% em0 taskq 30 root 1 -68 - 0K 16K CPU1 1 98:57 100.00% em1 taskq 14 root 1 171 ki31 0K 16K CPU4 4 91:29 100.00% idle: cpu4 16 root 1 171 ki31 0K 16K CPU2 2 78:47 93.65% idle: cpu2 12 root 1 171 ki31 0K 16K CPU6 6 94:44 91.06% idle: cpu6 39 root 1 -68 - 0K 16K CPU7 7 66:57 71.04% em7 taskq 32 root 1 -68 - 0K 16K - 3 62:11 64.79% em3 taskq 15 root 1 171 ki31 0K 16K RUN 3 38:53 34.03% idle: cpu3 11 root 1 171 ki31 0K 16K RUN 7 34:16 31.84% idle: cpu7 38 root 1 -68 - 0K 16K - 6 6:23 10.21% em6 taskq 34 root 1 -68 - 0K 16K - 2 8:07 7.76% em5 taskq 19 root 1 -32 - 0K 16K WAIT 2 1:27 1.22% swi4: clock sio 18 root 1 171 ki31 0K 16K RUN 0 7:38 0.00% idle: cpu0 13 root 1 171 ki31 0K 16K RUN 5 6:27 0.00% idle: cpu5 17 root 1 171 ki31 0K 16K RUN 1 5:12 0.00% idle: cpu1 21 root 1 -44 - 0K 16K WAIT 4 3:51 0.00% swi1: net
не помогло: polling 1000MHz,2000MHz;-tso;драйвера с сайта intel 6.9.20;изменение dev.em.0.rx_*
есть ли софтовое решение данной проблемы или какую выбрать железку/сетевку
Появились дисконекты, завышения пингов .
Схема сети: локальные роутеры занимаются шейпингом клиентов(ipfw + pipe + tablearg) , потом траф идет на сервер NAT(pf nat), с него патч идет непосредственно в сервер BGP(quagga + ipfw), а дальше в инет.
Сервера: На ОС FreeBSD 7.0 (в ядре вырублены левые дрова и вшит фаервол).
Сетевые Intel 1000MT Desctop.
Проц Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz. ОЗУ -2G
Трафик не такой больой , железо должно нормально справляться.
CPU загружается в пике не более чем по 60% оба ядра (распаралеливание происходит нормально)
Для сетевых , это тоже вроде не предел… (250Mb/s, 30-35k pps, порядка 80k сессий )
В pf на нат отрублен scrub.
Почему берутся эти ошибки?
Чем отличается Error и Discards? В каких случаях возникают ошибки in и out (особенно связка маскарад(нат) net0 и Mart (bgp) net1, которые соединены напрямую патчем. )
Где может быть узкое место?
Куда еще можно покопать ??
Завышения пингов начинаются на сервере NAT. net0 — в сторону инета , net1 — в сторону локальной сети
сыпятся ошибки
Содержание
- Freebsd посмотреть ошибки на интерфейсе
- Network
- System
- Memory
- Службы времени
- Freebsd посмотреть ошибки на интерфейсе
- Freebsd посмотреть ошибки на интерфейсе
- Freebsd посмотреть ошибки на интерфейсе
Freebsd посмотреть ошибки на интерфейсе

Системные команды, которыми можно проверить ресурсы системы, текущую нагрузку и просто просматривать различную информацию.
atacontrol list — просмотр всех жестких дисков в системе (показывает в том числе и их модели)
mount – показывает смонтированные подразделы и флаги из монтирования
cat /etc/fstab – таблица монтирования при загрузке
disklabel /dev/ad0s1 – показывает список подразделов в первом разделе диска ad0
swapinfo – показывает список подразделов свопинга на дисках и их использование
gstat – нагрузка на диски
fstat – показывает список открытых файлов (имена файлов не выводятся)
pstat -f – выводит список открытых файлов (имена файлов не выводятся)
iostat – выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки.
iostat -d -w1 -c7 – нагрузка на диски. Статистика в удобном виде
vmstat – выводит количество операций на диске в секунду
sysinstall – можно посмотреть и изменить разметку диска и монтирование
systat -vmstat n – каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.
systat -io start 1 — HDD + CPU
diskinfo -t ad4 – тест на дисковую производительность
tunefs -p /var/ – информация о настройках файловой системы (UFS)
df -H – количество свободного места
df -i – количество свободных инодов
Network
ifconfig – список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра)
ifconfig -d — Просмотреть список отключенных интерфейсов
ifconfig -u — Список включенных сетевух
netstat – вывод активных сетевых соединений (сокетов)
netstat -i ошибки на интерфейсах
netstat -m — просмотр хватает ли mbuf и т.д.
netstat -inb – сколько передано через интерфейс в байтах
netstat -ibt – список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера
netstat -hdw 1 -i net1 — Просмотр количества пакетов в сек, ошибок и дропов на интерфейсе (online)
netstat -r – таблица маршрутизации
systat -ifstat n – интенсивность передачи трафика (online) по всем сетевым интерфейсам за n секунд
systat -netstat n – аналог netstat в реальном времениsysctl kern.ipc.numopensockets – количество открытых сокетов
systat -ip n – таблица IP-пакетов и ошибок по типам за n секунд
systat -tcp n – таблица TCP-пакетов и ошибок по типам за n секунд
systat -icmp n – таблица ICMP-пакетов и ошибок по типам за n секунд
arp -a – просмотр всей таблицы ARP
arp -ad – очистка всей таблицы ARP
tcpdump -i rl0 host 192.168.61.20 and port 80 – сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80
trafshow -i rl0 – программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)
System
top -mio – показать I/O по процессам
top -S – показать системные процессы в топе (по дефолту они не показываются)
top -SHPI — показать загрузку по ядрам, в том числе и системные процессы, кроме тех что в простое. Наиболее удобный вариант.
vmstat -z — чего не хватает
vmstat -i — прерывания по устройствам
systat -vmstat n – просмотр всей сводной статистики по системе(online). вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см)
uptime — можно просмотреть время работы системы без перезагрузок и load averages системы
pcpustat — мониторинг CPU (порт)
ps afx – список запущенных процессов и время процессора на каждый
rcorder /etc/rc.d/* /usr/local/etc/rc.d/* — Посмотреть очередность запуска сервисов в freebsd.
Memory
freecolor – очень симпатичная утилита для мониторинга использования памяти (ставится из портов)
Для детальной информации по расходу памяти:
Службы времени
date – выводит текущее время и дату
w – выводит, сколько времени назад система загрузилась и список залогиненных пользователей
last – выводит историю перезагрузок и входов пользователей
lastlogin — выводит по пользователям дату и время последнего входа в систему
Источник
Freebsd посмотреть ошибки на интерфейсе
На Linux это можно сделать командой ifconfig и netstat. На FreeBSD — командой netstat. Под Windows netstat -e (к сожалению, без указания конкретного интерфейса). Под IOS Cisco show interfaces имя_интерфейса. Примеры:
Windows
D:Documents and Settingsuser>netstat -e
Interface Statistics
Received Sent
Bytes 1318170969 1331072579
Unicast packets 17579014 19350523
Non-unicast packets 7408 7298
Discards 0 0
Errors 0 0
Unknown protocols 0
Red Hat Linux
[ root@localhost
]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:C0:DF:0B:1D:08
inet addr:a.b.11.111 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::2c0:dfff:fe0b:1d08/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12440467 errors:0 dropped:0 overruns:0 frame:0
TX packets:54452 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1136982908 (1.0 GiB) TX bytes:5774730 (5.5 MiB)
Interrupt:169 Base address:0x1000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1635 errors:0 dropped:0 overruns:0 frame:0
TX packets:1635 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1743404 (1.6 MiB) TX bytes:1743404 (1.6 MiB)
[root@localhost
]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 12564444 0 0 0 54645 0 0 0 BMRU
lo 16436 0 1635 0 0 0 1635 0 0 0 LRU
Источник
Freebsd посмотреть ошибки на интерфейсе
Пожалуйста, сообщите об этом — просто выделите ошибочное слово или фразу и нажмите Shift Enter.
| Как посмотреть статистику ошибок на сетевых интерфейсах |
| Написал microsin |
| 24.04.2008 |
|
На Linux это можно сделать командой ifconfig и netstat. На FreeBSD — командой netstat. Под Windows netstat -e (к сожалению, без указания конкретного интерфейса). Под IOS Cisco show interfaces имя_интерфейса. Примеры: Windows Red Hat Linux ]# ifconfig ]# netstat -i Источник Freebsd посмотреть ошибки на интерфейсе
netstat -w 1 sysctl -a | grep dev.bge.1 |
| Высказать мнение | Ответить | Правка | Cообщить модератору |
- Ошибки на сетевом интерфейсе FreeBSD 7.2, Админ Веня, 21:07 , 07-Мрт-10, (1)
- Ошибки на сетевом интерфейсе FreeBSD 7.2, izakacman, 14:04 , 08-Мрт-10, (2)
| Сообщения по теме | [Сортировка по времени | RSS] |
1) вас 600мбит идет. (in+out сложить * 8)
2) переобожмите шнурок на стороне свича/роутера/Etc
| 1. «Ошибки на сетевом интерфейсе FreeBSD 7.2» | + / – |
Сообщение от Админ Веня on 07-Мрт-10, 21:07 |
|
| Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору |
![]() |
|
| 2. «Ошибки на сетевом интерфейсе FreeBSD 7.2» | + / – |
Сообщение от izakacman (ok) on 08-Мрт-10, 14:04 |
|
Спасибо, один из вопросов на который я не получил ответ. Только теперь не совсем ясно почему systat -if показывает совсем не 600Мбит а не больше 250, почему такая разница? >2) переобожмите шнурок на стороне свича/роутера/Etc Даже не знаю, шнурки все заводские. Возможно винтам уже не хорошо. Хотя busy в среднем 40-60 и tps 100-200. Может hdd seek какой-нить. Какие критические параметры еще есть для hdd и как можно посмотреть тот же сик? Источник Adblock |
Продолжение.
Может кто netams юзает или скорее просто умный.
Наткнулся на какую-то тупость, не могу понять в чем дело, использую Netams на разных серверах и разных платформах многие годы, сегодня перенес всю работающую конфигурацию с FreeBSD 8.1 на этот новый шлюз под 8.2 и не могу понять что происходит, ситуация вот в чем:
Если на шлюзе запущен netams, у пользователей перестают грузиться страницы (либо ооочень медленно что-то небольшое может загрузиться), причем как-то странно, после запроса появляется в названии окна броузера тот же Яндекс, например, а сама страница дальше не грузится, просто висит, обмен данными со шлюзом осуществляется по порту 8080, на котором и работает squid. В access.log ес-но запросы пользователя имеются. Задержки и тормоза замечены и при подключении по ssh от пользователя на шлюз, если подключаться к шлюзу на реальный внешний IP-адрес внешнего интерфейса, если на внутренний, то все быстро прогружается (т.е. например с 192.168.10.50 на 192.168.10.1 — все ОК, как и должно быть). При этом если от пользователя обращаться напрямую в интернет к веб-узлу, то все летает, также нет проблем с прохождением пинга и работы почты по pop3smtp на внешние почтовые сервера.
Причем эффект наблюдается только при использовании типа data-source ip-traffic source divert (он у всех интерфейсов, смотрящих во внутренние локальные сети), т.е. когда происходит заворот проходящего трафика с помощью ipfw в netams. На внешнем же интерфейсе, где тип data-source используется libpcap, проблем таких
нет.
Что характерно, если руками удалить правило в списке правил ipfw, заворачивающее трафик в netams по конкретному внутреннему интерфейсу, через который идет обращение от пользователя — то у него все сразу начинает работать. Проверено. Т.е. что-то происходит с трафиком к squid и ssh, когда он заворачивается и
попадает в netams.
Что странно, если при запущенном netams на шлюзе попытаться остановить squid (./squid stop в /usr/local/etc/rc.d/), то он на деле не останавливается и продолжает работать, вися в памяти, если же netams не запущен, этого эффекта нет. Вот так.
Сам Netams при этом работает, трафик считает, управляется и отлично администрится через NAWT.
Короче я уже не пойму, в чем может быть дело, помогите своими идеями.
Может подтюнить в системе что еще нужно?
Еще раз, на чем все работает:
CPU: Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz (2822.51-MHz 686-class CPU)
real memory = 4294967296 (4096 MB)
avail memory = 3598565376 (3431 MB)
FreeBSD 8.2-RELEASE (i386)
netams-3.4.5_1
squid-3.1.14 (также пробовал с 3.0.25_4)
8 igb iface
4 msk iface
Конфиг нетамса:
Код:
# cat netams.conf
#NeTAMS 3.4.5 (3490.1) Tue 09 Aug 2011 08:37:32 +0400
#configuration built Fri Aug 12 18:00:33 2011
#begin
#global variables configuration
debug none
language ru
user oid 07C5E7 name admin real-name … all
user oid 0750B6 name nobody real-name … all
#services configuration
service server 0
login local
listen 20001
max-conn 6
service processor
lookup-delay 60
flow-lifetime 180
policy oid 0C09DF name ip_all target proto ip
policy oid 07332D name www target proto tcp port 21 80 81 443 8080 8081 3128
policy oid 088C41 name mail target proto tcp port 25 110
policy oid 05F2AE name dns target proto udp port 53
policy oid 01664C name ssh target proto tcp port 22
policy oid 0F90E6 name icmp target proto icmp
policy oid 07B6A4 name proxy target proto tcp port 8080
policy oid 07B5DF name exclude target file /usr/local/etc/netams/exclude_hosts.txt
policy oid 064CF3 name ip target policy-and ip_all !exclude
restrict all pass local pass
auto-units 1 type user naming prefix2 user_
…
unit user oid 0AB566 name user_12.40 ip 192.168.12.40 description «Поликлиника» parent POLIKLINIKA acct-policy ip proxy mail dns
…
service storage 1
type mysql
user root
password psw
dbname netams
accept all
service data-source 0
type ip-traffic
source divert 199
rule 500 «ip from any to any via igb0»
rule 600 «ip from any to any via igb1»
rule 700 «ip from any to any via igb2»
rule 800 «ip from any to any via igb3»
rule 850 «ip from any to any via igb4»
rule 860 «ip from any to any via igb5»
service data-source 1
type libpcap
source msk0
rule 11 «ip»
service quota
soft-treshold 75
policy proxy
block-policy !proxy
notify soft owner
notify hard owner 07C5E7
notify return owner
service scheduler
oid 07371D time 5hour action «save»
service login
relogin no
#end
|
|||||||||||
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее… |
on 07-Мрт-10, 21:07
