Rješenja za tehničku optimizaciju poslužitelja. Optimizacija rada opreme

Postoji nekoliko metoda koje možete koristiti za povećanje performansi poslužitelja, ali najbolja je optimizacija.

Optimizacija operativnog sustava (FreeBSD)

  • Prijelaz na 7.x je koristan za višejezgrene sustave jer se mogu koristiti novi ULE 3.0 Scheduler i jemalloc. Ako koristite naslijeđeni 6.x sustav i on se ne može nositi s opterećenjem, onda je vrijeme da prijeđete na 7.x.
  • Prijelaz na 7.2će vam omogućiti da povećate KVA, optimizirate zadani sysctl i koristite superstranice. Novi FreeBSD 8.0 već je u pripremi, što će značajno povećati produktivnost.
  • Prijelaz na amd64 omogućuje povećanje volumena KVA i Shared Mem na više od 2 Gb. Potrebno je stvoriti uvjete za razvoj poslužitelja jer se baze podataka stalno povećavaju i zahtijevaju veće veličine.
  • Rasterećenje mrežnog podsustava u FreeBSD pomoći će optimizirati poslužitelj. Ovaj se proces može obaviti u dvije faze: podešavanje ifconfig parametara i sysctl.conf/loader.conf postavki. U pripremnoj fazi trebali biste provjeriti mogućnosti mrežna kartica. Upravljački programi iz Yandexa pomoći će povećati brzinu korištenjem više niti; često se koriste za višejezgrene procese. Za trećerazrednu mrežnu karticu polling je najbolje rješenje. Najnovija ažurirana verzija podešavanja FreeBSD 7 pomoći će u rješavanju problema.
  • FreeBSD i ogroman broj datoteka rade odlično zahvaljujući predmemoriranju naziva datoteka u direktoriju. Pretraživanje hash tablice pomoći će vam da brzo pronađete potrebna datoteka. Iako je maksimalna količina memorije oko 2 MB, možete je povećati sve dok vfs.ufs.dirhash_mem to dopušta.
  • Soft ažuriranja, gjournalImontirati opcije- Riječ je o novim terabajtnim vijcima koji imaju izvrsne performanse. Ako nestane struje, njihov fsck će trajati jako dugo, tako da možete koristiti softupdates ili se prijaviti preko gjournala.

Optimizacija sučelja (nginx)

Ova se vrsta može klasificirati kao preuranjena optimizacija, iako će pomoći u povećanju ukupnog vremena odgovora stranice. Među standardne optimizacije Vrijedno je obratiti pozornost na reset_timeout_connection; sendfile; tcp_nopush i tcp_nodelay.

  • Prihvati filtre je tehnologija koja omogućuje prijenos informacija iz jezgre u proces u slučaju pristizanja novih ili valjanih podataka http zahtjev. Ovi filtri pomoći će rasteretiti poslužitelj kada postoji ogroman broj veza.
  • Predmemoriranje nginx karakterizira fleksibilnost, a proizvodi se iz fastcgi ili proxy pozadine. Svatko može pametno koristiti predmemoriju u svom projektu.
  • AIO je vrlo koristan za neka specifična opterećenja poslužitelja, jer štedi vrijeme odgovora, a smanjuje broj radnika. Nove verzije nginxa omogućuju korištenje aio-a u tandemu s sendfileom.

Pozadinska optimizacija

  • Oklopni transporter je okvir koji vam omogućuje smanjenje opterećenja predmemoriranjem kompajliranog koda u OP-u. APC zaključavanje vrijedi ažurirati jer može usporiti i mnogi ljudi počinju koristiti eAccelerator umjesto APC-a. Vrijedno je zamijeniti zaključavanje spinlockom ili pthread mutexom. Vrijednost APC savjeta treba povećati ako postoji veliki broj .php datoteka ili ako se često spremaju u APC korisničku predmemoriju. Fragmentacija APC-a znak je da APC koristite neprikladno. Ne može samostalno brisati zapise pomoću TTL ili LRU.
  • PHP 5.3 pomoći će u povećanju produktivnosti, stoga se isplati nadograditi svoju PHP verziju, iako bi popis zastarjelih funkcija mnoge mogao uplašiti.

