Vappujuhlan aikana palvelutiimi päivitti Yitaobangin verkkosivuston palvelinympäristön PHP5.3:sta PHP5.6:een, ja onnistuneen päivityksen jälkeen palvelimen suoritin nostettiin yli 90 %:iin, mikä on pysynyt korkeana. Tarkista palvelin ja huomaa, että useat PHP-FPM-prosessit aiheuttavat prosessorin kuormituksen liian korkeaksi, jolloin verkkosivustolle ei pääse normaalisti käsiksi. Palvelinympäristön ja PHP-version uudelleenasennus useaan kertaan, ja edes PHP:n vaihtaminen HHVM:ään ei ratkaise korkean suorittimen kuormituksen ongelmaa.
E-Taobang-palvelin toimintaprosessi (palveluarkkitehtuurin kaavio): Käyttäjäasiakas → Verkkotunnuksen resoluutio → Baidu Cloud Acceleration Node (CDN/välimuisti/anti-DDOS/CC-hyökkäykset) → Alibaba Cloud Shield -solmu (CC/DDOS/WAF-hyökkäykset vastaan) → ECS-lähdepalvelin (CSS, JS ja kuvat CDN:n harhautusta varten), ja Alibaba Cloud Cloud Shieldillä ei ole hyökkäystietoja, joten hyökkäys voidaan täysin sulkea pois.
Kun katson nginx-lokeja, php-fpm -lokeja ja hitaita lokeja, ei ole poikkeavia tekijöitä, ja näen useita TIME_WAIT-tietoja netstat -n -komennosta, joka johtuu IP-segmentistä 100.97.x.x (viimeinen IP-segmentti on Alibaba Cloud SLB -kuuntelupalvelun IP-osoite).
Ilman sen pidempiä puheita puhutaanpa tarkemmasta ratkaisusta, jonka Yitao Gangin (V Station Power) ammattimainen käyttö- ja huoltotiimi hoiti lopulta, ja lopputuloksena SLB:n palveluvalvonta-asetuksista aiheutunut suorittimen kuormitus oli liian suuri. Alkuperäinen SLB-palvelu kuuntelee HTTP-protokollan porttia 80, ja http-protokollan terveystarkastus lähettää säännöllisesti HTTP-pyyntöjä useilta päiltä, mikä johtaa jatkuvaan pääsyyn HTTP:n lukemiseen, mikä johtaa php-fpm:ään ja CPU:n kuormituksen yli 90 % pitkäksi aikaa, ja CPU:n kuormituksen käyttökiintiö riippuu ECS:n konfiguraatiosta. Kun terveystarkastuspalvelu vaihdetaan, prosessorin käyttö menee pois päältä.
Jos tämä tilanne tapahtuu myös, muuta SLB-palvelun kuuntelun terveystarkastuskonfiguraatio HTTP-protokollasta 80 TCP-protokollaan 80 seuraavasti:
|