Med praznikom prvega maja je servisna ekipa nadgradila strežniško okolje spletne strani Yitaobang s 5,3 PHP na 5,6 PHP, po uspešni nadgradnji pa je bil strežniški procesor poškodovan na več kot 90 %, kar je ostalo visoko. Preverite strežnik in ugotovite, da več PHP-FPM procesov povzroča preveliko obremenitev procesorja, zaradi česar spletne strani ni mogoče normalno dostopati. Večkratna ponovna namestitev strežniškega okolja in PHP različice ter celo menjava PHP v HHVM ne more rešiti problema visoke obremenitve procesorja.
Postopek delovanja strežnika E-Taobang (diagram arhitekture storitve): Uporabniški odjemalec → reševanje domen → Baidu Cloud Acceleration Node (CDN/predpomnjenje/anti-DDOS/CC napadi) → Alibaba Cloud Shield vozlišče (anti-CC/DDOS/WAF napadi) → ECS izvorni strežnik (CSS, JS in slike za CDN preusmeritev), Alibaba Cloud Cloud Shield pa nima nobenih informacij o napadu, zato ga je mogoče popolnoma izključiti kot napad.
Če pogledam nginx dnevnike, php-fpm dnevnike in počasne dnevnike, ni nenavadnih dejavnikov, vidim več TIME_WAIT informacij iz ukaza netstat -n, ki ga povzroča IP segment 100.97.x.x (zadnji IP segment je IP naslov Alibaba Cloud SLB poslušalne storitve).
Brez nadaljnjega odlašanja se pogovorimo o specifični rešitvi, ki jo je na koncu obravnavala profesionalna ekipa za upravljanje in vzdrževanje Yitao Gang (V Station Power), in končni rezultat je bil, da je bila obremenitev procesorja, ki so jo povzročale nastavitve nadzora storitev SLB, prevelika. Izvirna storitev SLB posluša HTTP protokolni port 80, preverjanje zdravja HTTP protokola pa redno pošilja HTTP zahteve iz več glav, kar omogoča neprekinjen dostop do branja HTTP, kar povzroči, da php-fpm povzroči, da obremenitev CPU presega 90 % za daljše obdobje, specifična kvota obremenitve CPU pa je odvisna od konfiguracije ECS. Po spremembi storitve preverjanja stanja procesorja izklopi porabo.
Če se pojavi tudi ta situacija, spremenite konfiguracijo preverjanja stanja poslušanja SLB storitev iz HTTP protokola 80 v konfiguracijo TCP protokola 80 na naslednji način:
|