Mai püha ajal uuendas teenindusmeeskond Yitaobangi veebilehe serverikeskkonda PHP5.3-lt PHP5.6-le ning pärast edukat uuendust paisutati serveri protsessor üle 90%, mis on jäänud kõrgeks. Kontrolli serverit ja leia, et mitmed PHP-FPM protsessid põhjustavad CPU koormuse liiga kõrge, mistõttu veebilehele ei pääse tavapäraselt ligi. Serverikeskkonna ja PHP versiooni mitu korda uuesti paigaldamine ning isegi PHP HHVM-iks muutmine ei lahenda kõrge protsessorikoormuse probleemi.
E-Taobangi serveri tööprotsess (teenuse arhitektuuri skeem): Kasutajaklient → Domeeninimede lahendamine → Baidu Cloud Acceleration Node (CDN/vahemällu salvestamine/DDOS/CC rünnakud) → Alibaba Cloud Shield sõlm (CC/DDOS/WAF rünnakute vastu) → ECS lähteserver (CSS, JS ja pildid CDN-i kõrvalejuhtimiseks), ning Alibaba Cloud Cloud Shieldil puudub ründeinfo, seega võib selle rünnakuna täielikult välistada.
Vaadates nginx-logisid, php-fpm logisid ja aeglasi logisid, ei ole mingeid ebanormaalseid tegureid ning näen mitmeid TIME_WAIT infot netstat -n käsust, mis on põhjustatud IP-segmendist 100.97.x.x (viimane IP-segment on Alibaba Cloud SLB kuulamisteenuse IP-aadress).
Ilma pikema jututa räägime konkreetsest lahendusest, mille lõpuks lahendas Yitao Gangi (V Station Power) professionaalne operatsiooni- ja hooldusmeeskond ning lõpptulemusena oli SLB teenuse jälgimise seadete põhjustatud CPU koormus liiga suur. Algne SLB teenus kuulab HTTP protokolli porti 80 ning HTTP protokolli tervisekontroll saadab regulaarselt HTTP-päringuid mitmest peast, mis tagab pideva ligipääsu HTTP lugemisele, mis põhjustab php-fpm protsessori koormuse pikka aega üle 90% ning konkreetne CPU koormuse kasutuskvoot sõltub ECS-i konfiguratsioonist. Pärast tervisekontrolli teenuse muutmist läheb protsessori kasutus võrguühenduseta.
Kui see olukord samuti esineb, muuda SLB teenuse kuulamise tervisekontrolli konfiguratsioon HTTP protokollilt 80 TCP protokolli 80 konfiguratsioonile järgmiselt:
|