Rešitve tehnične optimizacije strežnikov. SO Optimizacija strežniške infrastrukture. glavni parametri tehnične optimizacije

Pred kratkim sem prejel prošnjo za pomoč pri nastavitvi namenskega strežnika za vodenje spletne trgovine na 1C-Bitrix. Razlog za zahtevo je počasno delovanje strani.
Ogledali smo si stran - res se nekatere strani naložijo več kot minuto!!! Prva stvar, ki je padla na misel ob ogledu spletnega mesta, je bilo neoptimalno delovanje komponent, ki jih je razvil drug razvijalec. Ampak ne v enakem znesku...

Začetni podatki: Strežnik na Xeon - 2GB pomnilnika, RAID. OS - FreeBSD. BUS - Posel.

No, poskusimo nekako popraviti situacijo ...
Naj takoj rezerviram, da ta članek ni navodila za delo z modulom, ampak le resničen primer uporabe modula. Mogoče bo komu koristilo.

Po reviziji so bile ugotovljene naslednje glavne težave:
1. Na strežnik morate namestiti pospeševalnik PHP
2. Na strani /price/ ima komponenta “nvisions:menu.sections” velike težave - generira se zahteva v bazo podatkov, ki se obdeluje skoraj minuto - to je glavni razlog za dolg čas nalaganja strani. , pa tudi velika obremenitev strežnika.
3. Baza deluje počasi (687 pisnih zahtev na sekundo je zelo malo), težava je lahko v konfiguraciji strežnika. Tabele morate pretvoriti v InnoDB in konfigurirati InnoDB
4. Datotečni sistem ni zelo hiter, to je lahko posledica strojne opreme strežnika (na primer RAID), vendar bi načeloma moralo spletno mesto dobro delovati pri tej hitrosti
5. V predlogi spletnega mesta je težava (obstajajo neobstoječe povezave), potrebno jo je odstraniti - zahteva veliko virov.
6. Na strežniku je treba konfigurirati dvonivojsko arhitekturo (servirati statično vsebino preko nginxa), to bo bistveno zmanjšalo obremenitev strežnika Apache, stabiliziralo porabo pomnilnika med nalaganji in s tem pohitrilo delo in povečalo zanesljivost projekt kot celota.

Analizirajmo podatke iz modula zmogljivosti 1C-Bitrix:

Slika jasno prikazuje težave s strežnikom baz podatkov, najverjetneje nastavitve niso optimalne, ker namenski strežnik.
Tudi število operacij datotek je sumljivo nizko.


Očitne težave s kodo ali komponentami na strani /price/index.php
Sumljivo dolg čas generiranja /bitrix/urlrewrite.php – poglejte še:

Ja, to je vir težav: predloga vsebuje povezavo do neobstoječe slike, to ustvari napako 404 in prisili Apache, da obdela to napako in ustvari polnopravno stran.

Ista težava vpliva na vse strani na spletnem mestu, povezane s problematično predlogo:


In tukaj so problematične komponente na strani:


Komponenta menija ima onemogočeno predpomnjenje.
Povzetek strani:

No, tukaj je hitra analiza. Kako priročen vam modul zmogljivosti pove, kje so težave. Začnimo z odpravljanjem težav:

Dodali smo sliko, do katere je bila povezava, dodali smo samo sliko, in nismo odstranili povezav, ker... bilo je veliko povezav, tudi v komponentah tretjih oseb. Tudi na tej strani smo onemogočili problematično komponento tretje osebe (nsvision:menu.sections), ker njegov namen ni jasen. (po odklopu se zunaj ni nič spremenilo)
rezultat:


Urlrewrite.php se zdaj ne kliče ob vsakem zadetku



Kot lahko vidite, se je hitrost dela povečala za 2-krat (!).

Gremo naprej:
Namestitev eacceleratorja. Tukaj ne bom opisoval, kako se pospeševalnik namesti, ker ... te informacije, če je potrebno, lahko vedno najdete na internetu.







Rezultat po namestitvi eAcceleratorja: Še eno dvakratno povečanje produktivnosti.

Gremo naprej: Optimizacija baze podatkov(prenos v InnoDB in optimizacija nastavitev)


Kot je razvidno iz testa modula zmogljivosti, se je hitrost baze podatkov znatno povečala
Na splošno je celotna zmogljivost po optimizaciji baze podatkov ostala nespremenjena, verjetno zaradi počasnega delovanja datotečnega sistema.

NADGRADNJA:
Priporočila modula zmogljivosti.
Po priporočilih modula onemogočimo parameter "open_basedir", ker strežnik namenjen samo našemu projektu, mislimo, da varnost kot celota ne bo ogrožena.

rezultat:


Rezultat, kot pravijo, je NA VOLJO

Preostane le še prepisovanje “krivih” komponent in projekt bo letel.

Prav tako smo namestili in konfigurirali nginx kot proxy strežnik za Apache. Slik ne dodajam, ker... številke so ostale skoraj nespremenjene. Toda po subjektivni oceni se strani zdaj nalagajo nekajkrat hitreje.

