Jump to content
Калькуляторы

Периодически зависает сетевой интерфейс

Есть ПК под Debian 7 x64:

# uname -a
Linux srv-test 3.14-0.bpo.1-amd64 #1 SMP Debian 3.14.5-1~bpo70+1 (2014-06-05) x86_64 GNU/Linux

# cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 60
model name      : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
stepping        : 3
microcode       : 0x10
cpu MHz         : 830.875
cache size      : 8192 KB
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm 
pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq 
dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx 
f16c rdrand lahf_lm abm ida arat xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep 
bmi2 erms invpcid rtm
bogomips        : 6784.16
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:
... (8 ядер)

 

Чипсет Intel Q87, материнская плата GigaByte Q87M-D2H, сетевая плата Intel (какая конкретно — не нашел).

Сетевая плата подключена в транковый порт коммутатора, созданы сабинтерфейсы:

# cat /etc/network/interfaces 
auto lo eth0 eth1 eth1.20 eth1.100 eth1.900 eth1.390
iface lo inet loopback

# Primary trunk interface
iface eth1 inet manual
pre-up    ifconfig $IFACE up
post-down ifconfig $IFACE down

# intranet
iface eth1.20 inet static
address 10.1.128.19
netmask 255.255.255.0
up   route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.1.128.250
down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.1.128.250

# internet
iface eth1.100 inet static
address xxx.xxx.124.99
netmask 255.255.255.128
up   route add default gw xxx.xxx.124.126
down route del default gw xxx.xxx.124.126

# medianet
iface eth1.390 inet static
address 10.1.101.201
netmask 255.255.255.0

# hotspot
iface eth1.900 inet static
address 10.10.0.250
netmask 255.255.0.0

 

На интерфейсе eth1.900 работает DHCP, DNS, на нем раздается интернет (NAT через iptables).

Это сервер под хотспот UniFi, обслуживает полсотни точек и несколько десятков/сотен пользователей.

Сервер временный (на базе обычной рабочей станции), позже будет миграция на более подходящий сервер.

 

И вот с этим сервером есть две проблемы, которые никак не удается решить.

Уж не знаю, с чем они связаны и связаны ли между собой.

 

1. Время от времени сервер «подвисает» ненадолго (обычно 5-10 секунд). Для пользователей хотспота это не очень заметно — просто задержка в загрузке страницы, иногда браузер отображает «Сервер не найден». Дело не в большой нагрузке (что CPU, что сетевые интерфейсы нагружены менее 5-10%), но причину найти не удалось. Подвисает не конкретный саб-интерфейс eth1.900, а именно сервер целиком — если я в этот момент что-то делал по SSH (подключившись на eth1.20) или пинговал сервер, то в течении нескольких секунд сервер не отвечает. Подвисания случаются достаточно часто — в течении часа один-два раза минимум. Смотрел дамп трафика, так много arp-ов, много оборванных и битых пакетов (все-таки хотспот), но не вижу, почему это должно так сказываться на сервере.

 

2. Иногда на сервере сеть вообще отваливается, не работает вообще ни один интерфейс. Локально он работает, но ifdown/ifup не помогает, только перезагрузка.

В консоль при этом выдается большая портянка примерно с такими строками:

[599046.862046] e1000e 0000:00:19.0 eth1: Detected Hardware Unit Hang:
[599046.862046]   TDH                  <0>
[599046.862046]   TDT                  <9>
[599046.862046]   next_to_use          <9>
[599046.862046]   next_to_clean        <0>
[599046.862046] buffer_info[next_to_clean]:
[599046.862046]   time_stamp           <108eb08ec>
[599046.862046]   next_to_watch        <0>
[599046.862046]   jiffies              <108eb10ab>
[599046.862046]   next_to_watch.status <0>
[599046.862046] MAC Status             <80083>
[599046.862046] PHY Status             <796d>
[599046.862046] PHY 1000BASE-T Status  <3c00>
[599046.862046] PHY Extended Status    <3000>
[599046.862046] PCI Status             <10>

иногда разбавляемое таким:

[599076.874673] e1000e 0000:00:19.0 eth1: Detected Hardware Unit Hang:
[599076.874673]   TDH                  <0>
[599076.874673]   TDT                  <7>
[599076.874673]   next_to_use          <7>
[599076.874673]   next_to_clean        <0>
[599076.874673] buffer_info[next_to_clean]:
[599076.874673]   time_stamp           <108eb240e>
[599076.874673]   next_to_watch        <0>
[599076.874673]   jiffies              <108eb2df7>
[599076.874673]   next_to_watch.status <0>
[599076.874673] MAC Status             <80083>
[599076.874673] PHY Status             <796d>
[599076.874673] PHY 1000BASE-T Status  <3c00>
[599076.874673] PHY Extended Status    <3000>
[599076.874673] PCI Status             <10>
[599076.894163] e1000e 0000:00:19.0 eth1: Reset adapter unexpectedly
[599078.764206] INPUT DROP: IN=eth0 OUT= MAC=01:00:5e:00:00:01:00:24:c3:df:26:80:08:00 SRC=10.1.255.100 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=29993 PROTO=2 
[599080.673456] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[599082.881786] e1000e 0000:00:19.0 eth1: Detected Hardware Unit Hang:
[599082.881786]   TDH                  <0>
[599082.881786]   TDT                  <6>
[599082.881786]   next_to_use          <6>
[599082.881786]   next_to_clean        <0>
[599082.881786] buffer_info[next_to_clean]:
[599082.881786]   time_stamp           <108eb31b8>
[599082.881786]   next_to_watch        <0>
[599082.881786]   jiffies              <108eb33d4>
[599082.881786]   next_to_watch.status <0>
[599082.881786] MAC Status             <80083>
[599082.881786] PHY Status             <796d>
[599082.881786] PHY 1000BASE-T Status  <3c00>
[599082.881786] PHY Extended Status    <3000>
[599082.881786] PCI Status             <10>

 

Что интересно — после перезагрузки в dmesg и в логах этого ничего я не нахожу.

 

Что это?

Аппаратный глюк, глюк драйвера, неправильная конфигурация?

Share this post


Link to post
Share on other sites

Аппаратный глюк, поставьте отдельную сетевку.

У меня так шутит вполне приличная серверная мать supermicro с бортовыми интелами(82573 вроде), вторая точно такая же работает как часы.

Share this post


Link to post
Share on other sites

Не факт, что полностью аппаратный глюк.

 

Во-первых, покажите вывод lspci, дабы опознать сетевушки.

 

Во-вторых, попробовать поставить драйвера поновее. В changelog'е модуля e1000e встречал когда-то упоминание о hardrware hang, но подробностей не помню.

 

 

Share this post


Link to post
Share on other sites

# lspci
00:00.0 Host bridge: Intel Corporation Haswell DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Haswell Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Haswell HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation Lynx Point USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation Lynx Point MEI Controller #1 (rev 04)
00:16.3 Serial controller: Intel Corporation Lynx Point KT Controller (rev 04)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 04)
00:1a.0 USB controller: Intel Corporation Lynx Point USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation Lynx Point High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Lynx Point PCI Express Root Port #1 (rev d4)
00:1c.1 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d4)
00:1d.0 USB controller: Intel Corporation Lynx Point USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Lynx Point LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation Lynx Point 6-port SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation Lynx Point SMBus Controller (rev 04)
02:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41)
03:00.0 Ethernet controller: D-Link System Inc DGE-528T Gigabit Ethernet Adapter (rev 10)

D-Link - это eth0.

Share this post


Link to post
Share on other sites

Ну уж что есть.

Это обычный офисный комп, просто сейчас он временно работает контроллером хотспота и интернет-шлюзом.

Если я поменяю местами D-Link и Intel, это может помочь? Или DGE-528T ничем не лучше?

Share this post


Link to post
Share on other sites

Не лучше но может быть не глючной. Обычный гигабитный реалтек. Несколько сот мегабит прожует.

 

А так - да, обновить дрова, не поможет - ставить более другую сетевуху.

Share this post


Link to post
Share on other sites

У меня I217V работает нормально. И судя по описанию, I217V от I217LM отличается совершенно незначительно по функционалу (при использовании ПК в качестве роутера).

Share this post


Link to post
Share on other sites

Вообщем можно сказать, что причина была в сетевой.

С момента, когда поменял сетевые платы, описанных проблем не было ни разу.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.