Optimizacija baze podataka

Ideja za poboljšanje performansi MySQL-a na Internetu ima puno jer se svaki web projekt prije ili kasnije susreće s ograničenjima u količini memorije, diska ili procesora. Eto zašto jednostavna rješenja neće pomoći u suočavanju s problemom, vrijedi potrošiti više vremena na profile (dtrace, systemtap i oprofile), kao i korištenje velike količine dodatnih softver. Potrebno je ne samo savršeno znati koristiti indekse, sortirati ih i grupirati, već i znati kako sve to funkcionira unutar MySQL-a. Također morate znati prednosti i nedostatke različitih mehanizama za pohranu, razumjeti predmemoriju upita i OBJASNITI.

Postoji nekoliko načina za optimizaciju MySQL-a, čak i bez mijenjanja kodova, jer se polovica podešavanja poslužitelja može obaviti u poluautomatskom načinu rada pomoću uslužnih programa tuningprimer, mysqltuner i mysqlsla.

  • Prijelaz na 5.1 pruža mnoge prednosti, među kojima vrijedi istaknuti optimizaciju optimizatora, particioniranje, InnoDB dodatak i replikaciju temeljenu na redovima. Kako bi se stranica ubrzala, neki ljubitelji ekstremnih sportova već testiraju verziju 5.4.
  • Prelazak na InnoDB pruža mnoge prednosti. Sukladan je s ACID-om, tako da se svaka operacija izvodi samo jednom transakcijom. Ima zaključavanje na razini retka, što omogućuje istovremeno čitanje i pisanje mnogih niti koje su međusobno izolirane.
  • Ugrađeni MySQL cache – Query Cache je prilično teško razumjeti, pa ga mnogi korisnici koriste neracionalno ili ga isključuju. Za njega više ne znači bolje, pa se ne isplati maksimizirati ovaj podsustav. Predmemorija upita je paralelizirana; kao rezultat, ako se koristi više od osam procesa, to će samo usporiti cijeli proces, a ne pomoći u smanjenju vremena učitavanja stranice. Sadržaj ovog podsustava, koji se odnosi na određenu tablicu, poništava se kada se naprave promjene u toj tablici. To znači da Query Cache daje pozitivne rezultate samo kada se koriste dobro dizajnirane tablice.
  • Indeksi mogu biti štetni i za SELECT (ako ih nema) i za INSERT/UPDATE (ako postoje dodatni). Indeks koji se više ne koristi i dalje zauzima memoriju i time usporava promjene podataka. Da biste riješili ovaj problem, trebali biste koristiti jednostavan SQL upit.

PostgreSQL

Sustav Postgres je prilično svestran, jer pripada Enterprise klasi i Skype na njemu radi odlično, ali se istovremeno može instalirati čak i na mobitel. Među 200 dostupnih parametara, njih 45 su osnovni i odgovorni su za podešavanje.

Puno toga možete pronaći na internetu korisne informacije za podešavanje Postgresa. Ali neki su članci već zastarjeli, pa treba krenuti od datuma objave i obratiti pozornost na informacije gdje se koristi ključ vacuum_mem ili u novim verzijama maintenance_mem. Napredni programeri moći će pronaći mnoge visokokvalitetne rasprave; u nastavku ćemo navesti samo one osnove koje će pomoći prosječnom korisniku da poboljša svoj projekt.

  • Indeksi PostgreSQL je uvijek na prvom mjestu, dok su u MySQL-u uvijek na zadnjim pozicijama, a to se može objasniti činjenicom da PostgreSQL indeksi imaju ogromne mogućnosti. Programer mora dobro razumjeti takve indekse i znati kada i koji bi se trebao koristiti, kao što su GiST, GIN, hash i B-stablo, kao i djelomični izrazi, izrazi s više stupaca i on.
  • pgIzbacivač a njegove alternative prvo se moraju instalirati na poslužitelj baze podataka. Bez skupljača veze, svaki zahtjev stvara zaseban proces koji koristi RAM. Čini se kao ništa loše, ali kada se stvori više od 200 veza, čak i vrlo moćan poslužitelj ima poteškoća s obradom informacija. pgBouncer pomaže riješiti ovaj problem.
  • pgFouine je nezamjenjiv program, jer se sa sigurnošću može nazvati analogom mysqlsla u php-u. U tandemu s Playrom, može optimizirati upite u teškim uvjetima na probnim poslužiteljima.

Istovar baze podataka

Kako biste optimizirali rad baze podataka i povećali njezine performanse, trebali biste je koristiti što je manje moguće.

  • SphinxQL može se koristiti kao MySQL poslužitelj. Da biste to učinili, trebate samo kreirati sphinx.conf, kao i unose za indekser u cron-u i prebaciti se na drugu bazu podataka. Ovim radnjama nema potrebe čak ni mijenjati kod. Prelazak na SphinxQL pomoći će poboljšati brzinu i kvalitetu pretraživanja i zaboraviti na MyISAM i FTS.
  • Ne-RDBMS pohrana omogućuje vam da ne koristite relacijsku bazu podataka. Možete odabrati Hive ili Oracle. Baza podataka ključ-vrijednost, zbog svoje brzine, primjenjuje uzorke iz relacijske baze podataka za daljnje keširanje. Vlasnici velikih PHP projekata mogu koristiti izvrsnu značajku predmemorije opcodea za pohranu svih prilagođenih podataka. Uz njegovu pomoć možete pouzdano spremiti čak i promjene globalnog značaja, jer zauzimaju malo prostora i praktički ne zauzimaju memoriju, a brzina uzorkovanja također se može značajno povećati. Ako se za veliki projekt blok globalnih promjena napiše samo na jednom stroju, tada se promet povećava i počinje jako usporavati. Da biste riješili ovaj problem, trebate pohraniti globalne varijable u predmemoriju opcodea ili klonirati varijable na svim poslužiteljima i dodati iznimke algoritmu za raspršivanje dosljednosti.
  • Kodiranja odnose se na učinkovite metode za istovar baze podataka. Vrijedno je napomenuti da je UTF-8 izvrstan izbor, ali na ruskom zauzima puno prostora, pa za jednojezični kontingent prvo trebate razmisliti o racionalnoj upotrebi kodiranja.
  • Asinkronija će pomoći smanjiti vrijeme odgovora aplikacije ili web stranice, kao i značajno smanjiti opterećenje samog poslužitelja. Skupni zahtjevi izrađuju se mnogo brže od uobičajenih pojedinačnih. Za velike projekte možete koristiti RabbitMQ, ApacheMQ ili ZeroMQ poruke, a za male projekte možete koristiti samo cron.

