Назад | Перейти на главную страницу

После обновления до Ubuntu 15.10 с 15.04 веб-серверы EC2 перестают работать

У меня есть множество машин Ubuntu на EC2, работающих в производстве, около 30 из них были обновлены с 15.04 до 15.10. На большинстве машин обновление прошло безупречно и вообще без проблем.

Однако 10 моих веб-серверов сразу после обновления 15.10 начали давать сбой. Что касается того, что именно определяет «сбой», проверки состояния экземпляра не работают, и я больше не могу подключиться к машине по SSH. Фоновые демоны, запущенные в системе, перестают отвечать, и в журналы ничего не записывается. Самые последние записи журнала, которые я вижу на одном компьютере, показывают:

/var/log/syslog:Dec 18 00:28:58 xxx-web-4a dhclient: DHCPREQUEST of 10.xxx.xxx.104 on eth0 to 10.xxx.xxx.1 port 67 (xid=0x616a091d)
/var/log/syslog:Dec 18 00:28:58 xxx-web-4a dhclient: DHCPACK of 10.xxx.xxx.104 from 10.xxx.xxx.1
/var/log/syslog:Dec 18 00:28:58 xxx-web-4a dhclient: bound to 10.xxx.xxx.104 -- renewal in 1640 seconds.

Но мои проверки статуса экземпляра не начинали давать сбой, пока 00:32:00 (когда первая из нескольких проверок не ответила). В течение периода, следующего за указанными выше записями, в журналах нет абсолютно ничего.

Теперь, как я уже сказал, мои ~ 20 других экземпляров 15.10 ни разу не аварийно завершили работу за более чем 6 недель с момента обновления, только этот набор веб-серверов, и все они терпят крах. Итак, чем же отличаются эти машины? На самом деле только две вещи.

  1. Это 15.10 экземпляров с наибольшим трафиком, отправка и получение в среднем около 5-10 Мбит / с, иногда до 30-40.
  2. Это мои единственные экземпляры типа c4.xlarge или m4.xlarge. Изначально все они были c4.xlarge, но я заменил их на m4.xlarge чтобы попытаться изолировать проблему. Кажется, что это реже с m4.xlarge, но я все еще видел около 3 или 4 сбоев в день между 10 веб-серверами. Обычно я наблюдаю сбой каждого экземпляра не реже одного раза в день в случайное время.

Эти экземпляры работают под управлением Apache 2.4.x, mod_php 5.6.11 и memcached 1.4.24, но у меня есть другие машины, получающие меньше трафика на экземплярах меньшего типа, которые совершенно стабильны.

Не уверен, связано ли это, но все эти машины периодически видят ifquery segfaults, например:

/var/log/syslog:Dec 17 14:02:05 xxx-web-3a kernel: [   22.592488] ifquery[476]: segfault at 1 ip 0000000000403187 sp 00007ffde8596050 error 4 in ifup[400000+d000]
/var/log/syslog:Dec 17 14:02:05 xxx-web-3a kernel: [   23.593774] ifquery[510]: segfault at 1 ip 0000000000403187 sp 00007ffde6087b90 error 4 in ifup[400000+d000]
/var/log/syslog:Dec 17 14:02:05 xxx-web-3a kernel: [   24.594994] ifquery[531]: segfault at 1 ip 0000000000403187 sp 00007ffe70747a50 error 4 in ifup[400000+d000]
/var/log/syslog:Dec 17 14:04:12 xxx-web-3a kernel: [    2.623024] ifquery[367]: segfault at 1 ip 0000000000403187 sp 00007ffefc980f60 error 4 in ifup[400000+d000]

Одна система, до c4.xlarge -> m4.xlarge миграции, увидел General Protection Fault зарегистрирован один раз в журнале системной консоли, но я не видел этого снова.

Я не вижу этих ошибок на других моих машинах с версией 15.10, которые не дают сбоев.

Все это экземпляры Enhanced Networking с Intel 82599 10G Ethernet, которые, как я подозреваю, могут способствовать возникновению проблемы, но у меня есть другие машины (с гораздо меньшим трафиком) с тем же адаптером, работающим под управлением 15.10, без сбоев.

Кто-нибудь видит подобные проблемы или есть идеи по отладке или исправлению этого? Спасибо!

редактировать

Глядя на журнал консоли, одна из моих часто сбойных систем сообщила об общем сбое защиты прямо перед перезагрузкой:

[171009.844097] general protection fault: 0000 [#1] [ 0.000000] Initializing cgroup subsys cpuset