У меня странная проблема с сервером, который я сижу на своем рабочем месте (он находится за NAT, если это важно). Проблема в том, что в некоторых случаях он становится недоступным, а затем снова появляется снова, обычно в течение нескольких секунд, иногда длящегося до 1 минуты. Не перезагружается, не вылетает. Это просто становится недоступным. В течение этого времени я не могу подключиться к нему по ssh и не могу получить доступ к каким-либо приложениям, работающим на машине (на нем запущено несколько приложений Rails, поэтому они также становятся недоступными). Я проверил dmesg и увидел эти строки -
[ 4.958074] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 5.040476] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 5.175624] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
[ 5.177207] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Пару строк спустя я вижу нечто подобное в отношении сетевых интерфейсов -
[1195777.544167] igb: eth0 NIC Link is Down
[1195780.962943] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Похоже, проблема в сети. / var / log / messages ничего интересного не показывает. Я не знаю, как это отладить. Есть какие-нибудь подсказки относительно того, что это могло быть? И что я здесь должен проверять? Спасибо!
Этот вид проблемы обычно не создает большого количества сообщений журнала. Вы обнаружили два важных сообщения, которые показывают, что интерфейсы идут вниз и вверх. Их можно сгенерировать, отсоединив сетевой кабель и снова подключив его.
Это может быть плохой кабель между сетевой картой и маршрутизатором. Мои первые шаги (выполняемые по одному):
netstat -i
или ifconfig
и проверьте количество ошибок. Обычно они должны быть 0 или однозначными. Большое количество ошибок несущей или кадра может указывать на несоответствие дуплексного режима. Несоответствие дуплексного режима можно проверить, загрузив, а затем загрузив большой файл. Большая разница в скорости, сопровождаемая увеличением количества ошибок, указывает на несоответствие канала. Кабельные модемы обычно имеют разную пропускную способность для загрузки и выгрузки, поэтому для этого теста лучше подходят локальные передачи. Я использую один инструмент: mtr
. Я использую такую команду, как mtr -i 15 -n google.com
для контроля подключения. Рассмотрите возможность использования одного из серверов вашего интернет-провайдера вместо google.com. Его можно запускать в режиме отчета в пакетном режиме. Если проблема связана с вышестоящим сервером, выходные данные должны помочь определить, где возникла проблема.
У BillThor есть несколько отличных предложений. Если ни одно из его решений не решит проблему, возможно, виновато автосогласование (хотя маловероятно). Попробуйте установить скорость и дуплекс соединения (инструкции для RedHat, но другие дистрибутивы похожи)
Отредактируйте / etc / sysconfig / network-scripts / ifcfg-eth0:
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
Затем перезапустите интерфейс:
/etc/init.d/network restart