Generiranje predloge še vedno traja precej časa (čas generiranja je skoraj enak kot pri sistemskem jedru) - očitno koda prejšnji razvijalec ni bila optimalno napisana. Ni časa, ni proračuna, ni želje, da bi razčlenili kodo nekoga drugega. Lažje, hitreje in ceneje je napisati svojo kodo iz nič.

Na splošno: Performance Module je zelo uporabno in priročno orodje za odpravljanje napak pri delovanju projekta in strežnika. Za to gre zahvala njegovim razvijalcem.

P.S. Osebno imam malo izkušenj z delom z Linuxom. Prvič sem se pobližje seznanil s FreeBSD. Presenetilo me je, da so po namestitvi neke programske opreme konfiguracijske datoteke popolnoma prazne (na primer MySQL). Zadovoljen sem bil z enostavno namestitvijo programske opreme iz "pristanišč".

«, smer »Sistemi za prenos podatkov«.

Preden se lotimo tehničnih podrobnosti optimizacije WAN, ugotovimo, kaj je in čemu je namenjena.

V zadnjem času je postala očitna migracija IT struktur na decentraliziran računalniški model, v katerem podjetja razporedijo svoje procesne centre po vsem svetu. Posledično sta se povečala količina podatkov in število virov IT, shranjenih zunaj korporativnih podatkovnih centrov (DC), vodje oddelkov pa zdaj iščejo načine za konsolidacijo svoje IT infrastrukture. Podjetja so spoznala prednosti, ki jih prinaša konsolidacija v smislu zmanjšanja kompleksnosti infrastrukture, znižanja stroškov, izboljšanja izkoriščenosti virov in zaščite podatkov.

Centralizacija virov in podatkov dokazuje zgoraj opisane prednosti, vendar obstajajo različne pasti, ki jih morajo organizacije, ki nameravajo optimizirati svojo IT infrastrukturo, upoštevati. Ena od težav, s katero se bodo soočili, je počasnejše delovanje aplikacij. Priljubljenost modela porazdeljenega računalništva je v veliki meri povzročila potreba po ohranjanju virov IT čim bližje uporabnikom porazdeljenega omrežja, da se zagotovi največja zmogljivost. Konsolidacija strežnikov na osrednji lokaciji obrne vzorec dodeljevanja virov in zato poslabša zmogljivost številnih aplikacij.

Da bi rešile težavo, organizacije širijo zmogljivost povezav WAN, da bi zmanjšale odzivne čase. Nato odkrijejo, da širitev kanalov praktično nima (ali pa minimalno) vpliva na hitrost aplikacij, saj je problem v velikem zakasnitvi prenosa podatkov po kanalu in uporabi protokolov, ki so neučinkoviti za delo z WAN. Poleg tega razširitev pasovne širine zunaj Moskve na splošno morda ni stroškovno učinkovita. In ravno za takšne naloge se uporablja oprema za optimizacijo kanala WAN.

Globalno lahko takšne rešitve za optimizacijo WAN zmanjšajo stroške za organizacije na več načinov:

    zmanjšati stroške pasovne širine komunikacijskega kanala. Pravzaprav bodo organizacije lahko brez nakupa dodatne pasovne širine, kar je ključni pogoj za mnoga podjetja, ko začnejo s projekti implementacije optimizatorjev WAN;

    konsolidacijo infrastrukture v podatkovnem centru. Podjetja bodo lahko odstranila znaten del infrastrukture IT (datotečni in poštni strežniki, strežniki za distribucijo programske opreme, portali SharePoint, tračni pogoni itd.) iz oddaljenih pisarn brez izgube zmogljivosti in obvladljivosti;

    poenostavite infrastrukturo oddaljene pisarne. Nekateri proizvajalci v svojih napravah ponujajo programsko platformo, ki uporabnikom omogoča gostovanje nekaterih storitev, ki ostanejo po konsolidaciji podatkovnega centra (na primer tiskalni strežnik, strežnik DHCP, datotečne storitve) neposredno na napravi za optimizacijo. To omogoča dodatno znižanje obratovalnih stroškov.

Kaj je WAN optimizacija? Rešitev za optimizacijo delovanja omrežnih aplikacij uporablja arhitekturo odjemalec-strežnik in sejni princip omrežnih aplikacij. Njegova glavna naloga je optimizacija aplikacijskih sej. V bistvu je to nabor naprav za izboljšanje delovanja aplikacij, nameščenih v centru in v vsaki regionalni (lokalni) pisarni podjetja. Ves promet prenašajo skozi sebe, "prestrežejo" in optimizirajo delovne seje aplikacije.

Obstaja vrsta proizvajalcev, ki ponujajo rešitve na področju optimizacije prenosa prometa po dolgih kanalih WAN. Najbolj znani med njimi na ruskem trgu so Riverbed (z izdelkom SteelHead), Cisco (izdelek WAAS), Juniper (izdelek WXC) in BlueCoat (izdelek ProxySG).

Proces optimizacije opreme, ki jo ponujajo, temelji na približno enakih mehanizmih, ki vključujejo stiskanje podatkov, predpomnjenje, optimizacijo TCP protokola in optimizacijo logike delovanja samih poslovnih aplikacij.

Vsi obravnavani mehanizmi optimizacije aplikacij uporabljajo segmentacijo seje, ki jo med odjemalcem in strežnikom razdelijo na tri segmente: med napravo za optimizacijo in delovno postajo, med napravami v omrežju WAN ter med napravo za optimizacijo in podatkovnim centrom (strežnikom). V prvem in tretjem segmentu seja poteka preko LAN-a, pomanjkljivosti v protokolu TCP pa ne vplivajo na zakasnitev aplikacije. Drugi segment je optimiziran s prilagajanjem hitrosti TCP. Posledično so zagotovljeni potrebni minimumi: glede zakasnitve pri prenosu prometa preko WAN in odzivnega časa aplikacije. Oglejmo si mehanizme, ki so v takšni ali drugačni obliki podlaga za odločitve vsakega proizvajalca optimizatorjev.

Kompresijski mehanizmi so sposobni pospešiti prenos podatkov s povečanjem informacijske vsebine prenosa informacij na časovno enoto. Najpogosteje so podatki, ki se prenašajo po omrežju, predstavljeni v neoptimalnem formatu in so nerazumno veliki. Zdaj, z aktivno uporabo pri razvoju aplikacij, na primer XML ali drugih jezikov za predstavitev informacij v besedilni obliki, ni treba skrbeti za predstavitev podatkov. To poveča hitrost in enostavnost razvoja, hkrati pa povzroči, da se po omrežju prenašajo v bistvu nestrukturirani podatki, kar v promet vnaša velike količine redundance.

Stiskanje prometa odpravi to pomanjkljivost. Motorji za optimizacijo aplikacij uporabljajo algoritem za stiskanje podatkov brez izgub (kot je Lempel-Ziv) in algoritem za odpravo podvojenih blokov. Kombinacija teh dveh algoritmov nam omogoča, da dosežemo najvišjo stopnjo kompresije informacij brez izgub in s tem zagotovimo hiter prenos informacij tudi po kanalih z relativno nizko hitrostjo.

Funkcionalnost stiskanja v takšni ali drugačni obliki najdemo v skoraj vsakem sodobnem usmerjevalniku in pravzaprav so tukaj sodobni optimizatorji začeli svojo pot. Zelo pogosto omrežni skrbniki verjamejo, da je to razvpita optimizacija, ki prepričuje svoje upravitelje, da ni potrebe po nakupu posebnih naprav. In tu se motijo, kot bomo videli kasneje.

Mehanizmi predpomnjenja prav tako pomagajo zmanjšati količino prenesenega prometa. V porazdeljenem omrežju se pogosto pojavijo situacije, ko morajo vsi zaposleni v podjetju prenesti iste podatke. Na primer pri posodabljanju programskih izdelkov ali baz podatkov protivirusne programske opreme, prenosu zahtev vodstva podjetja, večpredstavnostnih datotek in programov za usposabljanje, javnih knjižnic dokumentov. Uporaba naprav za optimizacijo omogoča, da se te informacije shranijo v predpomnilnik, to je, da se enkrat prenesejo prek omrežja WAN in nato zagotovijo vsakemu uporabniku lokalno (s trdega diska najbližje naprave za optimizacijo) namesto iz oddaljenega globalnega vira.

Pomembna razlika od običajnih naprav za predpomnjenje je dejstvo, da optimizatorji informacije razdelijo na dele/bloke in jih shranijo na trdi disk. To je zanimivo z vidika, da če spremenimo nekaj informacij v novo preneseni datoteki (na primer v dokument vstavimo diapozitiv ali sliko), se bo prenesla sprememba in ne celotna datoteka. . Mehanizmi za dinamično razdelitev posredovanih informacij v bloke in sledenje spremembam so zaščiteni in niso predmet razkritja. Če govorimo o značilnostih dela, proizvajalci uporabljajo 2 pristopa. Posebnost prvega od njih je njegovo poenotenje, tj. pri prenosu ene datoteke v različne podružnice bo v centralnem optimizatorju za vse oddaljene naprave za optimizacijo shranjena samo ena kopija datoteke. V drugem primeru se prostor na trdem disku dinamično razdeli sorazmerno s številom oddaljenih pisarn (oddaljeni optimizatorji), in če se ena datoteka prenese v vse veje, se bo podobna kopija odražala v vsakem segmentu trdega diska, ki je "odgovoren" za svojo podružnico.

Očitno mehanizem predpomnjenja deluje v tandemu z mehanizmom stiskanja. Zahvaljujoč tema dvema mehanizmoma proizvajalci optimizatorjev prikazujejo čudovite grafe, kjer lahko stopnja optimizacije doseže 150-200X. Pri večkratnem pošiljanju iste velike podatkovne datoteke smo lahko pridobili iste podatke, saj je bila po prvem prenosu shranjena v predpomnilnik naprave, nato pa so bili preneseni le kilobajti povezav, ki kažejo na lokacijo datoteke na trdem disku. Tu se takoj pojavi logično vprašanje: kakšna je zmogljivost trdega diska in ali je mogoče zunanji pomnilnik priključiti na optimizatorje? Nekateri proizvajalci so nekoč omenjali možnost pojava tovrstne opreme (vendar bo ta že namenjena izključno vgradnji v podatkovni center).

Optimizacijski mehanizmi TCP delo na transportni ravni. To je glavno »bojišče« proizvajalcev optimizatorjev, preden so začeli »plezati« na višje nivoje (aplikacije). Transportni protokol TCP je bil razvit leta 1980 in danes ni doživel večjih sprememb, bistveno pa so se spremenile tehnologije prenosa podatkov. Ko se paketi izgubijo, standardni protokol TCP močno zmanjša hitrost - skoraj za polovico, njeno povečanje s te ravni pa se nato zgodi linearno in v majhnih korakih. Zato že sorazmerno majhna stopnja izgube paketov (2-3 % izgub velja za normalno) povzroči pogoste in ostre izgube hitrosti omrežja.

Optimiziran TCP protokol, ko pride do izgube, zmanjša hitrost ne za 2-krat, ampak le za nekaj odstotkov, pri izgubi enega paketa pa se hitrost zelo malo zmanjša. Izkazalo se je, da rešitev za optimizacijo delovanja omrežnih aplikacij poveča predvsem hitrost prenosa informacij. Maksimalen izkoristek celotne pasovne širine kanalov za prenos podatkov je zagotovljen z izboljšanim postopkom delovanja TCP protokola.

Mehanizmi optimizacije na ravni aplikacije ponujajo pospeševanje samih poslovnih aplikacij preko WAN kanalov. Prav implementacija nekaterih protokolov v priljubljenih izdelkih je na žalost daleč od popolnosti. Predvsem protokol CIFS (Common Internet File System), ki se aktivno uporablja v Microsoftovih omrežjih, ustvarja prekomerno količino servisnih sporočil (potrditev dostave, pripravljenost naprave itd.). V lokalnem omrežju ti presežki ne povzročijo bistvene zamude v odzivnem času, v porazdeljenem omrežju pa postanejo pomembni. Optimizacijske naprave so sposobne obdelati večino nepomembnih sporočil lokalno, brez prenosa preko WAN, s čimer zmanjšajo količino prometa in skrajšajo odzivni čas številnih funkcij omrežnih aplikacij, kot so omrežno tiskanje, dostop do datotečnih storitev itd. Pravzaprav danes ravno na tem področju proizvajalci tekmujejo. Najpogosteje optimizirani protokoli vključujejo CIFS, NFS, MAPI, Video, HTTP, SSL in Windows tiskanje. Ta "gentleman's set" je prisoten v portfelju skoraj vsakega proizvajalca, vendar so optimizirani na različne načine.

Iz vsega navedenega sledi, da promet od vira do prejemnika poteka skozi vsaj dve optimizacijski napravi, na vsaki od njiju pa se obdela do aplikacije.

Ni težko uganiti, da vsi optimizatorji delujejo z aplikacijami, ki temeljijo na TCP, kar pomeni, da preostali promet poteka brez optimizacije. Enako lahko rečemo o šifriranem prometu (izjema je morda SSL - številni optimizatorji lahko "prekinejo" sejo, optimizirajo promet in ga šifrirajo nazaj).

Podjetja z razpršeno strukturo, ki želijo znižati stroške telekomunikacijskim operaterjem, bodo morda zanimiva za takšno rešitev. To se lahko kaže tako v primeru uporabe megabajtnih tarif (učinek je očiten) kot v primeru neomejenih (prehod na tarifne načrte z nižjo hitrostjo). Danes je morda to najbolj zanimiv namen uporabe takih naprav. Drugi bonusi, ki niso tako očitni in transparentni, so lahko: konsolidacija strežnikov, zmanjšanje števila IT osebja v oddaljenih pisarnah, večja produktivnost zaradi povečane hitrosti aplikacij.

Proizvajalci v boju za zanimanje za optimizatorje ponujajo tudi možnosti optimizacije dela mobilnih zaposlenih z namestitvijo specializirane programske opreme na prenosnike in možnostjo namestitve virtualnih strežnikov na podlagi enega optimizatorja v oddaljeni pisarni. Programska oprema za prenosnike je po kodi podobna programski opremi na samih optimizatorjih, tj. Prenosnik postane kot optimizator.

Poleg podjetij s porazdeljeno strukturo bo ta rešitev lahko zanimiva tudi za operaterje, ki lahko podjetjem zagotavljajo storitve optimizacije (na primer najem). Tovrstne storitve postajajo priljubljene v Evropi.

Najpogostejša optimizacijska rešitev je seveda Cisco WAAS. Dober prodajalni marketing, dobra rešitev in razvojna strategija opravijo svoje. S pojavom serije cenovno dostopnih in zanesljivih WAVE je položaj Cisca postal še močnejši.

Juniperjeva rešitev WXC se razlikuje po tem, da je ves promet pakiran v tunel UDP, tj. optimizacija poteka v celotnem prometu. Ta pristop ima vsekakor svoje prednosti. Vključil bi dokaj visoko vrednost optimizacije »bolnišničnega povprečja« za ves promet (na podlagi testiranja z eno veliko stranko).

Riverbed je prišel v Rusijo ne tako dolgo nazaj, vendar aktivno razvija svojo partnersko mrežo. Ima pomembne prednosti pred konkurenčnimi rešitvami (na primer kompetenten mehanizem predpomnjenja, optimizacija aplikacij), vendar visoka cena rešitve še vedno preprečuje rast njene priljubljenosti.

Če povzamem vse zgoraj navedeno, bi rad omenil, da je optimizacija WAN zanimiva rešitev, precej pregledna za poslovanje, vendar na žalost še ni prejela veliko povpraševanja v ruskih podjetjih. Na podlagi implementacij je bilo mogoče v povprečju zmanjšati promet za 2-3,5-krat in občutno pospešiti odzive aplikacij. Na primer, ena od naših strank na satelitskih linijah je v enem mesecu testiranja prihranila približno 20 ur odzivov. Za naše podjetje je uvedba te rešitve omogočila dvojni prihranek pri plačilu omrežnega prometa, pa tudi povečanje hitrosti korporativnih aplikacij v povprečju za 1,7-krat. Hkrati se je naložba v projekt povrnila le v 3 mesecih.

V vsakem primeru, če vas zanima, je najbolje, da rešitev najprej testirate približno en mesec, šele na podlagi rezultatov testiranja pa bo mogoče reči, kako učinkovita je implementacija optimizatorjev glede na določeno omrežje. Za razvoj rešitve, testiranje in namestitev je najbolje vključiti izkušene sistemske integratorje.

Učinkovito SEO lahko ovira le ena nadležna napaka pri tehnični optimizaciji spletnega mesta, vendar bo to privedlo do dejstva, da roboti iskalnikov ne bodo mogli pravilno indeksirati vira, razumeti strukture spletnega mesta, uporabniki pa bodo ne najdejo informacij, ki jih potrebujejo. Vse to pa bo vodilo do nizke uvrstitve spletnega mesta.

Tehnična optimizacija spletnega mesta je niz ukrepov, ki so namenjeni prilagajanju tehničnih vidikov vira, da bi izboljšali njegovo interakcijo z roboti iskalnikov. Tehnična optimizacija omogoča najhitrejše in najbolj popolno indeksiranje strani spletnega mesta.

5 glavnih parametrov tehnične optimizacije

1. Datoteka robots.txt

Pomembno je upoštevati, da mora biti datoteka robots.txt v korenskem imeniku vsakega vira. To je prva datoteka, do katere roboti PS dostopajo, ko obiščejo spletno mesto, in v kateri so shranjena navodila zanje.

Ta datoteka določa parametre indeksiranja spletnega mesta: katere strani naj bodo vključene v iskalno zbirko podatkov in katere naj bodo izključene. Poleg tega lahko določi direktive za vse robote iskalnikov hkrati in za robote vsakega iskalnika posebej. Več o sestavljanju te datoteke in njeni nastavitvi lahko izveste na spletnem mestu za pomoč spletnim skrbnikom Yandex.

Datoteko lahko preverite v storitvi Yandex.Webmaster, točka menija »Analiza robots.txt« (https://webmaster.yandex.ru/robots.xml).

2. Zemljevid spletnega mesta - zemljevid spletnega mesta

Zemljevid spletnega mesta je ena od strani z viri, katere informacije so podobne vsebini običajne knjige. Ta stran se uporablja kot navigacijski element. Zemljevid spletnega mesta vsebuje popoln seznam razdelkov in/ali vseh strani, objavljenih na viru.

Zemljevid spletnega mesta HTML potrebujejo uporabniki za hitro in enostavno iskanje informacij, XML pa potrebujejo iskalniki za izboljšanje indeksiranja spletnega mesta.

S pomočjo zemljevida spletnega mesta iskalni roboti vidijo celotno strukturo in hitreje indeksirajo nove strani.

Preverjanje zemljevida spletnega mesta(https://webmaster.yandex.ru/sitemaptest.xml)

Primer pravilnega zemljevida spletnega mesta v formatu .html:

3. Preusmeritve (preusmeritve)

Preusmeritev se uporablja za preusmerjanje obiskovalcev spletne strani z ene strani na drugo. Obstaja veliko primerov, zakaj so preusmeritve potrebne:

  1. Spreminjanje imena domene spletnega mesta.
  2. Ogledala iz vezanega lesa. Številna spletna mesta nimajo konfigurirane preusmeritve 301 z domene, ki v naslovu vsebuje www, na domeno brez www, ali obratno.

Preusmeritve morajo biti vnesene v datoteko .htaccess. Ker lahko iskalniki menijo, da sta site.ru in www.site.ru različni mesti, se lahko v rezultatih pojavijo dvojniki. To bo povzročilo težave z uvrstitvijo v rezultatih iskanja itd.

Kode stanja glavne preusmeritve:

  • 300 - Več možnosti (več možnosti na izbiro);
  • 301 - Moved Permanently (preseljen za vedno);
  • 302 - Začasna preusmeritev;
  • 303 - Glej Drugo (zahtevani vir je mogoče najti na drugem naslovu);
  • 304 - Ni spremenjeno (vsebina ni bila spremenjena - to so lahko slike, slogovni listi itd.);
  • 305 - Uporabi proxy (dostop mora biti prek proxyja);
  • 306 - Neuporabljeno (ni v uporabi).

Uporabna storitev za določanje odzivov strani: http://www.bertal.ru/

4. Prilagajanje ogledov strani URL

Pomembno je, da preverite spletno mesto in zagotovite, da so naslovi vseh njegovih strani skladni. Na primer, na celotnem spletnem mestu morajo imeti strani zaključno poševnico: http://site.ru/katalog/ in http://site.ru/products/ . Če so nekatere strani videti kot http://site.ru/katalog, druge pa kot http://site.ru/products/, to ni pravilno.

Ko ustvarite zemljevid spletnega mesta, bo priročno preveriti naslove strani z notranjimi viri za napake.

5. Napake na spletnem mestu

Ko se katera koli stran na spletnem mestu naloži, se zahteva pošlje strežniku, ki se odzove s statusno kodo HTTP in naloži (ali ne naloži) stran.

Osnovne statusne kode:

  • 200 - stran je v redu;
  • 404 - neobstoječa stran;
  • 503 - strežnik je začasno nedosegljiv.

Napaka 404 je eden najpomembnejših tehničnih parametrov optimizacije, ki ga je treba izboljšati.

Če stran obstaja in strežnik ob zahtevi obvesti o napaki 404, iskalniki strani ne bodo indeksirali. V nasprotnem primeru se lahko v indeksu znajde veliko število strani z enakim besedilom, kar izjemno negativno vpliva na uvrstitev.

Statusne kode lahko preverite na http://www.bertal.ru/ ali Yandex.Webmaster.

Upoštevali smo le glavne parametre tehnične izboljšave spletnega mesta, na katere morate najprej biti pozorni. Če na svojem spletnem mestu najdete takšne napake ali imate težave pri njihovem odpravljanju, se obrnite le na profesionalno SEO podjetje.

Obstaja več metod, ki jih lahko uporabite za povečanje zmogljivosti strežnika, vendar je najboljša optimizacija.

Optimizacija operacijskega sistema (FreeBSD)

  • Prehod na 7.x je uporaben za večjedrne sisteme, saj je mogoče uporabiti novi ULE 3.0 Scheduler in jemalloc. Če uporabljate podedovan sistem 6.x in ta ne more obvladati obremenitve, potem je čas, da preklopite na 7.x.
  • Prehod na 7.2 vam bo omogočil povečanje KVA, optimizacijo privzetega sysctl in uporabo superstrani. V pripravi je že nov FreeBSD 8.0, ki bo pripomogel k občutnemu povečanju produktivnosti.
  • Prehod na amd64 omogoča povečanje količine KVA in Shared Mem na več kot 2 Gb. Treba je ustvariti pogoje za razvoj strežnika, saj se baze podatkov nenehno povečujejo in zahtevajo večje velikosti.
  • Razbremenitev omrežnega podsistema v FreeBSD bo pomagal optimizirati strežnik. Ta postopek je mogoče izvesti v dveh fazah: nastavitev parametrov ifconfig in nastavitev sysctl.conf/loader.conf. V fazi priprave morate preveriti zmogljivosti omrežne kartice. Gonilniki iz Yandexa bodo pomagali povečati hitrost z uporabo več niti; pogosto se uporabljajo za večjedrne procese. Za tretjerazredno omrežno kartico je polling najboljša rešitev. Najnovejša posodobljena različica nastavitve FreeBSD 7 bo pomagala rešiti težavo.
  • FreeBSD in ogromno datotek deluje odlično zahvaljujoč predpomnjenju imen datotek v imeniku. Iskanje po zgoščeni tabeli vam bo pomagalo hitro najti zahtevano datoteko. Čeprav je največja količina pomnilnika približno 2 MB, jo lahko povečate, če vfs.ufs.dirhash_mem to dovoljuje.
  • Posodobitve programske opreme, gjournalinmount opcije- To so novi terabajtni vijaki z odličnimi zmogljivostmi. Če zmanjka elektrike, bo njihov fsck trajal zelo dolgo, zato lahko uporabite programske posodobitve ali se prijavite prek gjournala.

Optimizacija sprednjega dela (nginx)

To vrsto lahko označimo kot prezgodnjo optimizacijo, čeprav bo pomagala povečati skupni odzivni čas spletnega mesta. Med standardnimi optimizacijami je vredno biti pozoren na reset_timedout_connection; sendfile; tcp_nopush in tcp_nodelay.

  • Sprejmi filtre je tehnologija, ki omogoča prenos informacij iz jedra v proces v primeru, da prispejo novi podatki ali prejme veljavno http zahtevo. Ti filtri bodo pomagali razbremeniti strežnik, ko je povezav ogromno.
  • Predpomnjenje Za nginx je značilna prilagodljivost in je izdelan iz ozadij fastcgi ali proxy. Vsakdo lahko pametno uporablja predpomnjenje v svojem projektu.
  • AIO je zelo uporaben za nekatere posebne obremenitve strežnika, saj prihrani odzivni čas in hkrati zmanjša število delavcev. Nove različice nginx omogočajo uporabo aio v tandemu s sendfile.

Optimizacija zaledja

  • APC je ogrodje, ki vam omogoča zmanjšanje obremenitve s predpomnjenjem prevedene kode v OP. Zaklepanje APC je vredno posodobiti, saj se lahko upočasni in veliko ljudi začne uporabljati eAccelerator namesto APC. Vredno je zamenjati zaklepanje s spinlock ali pthread mutex. Vrednost namigov APC je treba povečati, če obstaja veliko število datotek .php ali če so pogosto predpomnjene v uporabniškem predpomnilniku APC. Razdrobljenost APC je znak, da APC uporabljate neustrezno. Ne more samostojno brisati zapisov s TTL ali LRU.
  • PHP 5.3 bo pomagal povečati produktivnost, zato je vredno nadgraditi vašo različico PHP, čeprav bo seznam zastarelih funkcij marsikoga prestrašil.

Optimizacija baze podatkov

Idej za izboljšanje delovanja MySQL na internetu je veliko, saj se vsak spletni projekt prej ali slej sooči z omejitvami glede količine pomnilnika, diska ali procesorja. Zato preproste rešitve ne bodo pomagale pri obvladovanju težave, vredno je porabiti več časa za profilerje (dtrace, systemtap in oprofile), pa tudi z uporabo velikega števila dodatne programske opreme. Potrebno je ne le odlično znati uporabljati indekse, jih razvrščati in združevati, ampak tudi vedeti, kako vse to deluje znotraj MySQL. Prav tako morate poznati prednosti in slabosti različnih mehanizmov za shranjevanje, razumeti predpomnilnik poizvedb in RAZLOŽITI.

Obstaja več načinov za optimizacijo MySQL, tudi brez spreminjanja kod, saj je polovico nastavitve strežnika mogoče izvesti v polavtomatskem načinu z uporabo pripomočkov tuningprimer, mysqltuner in mysqlsla.

  • Prehod na 5.1 ponuja številne prednosti, med katerimi velja izpostaviti optimizacijo optimizatorja, particioniranje, vtičnik InnoDB in replikacijo na podlagi vrstic. Da bi spletno stran pospešili, nekateri navdušenci nad ekstremnimi športi že preizkušajo različico 5.4.
  • Preklop na InnoDB zagotavlja številne prednosti. Je združljiv s standardom ACID, zato se vsaka operacija izvede z eno samo transakcijo. Ima zaklepanje na ravni vrstice, kar omogoča sočasno branje in pisanje več niti ločeno druga od druge.
  • Vgrajen predpomnilnik MySQL – predpomnilnik poizvedb je precej težko razumljiv, zato ga mnogi uporabniki uporabljajo neracionalno ali pa ga izklopijo. Zanj več ne pomeni boljše, zato se ne splača maksimizirati tega podsistema. Predpomnilnik poizvedb je vzporeden; posledično bo uporaba več kot osmih procesov samo upočasnila celoten proces in ne bo pomagala zmanjšati časa nalaganja spletnega mesta. Vsebina tega podsistema, ki se nanaša na določeno tabelo, je razveljavljena, ko se ta tabela spremeni. To pomeni, da Query Cache daje pozitivne rezultate samo pri uporabi dobro oblikovanih tabel.
  • Indeksi so lahko škodljivi tako za SELECT (če jih ni) kot za INSERT/UPDATE (če obstajajo dodatni). Indeks, ki ni več v uporabi, še vedno zavzame pomnilnik in s tem upočasni spreminjanje podatkov. Če želite rešiti to težavo, morate uporabiti preprosto poizvedbo SQL.

PostgreSQL

Sistem Postgres je precej vsestranski, saj spada v razred Enterprise in Skype na njem deluje odlično, hkrati pa ga je mogoče namestiti celo na mobilni telefon. Med 200 razpoložljivimi parametri jih je 45 osnovnih in so odgovorni za uglaševanje.

Na internetu lahko najdete veliko koristnih informacij o nastavitvi Postgresa. Toda nekateri članki so že zastareli, zato morate začeti od datuma objave in bodite pozorni na informacije, kjer se uporablja ključ vacuum_mem, ali v novih različicah maintenance_mem. Napredni programerji bodo lahko našli veliko kakovostnih razprav, spodaj pa bomo našteli le tiste osnove, ki bodo povprečnemu uporabniku pomagale izboljšati svoj projekt.

  • Indeksi PostgreSQL je vedno na prvem mestu, medtem ko v MySQL vedno zasedajo zadnja mesta, kar je mogoče pojasniti z dejstvom, da imajo indeksi PostgreSQL ogromne zmogljivosti. Programer mora dobro razumeti takšne indekse in vedeti, kdaj in katerega je treba uporabiti, kot so GiST, GIN, hash in B-tree, pa tudi delne, večstolpčne in on izraze.
  • pgBouncer in njegove alternative je treba najprej namestiti na strežnik baze podatkov. Brez zbiralnika povezav vsaka zahteva ustvari ločen proces, ki uporablja RAM. Zdi se, da ni nič slabega, a pri ustvarjanju več kot 200 povezav ima celo zelo zmogljiv strežnik težave z obdelavo informacij. pgBouncer pomaga rešiti to težavo.
  • pgFouine je nepogrešljiv program, saj ga lahko varno imenujemo analog mysqlsla v php. V tandemu s Playrjem lahko izvaja optimizacijo poizvedb v težkih pogojih na vmesnih strežnikih.

Razkladanje baze podatkov

Če želite optimizirati delovanje baze podatkov in povečati njeno zmogljivost, jo uporabite čim manj.

  • SphinxQL se lahko uporablja kot strežnik MySQL. Če želite to narediti, morate samo ustvariti sphinx.conf, kot tudi vnose za indekser v cron in preklopiti na drugo bazo podatkov. S temi dejanji ni treba niti spreminjati kode. Prehod na SphinxQL bo pomagal izboljšati hitrost in kakovost iskanja ter pozabiti na MyISAM in FTS.
  • Shramba brez RDBMS omogoča, da ne uporabljate relacijske baze podatkov. Izberete lahko Hive ali Oracle. Baza podatkov ključ-vrednost zaradi svoje hitrosti uporablja izbore iz relacijskih baz podatkov za nadaljnje predpomnjenje. Lastniki velikih projektov PHP lahko uporabijo odlično funkcijo predpomnilnika opcode za shranjevanje vseh podatkov po meri. Z njegovo pomočjo lahko zanesljivo shranite tudi spremembe globalnega pomena, saj zavzamejo malo prostora in praktično ne zasedajo pomnilnika, hitrost vzorčenja pa se lahko tudi bistveno poveča. Če je za velik projekt blok globalnih sprememb zapisan samo na enem stroju, se promet poveča in začne močno upočasnjevati. Če želite rešiti to težavo, morate shraniti globalne spremenljivke v predpomnilnik opcode ali klonirati spremenljivke v vseh strežnikih in dodati izjeme algoritmu zgoščevanja skladnosti.
  • Kodiranja glejte učinkovite metode za razkladanje baze podatkov. Omeniti velja, da je UTF-8 odlična izbira, vendar v ruščini zavzame veliko prostora, zato morate za enojezični kontingent najprej razmisliti o racionalni uporabi kodiranja.
  • Asinhronost bo pripomogla k zmanjšanju odzivnega časa aplikacije ali spletnega mesta, pa tudi znatno zmanjšala obremenitev samega strežnika. Paketne zahteve so izdelane veliko hitreje kot običajne posamezne. Za velike projekte lahko uporabite sporočila RabbitMQ, ApacheMQ ali ZeroMQ, za majhne projekte pa samo cron.

Dodatne aplikacije za optimizacijo

  • SSHGuard ali njegova alternativa je standardna praksa za ssh. Anti-brute force pomaga ustvariti zanesljivo zaščito strežnika pred napadi botov.
  • Xtrabackup podjetja Percona je odlično orodje za varnostno kopiranje MySQL, ki ima veliko nastavitev. Toda idealna rešitev je še vedno klicanje klonov v ZFS, ker se ustvarijo zelo hitro, za obnovitev baze pa je dovolj, da spremenite poti do datotek v konfiguraciji mišic. Kloni vam omogočajo obnovitev sistema iz nič.
  • Prenesite pošto na drugega gostitelja bo prihranil promet in IOP-je, če bo vaš strežnik preprosto bombardiran z neželeno pošto.
  • Integracija s programsko opremo tretjih oseb bo pomagal optimizirati strežnik mysql. Za izmenjavo sporočil lahko na primer uporabite povezavo smtp/imap, ki ne bo zavzela veliko pomnilnika. Za ustvarjanje klepeta je dovolj, da uporabite osnovo strežnika jabber z odjemalcem javascript. Ti sistemi, ki temeljijo na adapterjih za standardne izdelke, so zelo razširljivi.
  • Spremljanje je zelo pomembna komponenta, saj je nemogoče karkoli optimizirati brez podrobne analize. Potrebno je spremljati meritve uspešnosti, proste vire in zamude; Zabbix, Cacti, Nagios in druga orodja bodo pomagala pri tem. Web Performance Test omogoča izračun hitrosti nalaganja spletne strani ali projekta, zato je zelo koristen pri spremljanju. Pri postavljanju strežnika za zmogljivost ne pozabite, da bo le temeljita analiza pomagala odpraviti vse težave in izvesti optimizacijo.

Če niste razumeli polovice napisanega, ni pomembno.