
У меня есть сервер Linux, который начал вести себя немного странно...
Во-первых, ящик используется не в полную силу. Это сервер базы данных с очень низкой нагрузкой. Я поставлю vmstat ниже и выше...
- Я использую CentOS 5.4.
- Этот сервер работает нормально уже несколько недель.
- Он защищен брандмауэром, маловероятно, что его взломали (chkrootkit соглашается).
- Нагрузка действительно низкая.
- У меня на сервере установлен гигабитный коммутатор.
- Ни с одним другим сервером у меня такой проблемы нет.
- У меня настроен удаленный системный журнал на другом компьютере, и он не отображает никаких соответствующих ошибок.
Итак, когда я подключаюсь к компьютеру по ssh (putty), и я некоторое время не заходил на него, putty немедленно выдает ошибку «сброса сетевого подключения».
Иногда меня просто выкидывает (или пропадает сеть)
постоянный поток пингов теперь показывает прерывание.
--- vdbsrv1 ping statistics ---
80620 packets transmitted, 80619 received, 0% packet loss, time 23838ms
rtt min/avg/max/mdev = 0.234/0.273/1.741/0.043 ms, ipg/ewma 0.295/0.297 ms
SQL-запросы («Select 1») к полю занимают около 5 секунд, хотя SQL сообщает о времени выполнения около 0,04 секунды, так что остальные 4,96 секунды остаются загадкой
У кого-нибудь есть идеи?
top - 11:49:28 up 12 days, 17:05, 4 users, load average: 0.00, 0.03, 0.01
Tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.0%sy, 0.0%ni, 99.3%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8174028k total, 8074924k used, 99104k free, 4558300k buffers
Swap: 19464184k total, 4k used, 19464180k free, 2306952k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 10348 692 576 S 0.0 0.0 0:02.13 init
root@dbsrv1# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 4 98980 4558300 2306992 0 0 1 13 3 2 0 0 99 0 0
решение1
Вам нужно сделать как минимум следующее, чтобы отладить это:
Используя CLI ssh-клиент вместо putty, запустите 'ssh -v' на сервере. Посмотрите, есть ли у вас какие-либо проблемы, и какие ошибки сообщает сеанс ssh.
Используя wireshark или tcpdump, получите захват пакетов сеанса. Вероятно, вы получаете RST.
По запросу Дэвида, вы пробовали зайти на сервер с другого клиента? Если нет, возможно, у клиента проблемы с сетью.
Если вы проходите через брандмауэр, у него будут свои собственные тайм-ауты сеансов, как предположил Кайл выше — настройка 'keepalive' является хорошим обходным путем, если это проблема. Если проблема возникает с новыми сеансами, pcap будет наиболее целесообразным способом устранения неполадок.
решение2
Не уверен, что я полностью понимаю:
«Поэтому, когда я подключаюсь к компьютеру по ssh(putty), и я некоторое время не захожу на него, putty тут же выдает ошибку «сброса сетевого подключения».
То есть, если вы не вошли в систему, а затем снова вошли в систему, вас сразу же выкинет?
Если это не так, и он просто истекает, если вы неактивны. Вы можете просто установить keepalive в putty.
Вы также можете просмотреть /var/log
журналы SSH и посмотреть, есть ли там какая-либо информация.
решение3
Это было странно...
Веб-сервер был клоном другого веб-сервера от VMware Server.
Оригинал был выключен. Скопирован на новый сервер. Новая машина поднята с новым именем и новым IP. Старая машина поднята снова.
Проблема в этом сценарии в том, что MAC-адрес на обоих устройствах был одинаковым, что приводило к очень странному поведению сети.