Maija dienas brīvdienās servisa komanda jaunināja Yitaobang vietnes servera vidi no PHP5.3 uz PHP5.6, un pēc veiksmīgas jaunināšanas servera CPU tika uzspridzināts līdz vairāk nekā 90%, kas ir saglabājies augsts. Pārbaudiet serveri un konstatējiet, ka vairāki PHP-FPM procesi izraisa pārāk lielu CPU slodzi, kā rezultātā vietnei nevar piekļūt normāli. Servera vides un PHP versijas atkārtota instalēšana vairākas reizes un pat PHP maiņa uz HHVM nevar atrisināt augstas CPU slodzes problēmu.
E-Taobang servera darbības process (pakalpojuma arhitektūras diagramma): Lietotāja klienta → domēna nosaukuma izšķirtspēja → Baidu mākoņa paātrināšanas mezgls (CDN / kešatmiņa / anti-DDOS / CC uzbrukumi) → Alibaba Cloud Shield mezgls (anti-CC / DDOS / WAF uzbrukumi) → ECS avota serveris (CSS, JS un attēli CDN novirzīšanai), un Alibaba Cloud Cloud Shield nav nekādas uzbrukuma informācijas, tāpēc to var pilnībā izslēgt kā uzbrukumu.
Aplūkojot nginx žurnālus, php-fpm žurnālus un lēnos žurnālus, nav neparastu faktoru, un es redzu vairākas TIME_WAIT informāciju no komandas netstat -n, ko izraisa 100.97.x.x IP segments (pēdējais IP segments ir Alibaba Cloud SLB klausīšanās pakalpojuma IP adrese).
Bez papildu kavēšanās runāsim par konkrēto risinājumu, ar kuru beidzot tika galā Yitao Gang (V Station Power) profesionālā ekspluatācijas un apkopes komanda, un gala rezultāts bija tāds, ka CPU slodze, ko izraisīja SLB pakalpojumu uzraudzības iestatījumi, bija pārāk augsta. Oriģinālais SLB pakalpojums klausās HTTP protokola portu 80, un http protokola veselības pārbaude regulāri nosūtīs http pieprasījumus no vairākām galvām, kā rezultātā tiek nodrošināta nepārtraukta piekļuve HTTP lasīšanai, kā rezultātā php-fpm izraisa CPU slodzi ilgāku laiku sasniegt vairāk nekā 90%, un konkrētā CPU slodzes izmantošanas kvota ir atkarīga no ECS konfigurācijas. Pēc veselības pārbaudes pakalpojuma maiņas CPU lietojums tiek izslēgts bezsaistē.
Ja rodas arī šāda situācija, mainiet SLB pakalpojuma klausīšanās darbspējas pārbaudes konfigurāciju no HTTP protokola 80 uz TCP protokola 80 konfigurāciju šādi:
|