Under första maj-helgen uppgraderade serviceteamet servermiljön på Yitaobangs webbplats från 5,3 PHP till 5,6 PHP, och efter den lyckade uppgraderingen blåstes serverns CPU upp till mer än 90 %, vilket har förblivit högt. Kontrollera servern och se att flera PHP-FPM-processer gör att CPU-belastningen blir för hög, vilket gör att webbplatsen inte kan nås normalt. Att installera om servermiljön och PHP-versionen flera gånger, och till och med byta PHP till HHVM, kan inte lösa problemet med hög CPU-belastning.
E-Taobang-serverdriftprocess (tjänstearkitekturdiagram): Användarklient → domännamnsupplösning → Baidu Cloud Acceleration Node (CDN/caching/anti-DDOS/CC-attacker) → Alibaba Cloud Shield-nod (anti-CC/DDOS/WAF-attacker) → ECS-källserver (CSS, JS och bilder för CDN-omdirigering), och Alibaba Cloud Cloud Shield har ingen attackinformation, så det kan helt uteslutas som en attack.
När jag tittar på nginx-loggar, php-fpm-loggar och långsamma loggar finns det inga onormala faktorer, och jag ser flera TIME_WAIT information från netstat -n-kommandot, vilket orsakas av IP-segmentet i 100.97.x.x (det sista IP-segmentet är IP-adressen till Alibaba Cloud SLB-lyssningstjänsten).
Utan vidare dröjsmål, låt oss prata om den specifika lösningen, som slutligen hanterades av det professionella drift- och underhållsteamet vid Yitao Gang (V Station Power), och slutresultatet blev att CPU-belastningen orsakad av SLB:ns serviceövervakningsinställningar blev för hög. Den ursprungliga SLB-tjänsten lyssnar på HTTP-protokollport 80, och HTTP-protokollets hälsokontroll skickar regelbundet http-förfrågningar från flera huvuden, vilket resulterar i kontinuerlig åtkomst för att läsa HTTP, vilket resulterar i php-fpm som gör att CPU-belastningen överstiger 90 % under lång tid, och den specifika CPU-belastningskvoten beror på konfigurationen av ECS. Efter att ha bytt hälsokontrolltjänst går CPU-användningen offline.
Om denna situation också inträffar, ändra hälsokontrollkonfigurationen för SLB-tjänstlyssning från HTTP-protokoll 80 till TCP-protokoll 80-konfiguration enligt följande:
|