Dodatne aplikacije za optimizaciju

  • SSHGuard ili njegova alternativa je standardna praksa za ssh. Anti-gruba sila pomaže u stvaranju pouzdana zaštita poslužitelje od bot napada.
  • Xtrabackup iz Percone izvrstan je MySQL alat za sigurnosno kopiranje koji ima mnogo postavki. No, idealno rješenje je ipak pozivanje klonova u ZFS-u jer se vrlo brzo kreiraju, a za vraćanje baze podataka dovoljno je promijeniti putanje do datoteka u konfiguraciji mišića. Klonovi vam omogućuju vraćanje sustava od nule.
  • Prijenos pošte na drugi hostće uštedjeti promet i IOP-ove ako je vaš poslužitelj jednostavno bombardiran spamom.
  • Integracija sa softverom treće strane pomoći će optimizirati mysql poslužitelj. Na primjer, možete koristiti smtp/imap vezu za razmjenu poruka, što neće zauzeti puno memorije. Za kreiranje chata dovoljno je koristiti bazu jabber poslužitelja s javascript klijentom. Ovi sustavi, koji se temelje na standardnim adapterima, vrlo su skalabilni.
  • Monitoring je vrlo važna komponenta, jer je nemoguće bilo što optimizirati bez detaljne analize. Potrebno je pratiti metriku performansi, besplatne resurse i kašnjenja; Zabbix, Cacti, Nagios i drugi alati pomoći će u tome. Web Performance Test omogućuje izračunavanje brzine učitavanja web stranice ili projekta, tako da je od velike pomoći u praćenju. Prilikom postavljanja poslužitelja performansi imajte na umu da će samo temeljita analiza pomoći u otklanjanju svih problema i izvršiti optimizaciju.

Ako niste razumjeli pola napisanog, nema veze.

Učinkovit SEO može biti ometen samo jednom dosadnom pogreškom u tehničkoj optimizaciji web mjesta, ali to će dovesti do činjenice da roboti tražilice neće moći ispravno indeksirati resurs, razumjeti strukturu web mjesta, a korisnici će ne pronađu informacije koje su im potrebne. Sve će to zauzvrat dovesti do niskog rangiranja stranice.

Tehnička optimizacija web stranice je skup mjera koje su usmjerene na prilagodbu tehničkih aspekata resursa kako bi se poboljšala njegova interakcija s robotima tražilice. Tehnička optimizacija omogućuje najbrže i najcjelovitije indeksiranje web stranica.

5 glavnih parametara tehničke optimizacije

1. Robots.txt datoteka

Važno je napomenuti da se datoteka robots.txt mora nalaziti u korijenskom direktoriju svakog resursa. Ovo je prva datoteka kojoj PS roboti pristupaju kada posjete stranicu i u kojoj su pohranjene upute za njih.

Ova datoteka specificira parametre indeksiranja stranice: koje stranice treba uključiti u bazu podataka pretraživanja, a koje treba isključiti. Osim toga, može specificirati direktive za sve robote tražilice odjednom, kao i za robote svake tražilice zasebno. O kompilaciji ovu datoteku a njegovu konfiguraciju možete detaljnije pronaći na web stranici za pomoć webmasterima Yandexa.

