@hellname

Проблема с сетью на нескольких одинаковых серверах. В чем может быть проблема?

Всем привет. Столкнулся с проблемой, и причину этому я никак не могу найти уже несколько недель. Далее, я опишу архитектуру:
Есть 4 фронта (linux, ubuntu-12.04, ядро 3.2.0-76), это серверы с 2xXeon E-5, 16GB RAM и 1гигабитным портом который смотрит в VLAN, на этих фронтах работает веб-приложение на php, приложение хранит некоторые данные в memcache (это отдельный выделенный сервер с 1xXeon E-3, 16GB RAM+ 1gpbs vlan), так как приложение кластеринованное и нагрузка на каждый фронт всегда одинаковая, то понять причину проблемы я тем более не могу. Суть проблемы:
На 3 из 4 серверов появляются ошибки Server memcached_server (tcp 11211) failed with: Connection timed out (110), из-за этого соответственно падает сессия пользователя (это может быть сессия авторизации, либо сессия хранения кук) Самое интересное что серверы идентичны друг другу по железу, настройкам, коду, сервисам и версиям пакетов.
net.core.somaxconn      = 65000 
net.core.netdev_max_backlog   = 3000 
net.core.rmem_default      = 524288 
net.core.wmem_default      = 393216 
net.core.rmem_max      = 16777216 
net.core.wmem_max      = 16777216 
net.unix.max_dgram_qlen      = 256 
net.ipv4.ip_forward            = 0 
net.ipv4.tcp_rmem            = 4096 87380 16777216 
net.ipv4.tcp_wmem            = 4096 65536 16777216 
net.ipv4.tcp_congestion_control         = htcp 
net.ipv4.tcp_mtu_probing         = 1 
net.ipv4.tcp_timestamps            = 1 
net.ipv4.tcp_sack            = 1 
net.ipv4.tcp_fack            = 1 
net.ipv4.tcp_dsack            = 1 
net.ipv4.tcp_syncookies            = 1 
net.ipv4.tcp_max_syn_backlog         = 16384 
net.ipv4.tcp_synack_retries         = 5 
net.ipv4.tcp_abort_on_overflow         = 0 
net.ipv4.icmp_echo_ignore_broadcasts      = 1 
net.ipv4.icmp_ignore_bogus_error_responses   = 0 
net.ipv4.neigh.default.gc_thresh1      = 512 
net.ipv4.neigh.default.gc_thresh2      = 1024 
net.ipv4.neigh.default.gc_thresh3      = 2048 
net.ipv4.conf.all.rp_filter         = 1 
net.ipv4.conf.default.rp_filter         = 1 
net.ipv4.conf.all.accept_redirects      = 0 
net.ipv4.conf.default.accept_redirects      = 0 
net.ipv4.conf.all.send_redirects      = 1 
net.ipv4.conf.default.send_redirects      = 1 
net.ipv4.conf.all.accept_source_route      = 0 
net.ipv4.conf.default.accept_source_route   = 0 
net.ipv4.conf.all.proxy_arp         = 1 
net.ipv4.conf.default.proxy_arp       = 1 
net.netfilter.nf_conntrack_max         = 1048576 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=1 
net.ipv4.tcp_fin_timeout=10 
net.ipv4.ip_local_port_range="16384 65534" 
net.ipv4.tcp_tw_reuse=1 
net.netfilter.nf_conntrack_tcp_timeout_established=600 
net.ipv4.tcp_slow_start_after_idle=0 
echo "131072" > /sys/module/nf_conntrack/parameters/hashsize 
ifconfig eth1 txqueuelen 10000


cat /etc/rc.local 
#!/bin/sh -e 
# 
# rc.local 
# 
# This script is executed at the end of each multiuser runlevel. 
# Make sure that the script will "exit 0" on success or any other 
# value on error. 
# 
# In order to enable or disable this script just change the execution 
# bits. 
# 
# By default this script does nothing. 

# RX/TX Backlog phy 
ETHTOOL="/sbin/ethtool" 

$ETHTOOL -G eth0 rx 4096 tx 4096 
$ETHTOOL -G eth1 rx 4096 tx 4096 
$ETHTOOL -G eth2 rx 4096 tx 4096 
$ETHTOOL -G eth3 rx 4096 tx 4096


ethtool -i eth1 
driver: igb 
version: 3.2.10-k 
firmware-version: 1.5-9 
bus-info: 0000:02:00.1 
supports-statistics: yes 
supports-test: yes 
supports-eeprom-access: yes 
supports-register-dump: yes 




ethtool eth1 
Settings for eth1: 
   Supported ports: [ TP ] 
   Supported link modes:   10baseT/Half 10baseT/Full 
                           100baseT/Half 100baseT/Full 
                           1000baseT/Full 
   Supported pause frame use: No 
   Supports auto-negotiation: Yes 
   Advertised link modes:  10baseT/Half 10baseT/Full 
                           100baseT/Half 100baseT/Full 
                           1000baseT/Full 
   Advertised pause frame use: No 
   Advertised auto-negotiation: Yes 
   Speed: 1000Mb/s 
   Duplex: Full 
   Port: Twisted Pair 
   PHYAD: 1 
   Transceiver: internal 
   Auto-negotiation: on 
   MDI-X: Unknown 
   Supports Wake-on: pumbg 
   Wake-on: g 
   Current message level: 0x00000003 (3) 
                drv probe 
   Link detected: yes 


ethtool -S eth1 | grep err 
     rx_crc_errors: 0 
     rx_missed_errors: 1 
     tx_aborted_errors: 0 
     tx_carrier_errors: 0 
     tx_window_errors: 0 
     tx_deferred_ok: 0 
     rx_long_length_errors: 0 
     rx_short_length_errors: 0 
     rx_align_errors: 0 
     rx_errors: 0 
     tx_errors: 0 
     rx_length_errors: 0 
     rx_over_errors: 0 
     rx_frame_errors: 0 
     rx_fifo_errors: 1 
     tx_fifo_errors: 0 
     tx_heartbeat_errors: 0 
     rx_queue_0_csum_err: 0 
     rx_queue_1_csum_err: 0 
     rx_queue_2_csum_err: 0 
     rx_queue_3_csum_err: 0 
     rx_queue_4_csum_err: 0 
     rx_queue_5_csum_err: 0 
     rx_queue_6_csum_err: 0 
     rx_queue_7_csum_err: 0


memcached stat:
STAT listen_disabled_num 0 
STAT curr_connections 59

Все серверы общаются между собой по гигабитному vlan и трафик внутри него не превышает 50mbps, ошибка возникает только на 3 серверах, на 4 никаких ошибок нет (по крайней мере за эту неделю), на сервере работает nginx+php5-fpm с модулем memcache.
Буду признателен за советы и за любую помощь.
Спасибо.
  • Вопрос задан
  • 589 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ShamblerR
А с чего вы решили что Server memcached_server (tcp 11211) failed with: Connection timed out (110), вообще с сетью связано ?
да я вам с десяток примеров приведу когда он так падает из за настроек сервера и кода
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы