Непонятная проблема "неопределенной нагрузки", с которой сталкиваются пользователи
Я надеялся, что, возможно, один из вас, ребята, имеет представление о том, что происходит. Для вашего удобства ниже я кратко изложил проблему, с которой я столкнулся, включая все, что мы пробовали до сих пор.
Краткое изложение проблемы
Краткое содержание
- Иногда некоторые пользователи могут испытывать неограниченную загрузку сайта при переходе на наш домен.
- Хотя эта неопределенная загрузка происходит, другие пользователи в той же сети или за ее пределами смогут получить доступ к сайту без каких-либо проблем.
- Эта проблема, кажется, возникает только (на данный момент), когда есть несколько компьютеров в одной сети с одним общедоступным IP-адресом, соединяющимся с сервером (IP-адрес маршрутизатора). Время от времени одно из этих устройств будет испытывать неопределенную нагрузку
- Эта неопределенная загрузка может происходить в порту SSH (1035) или порте SSL (443). Это может произойти в браузере или терминале.
- Как сказано выше, другие устройства в сети не будут испытывать эту проблему
- Как только пользователь испытывает эту неопределенную нагрузку, любой браузер, который он использует, или ssh не будет работать. Что-то временно мешает им добраться до сервера через любой из открытых портов
- Newrelic и ntop сообщают об отсутствии скачков ЦП, проблем с памятью или HD. На сервере достаточно ресурсов
- Эта проблема воспроизводима и в нашей промежуточной среде
- Однако эту проблему нелегко воспроизвести, она более вероятна, так как все больше людей получают доступ к нашему сайту из одной сети.
Серверное оборудование
- Хостинг: Softlayer (IBM)
- 2 x 2,4 ГГц Intel Xeon-Haswell (E5-2620-V3-HexCore)
- Всего 16 ядер
- 8x8 ГБ, микрон 8 ГБ, DDR4 1Rx4
- SuperMicro X10DRU-i + Материнская плата
- ОС: Ubuntu16.04-64 Минимальный для Bare Metal
Серверные приложения
- Сервер работает под управлением Magento 1.9.3 с использованием php-fpm и nginx.
- Сеансы управляются с использованием memcached
- Другие кэши управляются с помощью Redis
- На сервере запущен эластичный поиск
- Мы используем CDN, размещенный на AWS (CloudFront) с сервером в качестве источника
- Вышеуказанные приложения работают на одном сервере, чтобы уменьшить задержку в сети
- Сервер взаимодействует с сервером Percona MySQL (db1.viyet.com)
- Только порты 80, 443 и 1035 (наш порт ssh) открыты для публики
- Сервер использует IPTables для безопасности
- Мы не используем систему регулирования DDOS, такую как CloudFlare
Что мы попробовали:
- Мы смогли воспроизвести эту проблему в различных сетях (дома, в офисе и т. Д.) С нескольких устройств.
- Мы переключаемся на новый, гораздо более мощный сервер (описанный выше) только для того, чтобы испытать ту же проблему
- Мы увеличили скорость сети сайта и БД со 100 Мбит / с до 1 Гбит / с
- Мы временно отключили следующее, но все еще испытывали проблему: таблицы IP., Упругий поиск, Memcached.
- Когда пользователь испытывает неопределенную проблему загрузки, мы попытались перезапустить / остановить PHP, сбросить кэш redis и сбросить memcached безуспешно
- После миграции на новый сервер и увеличения скорости сети мы обнаружили, что проблема возникает так же часто, однако время ожидания сокращается. Раньше около 2 минут после того, как пользователь столкнулся с проблемой. Теперь это около 1,5 минут
То, что "кажется" происходит Похоже, что что-то временно препятствует доступу к портам, описанным выше, когда много запросов поступают с разных устройств под одним и тем же IP. Это как будто есть ограничение.
Есть ли у вас какие-либо сведения о том, что может быть причиной этого или какие-либо идеи, как добраться до сути этой проблемы?