Datoteku možete provjeriti u usluzi Yandex.Webmaster, stavka izbornika "Analiza robots.txt" (https://webmaster.yandex.ru/robots.xml).

2. Sitemap - karta stranice

Karta stranice jedna je od stranica s resursima, čije su informacije slične sadržaju obične knjige. Ova se stranica koristi kao navigacijski element. Mapa stranice sadrži potpuni popis odjeljaka i/ili svih stranica objavljenih na resursu.

HTML karta stranice potrebna je korisnicima za brzo i zgodno pretraživanje informacije i XML - tražilicama za poboljšanje indeksiranja web stranica.

Uz pomoć mape stranice, roboti za pretraživanje vide cijelu strukturu i brže indeksiraju nove stranice.

Provjera mape stranice(https://webmaster.yandex.ru/sitemaptest.xml)

Primjer ispravnog sitemapa u .html formatu:

3. Preusmjeravanja (preusmjeravanja)

Preusmjeravanje se koristi za preusmjeravanje posjetitelja web stranice s jedne stranice na drugu. Mnogo je primjera zašto su potrebna preusmjeravanja:

  1. Promjena naziva domene stranice.
  2. Ogledala od šperploče. Mnoge web stranice nemaju konfigurirano preusmjeravanje 301 s domene koja sadrži www u adresi na domenu bez www ili obrnuto.

Preusmjeravanja se moraju unijeti u datoteku .htaccess. Jer tražilice site.ru i www.site.ru mogu se smatrati različitim stranicama, pa se u rezultatima mogu pojaviti duplikati. To će stvoriti poteškoće s rangiranjem u rezultatima pretraživanja itd.

Glavni statusni kodovi preusmjeravanja:

  • 300 - Višestruki izbor (nekoliko opcija za odabir);
  • 301 - Moved Permanently (preselio zauvijek);
  • 302 - Privremeno preusmjeravanje;
  • 303 - Vidi Ostalo (traženi izvor se može pronaći na drugoj adresi);
  • 304 - Nije izmijenjeno (sadržaj nije promijenjen - to mogu biti slike, listovi stilova itd.);
  • 305 - Koristi proxy (pristup mora biti preko proxyja);
  • 306 - Nekorišteno (nije u uporabi).

Korisna usluga za određivanje odgovora stranice: http://www.bertal.ru/

4. Prilagodba prikaza URL stranice

Važno je provjeriti web mjesto kako biste bili sigurni da su adrese svih njegovih stranica dosljedne. Na primjer, na cijelom web-mjestu stranice moraju imati završnu kosu crtu: http://site.ru/katalog/ i http://site.ru/products/ . Ako neke stranice izgledaju kao http://site.ru/katalog, a neke kao http://site.ru/products/, to nije točno.

Bit će zgodno provjeriti adrese internih stranica resursa za pogreške nakon izrade karte web mjesta.

5. Greške na stranici

Kada se učita bilo koja stranica na web mjestu, šalje se zahtjev poslužitelju, koji odgovara HTTP statusnim kodom i učitava (ili ne učitava) stranicu.

Osnovni statusni kodovi:

  • 200 - stranica je u redu;
  • 404 - nepostojeća stranica;
  • 503 - poslužitelj je privremeno nedostupan.

“404 error” je jedan od najvažnijih tehničkih parametara optimizacije, koji se mora poboljšati.

Ako stranica postoji, a poslužitelj obavijesti o pogrešci 404 kada je zatraži, tada stranica neće biti indeksirana od strane tražilica. Inače, veliki broj stranica sa isti tekst, što izrazito negativno utječe na rangiranje.

Statusne kodove možete provjeriti koristeći http://www.bertal.ru/ ili Yandex.Webmaster.

Razmotrili smo samo glavne parametre tehničkog poboljšanja stranice, na koje prvo morate obratiti pozornost. Ako pronađete takve greške na svojoj web stranici ili imate poteškoća s njihovim uklanjanjem, kontaktirajte samo profesionalnu SEO tvrtku.

Optimiziranje infrastrukture baza podataka i virtualnih okruženja

Poboljšajte performanse svoje trenutne infrastrukture baze podataka i dobijte preporuke za daljnju optimizaciju s usluge u oblaku.

Projekt optimizacije poslužitelja relevantan je u sljedećim slučajevima:

  • odsutnost centralizirani sustav pohranjivanje i oporavak podataka;
  • problemi s performansama SQL poslužitelja;
  • problemi s aplikacijama;
  • nedostatak sustava tolerancije grešaka u podatkovnom centru;
  • procjena spremnosti i izvedivosti migracije IT infrastrukture u oblak;
  • nedostatak zajedničkog razumijevanja stanja infrastrukture baze podataka i virtualnog okruženja.
    Učinkovitije upravljajte okruženjem poslužitelja:
    Tehnički pregled bazne infrastrukture SQL podaci
    Otkrivanje problema konfiguracije poslužitelja Fino podešavanje SQL poslužitelja nije lak zadatak čak ni za administratora baze podataka s dovoljno iskustva. Provest ćemo iscrpnu analizu postavki na razini sustava kao što su zadane postavke memorije, particioniranje, paralelne sesije, predmemorija, diskovi, postavke sigurnosna kopija itd.

    Optimiziranje memorije i pohrane na disku Glavni faktor koji utječe na performanse bilo koje moderne baze podataka je ulazno/izlazni podsustav. Analizirat ćemo prirodu opterećenja baze podataka i dati preporuke za optimizaciju pohrane i OVAN kako u pogledu brzine rada tako i u pogledu pouzdanosti pohrane informacija.

    Optimiziranje performansi baze podataka Svaki programer baze podataka ima svoje preporuke za optimizaciju performansi poslužitelja ili klastera. Stručnjaci naše tvrtke izveli su različite opcije za postavljanje baze podataka za različite vrste opterećenja i može ponuditi optimalne postavke produktivnost. Ove preporuke uvijek su potkrijepljene referencama na dokumentaciju dobavljača i najbolje prakse za implementaciju softvera.

    Analiza zapisa pogrešaka i otkrivanje kritičnih problema Dnevnici pogrešaka glavni su izvor informacija o radu baze podataka i problemima u aplikacijama koje tu bazu podataka koriste. Naši stručnjaci razvili su vlastite alate za analizu problema i pronalaženje metoda za njihovo otklanjanje. U pravilu, svaki projekt nužno sadrži analizu zapisa poslužitelja baze podataka, na temelju koje se daju preporuke za optimizaciju. 

    Optimizacija baze podataka(okidači, indeksi, poruke praćenja) Sve moderne baze podataka prikupljaju informacije o vlastitoj izvedbi u obliku skupa podatkovnih odsječaka koji vam omogućuju da odredite koliko učinkovito baza radi s podsustavom diska, predmemorije upita, dostatnosti indeksa u tablicama, itd. Analizirat ćemo te informacije i dati preporuke za promjene vaših postavki.

    Stvaranje arhitekture otporne na greške Razvijanje arhitekture baze podataka s radom 24x7 i zastojem od najviše 2 sata godišnje uključuje povećanje broja poslužitelja, detaljan razvoj softvera i eliminaciju jedne točke kvara. Pomoći ćemo vam riješiti ovaj problem, a osim toga, dobit ćete sigurnosnu kopiju i politiku oporavka za izvršni kod baze podataka i sve podatke.

    Pripremite vrlo dostupnu bazu podataka s minimalnim vremenom odgovora Naši stručnjaci pomoći će optimizirati rad baza podataka za dobivanje maksimalna brzina rad vašeg poslužitelja. Napravljena je analiza latencije, učinkovitosti predmemorije, indeksa, "teških upita" i rada optimizatora upita te su dane preporuke za poboljšanje performansi.

    Optimiziranje baza podataka za specifične aplikacije Optimiziramo i konfiguriramo MS SQL i Oracle baze podataka za poslovne aplikacije, kao što su sustavi za upravljanje dokumentima, sustavi upravljačkog računovodstva, portalska rješenja i sl. Prilikom izvođenja radova vodimo se preporukama dobavljača softvera za konfiguraciju softvera, kao i vlastito iskustvo optimizacija baze podataka za razne vrste korisničko opterećenje.

    Odabir hardverske platforme za postavljanje softvera baze podataka Dobavljači modernih baza podataka imaju popise opreme koja je optimalna za rad s bazama podataka. Možemo analizirati vaše preferencije dobavljača, pronaći poslužitelje na kojima možete postaviti softver baze podataka ili pripremiti specifikacije za kupnju hardvera baze podataka.

    Analiza i optimizacija operativnog okruženja virtualne baze podataka Problemi s performansama bilo kojeg softvera u virtualiziranom okruženju obično su povezani s određenim hipervizorom i hardverom koji pokreće virtualne poslužitelje. Naši stručnjaci pomoći će utvrditi uzroke usporavanja rada i optimizirati postavljanje softvera za baze podataka virtualni poslužitelji u vašem podatkovnom centru.

    Dobijte točan izračun projekta kod nas ili saznajte kako provesti anketu bez troškova za vas uz podršku dobavljača.

  •