Під час Першотравня команда сервісу оновила серверне середовище сайту Yitaobang з PHP5.3 до PHP5.6, і після успішного оновлення процесор сервера збільшився до понад 90%, що залишалося високим. Перевірте сервер і виявите, що кілька процесів PHP-FPM спричиняють надто велике навантаження на процесор, через що сайт неможливо нормально відвідати. Багаторазове перевстановлення серверного середовища та версії PHP, а також зміна PHP на HHVM не вирішує проблему високого навантаження на процесор.
Операційний процес сервера E-Taobang (діаграма архітектури сервісу): User client → розв'язок доменних імен → Baidu Cloud Acceleration Node (CDN/кешування/анти-DDOS/CC атаки) → вузол Alibaba Cloud Shield (анти-CC/DDOS/WAF атаки) → ECS-сервер-джерело (CSS, JS та образи для CDN-диверсії), а Alibaba Cloud Shield не містить інформації про атаку, тому це можна повністю виключити як атаку.
Дивлячись на журнали nginx, logs php-fpm та повільні логи, не виявлено аномальних факторів, і я бачу кілька TIME_WAIT інформації з команди netstat -n, яка виникає через IP-сегмент 100.97.x.x (останній IP-сегмент — IP-адреса сервісу прослуховування Alibaba Cloud SLB).
Без зайвих слів, давайте поговоримо про конкретне рішення, яке врешті-решт виконала професійна команда експлуатації та обслуговування Yitao Gang (V Station Power), і в результаті навантаження на процесор, спричинене налаштуваннями моніторингу сервісу SLB, було надто високим. Оригінальний сервіс SLB слухає порт 80 протоколу HTTP, і перевірка здоров'я протоколу HTTP регулярно надсилає http-запити з кількох головок, що забезпечує безперервний доступ до читання HTTP, що призводить до того, що php-fpm призводить до того, що навантаження на процесор перевищує 90% протягом тривалого часу, а конкретна квота завантаження CPU залежить від конфігурації ECS. Після зміни сервісу перевірки здоров'я завантаження процесора вимикається.
Якщо така ситуація трапляється, змініть конфігурацію перевірки здоров'я прослуховування SLB сервісу з протоколу HTTP 80 на конфігурацію протоколу TCP 80 наступним чином:
|