Gegužės pirmosios atostogų metu aptarnavimo komanda atnaujino "Yitaobang" svetainės serverio aplinką nuo PHP5.3 iki PHP5.6, o po sėkmingo atnaujinimo serverio procesorius buvo išpūstas iki daugiau nei 90%, o tai išliko aukštas. Patikrinkite serverį ir pastebėkite, kad dėl kelių PHP-FPM procesų procesoriaus apkrova yra per didelė, todėl svetainės negalima normaliai pasiekti. Kelis kartus iš naujo įdiegus serverio aplinką ir PHP versiją ir net pakeitus PHP į HHVM negalima išspręsti didelės procesoriaus apkrovos problemos.
"E-Taobang" serverio veikimo procesas (paslaugos architektūros diagrama): Vartotojo kliento → domeno vardo skiriamoji geba → "Baidu Cloud Acceleration Node" (CDN/talpyklos/anti-DDOS/CC atakos) →Alibaba Cloud Shield" mazgas (anti-CC/DDOS/WAF atakos) → ECS šaltinio serveris (CSS, JS ir CDN nukreipimo vaizdai), o "Alibaba Cloud Cloud Shield" neturi jokios informacijos apie ataką, todėl ją galima visiškai atmesti kaip ataką.
Žvelgiant į nginx žurnalus, php-fpm žurnalus ir lėtus žurnalus, nėra nenormalių veiksnių, o iš komandos netstat -n matau daugybę TIME_WAIT informacijos, kurią sukelia 100.97.x.x IP segmentas (paskutinis IP segmentas yra "Alibaba Cloud SLB" klausymosi paslaugos IP adresas).
Nieko nelaukdami pakalbėkime apie konkretų sprendimą, kurį galiausiai sutvarkė profesionali "Yitao Gang" (V Station Power) eksploatavimo ir priežiūros komanda, o galutinis rezultatas buvo tas, kad procesoriaus apkrova, kurią sukėlė SLB paslaugų stebėjimo nustatymai, buvo per didelė. Originali SLB paslauga klausosi HTTP protokolo prievado 80, o http protokolo būklės patikrinimas reguliariai siunčia http užklausas iš kelių galvučių, todėl nuolatinė prieiga prie HTTP skaitymo, todėl php-fpm sukelia procesoriaus apkrovą pasiekti daugiau nei 90% ilgą laiką, o konkreti procesoriaus apkrovos naudojimo kvota priklauso nuo ECS konfigūracijos. Pakeitus būklės patikrinimo paslaugą, procesoriaus naudojimas neprisijungia.
Jei taip pat atsitinka tokia situacija, pakeiskite SLB paslaugos klausymosi būklės patikrinimo konfigūraciją iš HTTP protokolo 80 į TCP protokolo 80 konfigūraciją taip:
|