Serverlar uchun texnik optimallashtirish echimlari. SO Server infratuzilmasini optimallashtirish. texnik optimallashtirishning asosiy parametrlari

Yaqinda men 1C-Bitrix-da onlayn-do'konni ishga tushirish uchun maxsus serverni o'rnatishda yordam so'radim. So'rov sababi - saytning sekin ishlashi.
Biz saytni ko'rib chiqdik - haqiqatan ham ba'zi sahifalarni yuklash uchun bir daqiqadan ko'proq vaqt ketadi!!! Saytni ko'rib chiqishda aqlga kelgan birinchi narsa boshqa ishlab chiquvchi tomonidan ishlab chiqilgan komponentlarning suboptimal ishlashi edi. Ammo bir xil miqdorda emas ...

Dastlabki ma'lumotlar: Xeon-dagi server - 2 GB xotira, RAID. OT - FreeBSD. AVTOBUS - Biznes.

Keling, qandaydir tarzda vaziyatni to'g'irlashga harakat qilaylik ...
Bu maqola modul bilan ishlash bo'yicha ko'rsatmalar emas, balki moduldan foydalanishning haqiqiy hayotiy misoli ekanligini darhol aytib o'tishga ruxsat bering. Ehtimol, bu kimgadir foydali bo'ladi.

Auditdan so'ng quyidagi asosiy muammolar aniqlandi:
1. Serverga PHP tezlatkichini o'rnatishingiz kerak
2. /price/ sahifasida “nvisions:menu.sections” komponentida katta muammolar mavjud – maʼlumotlar bazasiga soʻrov hosil boʻlib, deyarli bir daqiqa davomida qayta ishlanadi – bu sahifaning uzoq yuklanishining asosiy sababidir. , shuningdek, serverda katta yuk.
3. Ma'lumotlar bazasi sekin ishlaydi (soniyada 687 ta yozish so'rovi juda kam), muammo server konfiguratsiyasida bo'lishi mumkin. Jadvallarni InnoDB ga aylantirishingiz va InnoDB ni sozlashingiz kerak
4. Fayl tizimi unchalik tez emas, bu serverning apparat xususiyatlari bilan bogʻliq boʻlishi mumkin (masalan, RAID), lekin printsipial jihatdan sayt bu tezlikda yaxshi ishlashi kerak.
5. Sayt shablonida muammo bor (mavjud bo'lmagan havolalar mavjud), uni olib tashlash kerak - bu juda ko'p resurslarni talab qiladi.
6. Serverda ikki darajali arxitekturani sozlash kerak (nginx orqali statik tarkibga xizmat ko'rsatish), bu Apache serveridagi yukni sezilarli darajada kamaytiradi, yuklash paytida xotira sarfini barqarorlashtiradi, shuning uchun ishni tezlashtiradi va ishonchliligini oshiradi. umuman loyiha.

Keling, 1C-Bitrix ishlash modulidagi ma'lumotlarni tahlil qilaylik:

Rasmda ma'lumotlar bazasi serveri bilan bog'liq muammolar aniq ko'rsatilgan, ehtimol sozlamalar optimal emas, chunki ajratilgan server.
Fayl operatsiyalari soni ham shubhali darajada kam.


/price/index.php sahifasidagi kod yoki komponentlar bilan bog'liq aniq muammolar
/bitrix/urlrewrite.php uchun shubhali uzoq vaqt yaratish - ko'proq qarang:

Ha, bu muammolarning manbai: shablon mavjud bo'lmagan rasmga havolani o'z ichiga oladi, bu 404 xatosini keltirib chiqaradi va Apache bu xatoni qayta ishlashga va to'liq huquqli sahifa yaratishga majbur qiladi.

Xuddi shu muammo muammoli shablon bilan bog'langan saytdagi barcha sahifalarga ta'sir qiladi:


Va sahifadagi muammoli komponentlar:


Menyu komponentida keshlash o'chirilgan.
Sahifa xulosasi:

Xo'sh, bu erda tez tahlil. Ishlash moduli sizga "muammolar qayerdaligini" aytib beradi. Muammolarni bartaraf qilishni boshlaylik:

Biz havolasi bo'lgan rasmni qo'shdik, shunchaki rasm qo'shdik va havolalarni olib tashlamadik, chunki... ko'plab havolalar, shu jumladan uchinchi tomon komponentlarida mavjud edi. Shuningdek, ushbu sahifada biz uchinchi tomonning muammoli komponentini (nsvision:menu.sections) o'chirib qo'ydik, chunki uning maqsadi aniq emas. (uzgandan so'ng, tashqi tomondan hech narsa o'zgarmadi)
Natija:


Urlrewrite.php endi har bir hitda chaqirilmaydi



Ko'rib turganingizdek, ish tezligi 2 barobar oshdi (!).

Davom etaylik:
Tezlatgichni o'rnatish. Men bu erda tezlatgich qanday o'rnatilganligini tasvirlamayman, chunki ... bu ma'lumotni, agar kerak bo'lsa, har doim Internetda topish mumkin.







eAcceleratorni o'rnatishdan keyingi natija: mahsuldorlikning yana ikki baravar oshishi.

Davom etaylik: Ma'lumotlar bazasini optimallashtirish(InnoDB-ga o'tkazish va sozlamalarni optimallashtirish)


Ishlash moduli testidan ko'rinib turibdiki, ma'lumotlar bazasi tezligi sezilarli darajada oshdi
Umuman olganda, ma'lumotlar bazasini optimallashtirishdan keyin umumiy ishlash o'zgarishsiz qoldi, ehtimol fayl tizimining sekin ishlashi tufayli.

YANGILANISH:
Ishlash moduli bo'yicha tavsiyalar.
Modulning tavsiyalaridan so'ng biz "open_basedir" parametrini o'chirib qo'yamiz, chunki server faqat bizning loyihamizga bag'ishlangan, biz umuman xavfsizlik buzilmasligini nazarda tutamiz.

Natija:


Natija, ular aytganidek, MAVJUD

Qolgan narsa - "qiyshiq" komponentlarni qayta yozish va loyiha uchib ketadi.

Shuningdek, biz nginx-ni Apache uchun proksi-server sifatida o'rnatdik va sozladik. Men rasmlarni qo'shmayman, chunki ... raqamlar deyarli o'zgarishsiz qoldi. Ammo sub'ektiv baholashga ko'ra, sahifalar endi bir necha baravar tezroq yuklanadi.

Shablonni yaratish hali ham ancha uzoq vaqt talab etadi (yaratish vaqti tizim yadrosi bilan deyarli bir xil) - aftidan, kod avvalgi ishlab chiquvchi tomonidan optimal tarzda yozilmagan. Birovning kodini tahlil qilish uchun vaqt, byudjet va xohish yo'q. Kodingizni noldan yozish osonroq, tezroq va arzonroq.

Umuman olganda: Ishlash moduli loyiha va server ishini tuzatish uchun juda foydali va qulay vositadir. Buning uchun uni ishlab chiquvchilarga rahmat.

P.S. Shaxsan mening Linux bilan ishlash tajribam kam. Men birinchi marta FreeBSD bilan yaqindan tanishdim. Men ba'zi dasturlarni o'rnatgandan so'ng, konfiguratsiya fayllari butunlay bo'sh bo'lganiga hayron bo'ldim (masalan, MySQL). Men dasturiy ta'minotni "portlar" dan o'rnatish qulayligidan mamnun bo'ldim.

", yo'nalishi "Ma'lumotlarni uzatish tizimlari".

WAN optimallashtirishning texnik nozikliklariga o'tishdan oldin, keling, u nima ekanligini va nima uchun mo'ljallanganligini aniqlaylik.

So'nggi paytlarda IT tuzilmalarining markazlashtirilmagan hisoblash modeliga o'tishi yaqqol namoyon bo'ldi, bunda kompaniyalar butun dunyo bo'ylab o'z protsessing markazlarini tarqatadilar. Natijada, korporativ ma'lumotlar markazlaridan (DC) tashqarida saqlanadigan ma'lumotlar hajmi va AT resurslari soni oshdi va bo'lim rahbarlari endi o'zlarining IT infratuzilmasini birlashtirish yo'llarini qidirmoqdalar. Korxonalar konsolidatsiya infratuzilma murakkabligini kamaytirish, xarajatlarni kamaytirish, resurslardan foydalanishni yaxshilash va ma'lumotlarni himoya qilish nuqtai nazaridan olib keladigan afzalliklarni anglab yetdi.

Resurslar va ma'lumotlarni markazlashtirish yuqorida tavsiflangan afzalliklarni ko'rsatadi, ammo IT infratuzilmasini optimallashtirishni rejalashtirayotgan tashkilotlar yodda tutishlari kerak bo'lgan turli xil tuzoqlar mavjud. Ular duch keladigan muammolardan biri bu dasturning sekin ishlashi. Tarqalgan hisoblash modelining mashhurligi, asosan, maksimal ishlashni ta'minlash uchun IT resurslarini taqsimlangan tarmoq foydalanuvchilariga imkon qadar yaqin saqlash zarurati bilan bog'liq edi. Serverlarni markaziy joyda birlashtirish resurslarni taqsimlash sxemasini o'zgartiradi va shuning uchun ko'plab ilovalarning ishlashini pasaytiradi.

Muammoni hal qilish uchun tashkilotlar javob vaqtini qisqartirish maqsadida WAN havolalarining imkoniyatlarini kengaytirmoqda. Keyin ular kanallarni kengaytirish ilovalar tezligiga deyarli hech qanday (yoki minimal) ta'sir qilmasligini aniqladilar, chunki muammo kanal orqali ma'lumotlarni uzatishning katta kechikishi va WAN bilan ishlash uchun samarasiz protokollardan foydalanishda. Bundan tashqari, Moskvadan tashqarida tarmoqli kengligini kengaytirish umuman iqtisodiy jihatdan samarali bo'lmasligi mumkin. Va aynan shunday vazifalar uchun WAN kanalini optimallashtirish uskunasidan foydalaniladi.

Global miqyosda bunday WAN optimallashtirish yechimlari tashkilotlar uchun xarajatlarni bir necha usul bilan kamaytirishi mumkin:

    aloqa kanali o'tkazuvchanligi narxini pasaytirish. Aslida, tashkilotlar qo'shimcha tarmoqli kengligi sotib olmasdan qila oladilar, bu ko'plab kompaniyalar uchun WAN optimallashtiruvchilarini amalga oshirish bo'yicha loyihalarni boshlashda asosiy shartdir;

    ma'lumotlar markazida infratuzilmani birlashtirish. Kompaniyalar AT infratuzilmasining muhim qismini (fayl va pochta serverlari, dasturiy ta'minotni tarqatish serverlari, SharePoint portallari, lenta drayvlari va boshqalar) unumdorlik va boshqaruv qobiliyatini yo'qotmasdan uzoqdagi ofislardan olib tashlashlari mumkin bo'ladi;

    masofaviy ofis infratuzilmasini soddalashtirish. Ba'zi ishlab chiqaruvchilar o'z qurilmalarida foydalanuvchilarga ma'lumotlar markazi konsolidatsiyasidan keyin qolgan ba'zi xizmatlarni (masalan, chop etish serveri, DHCP serveri, fayl xizmatlari) to'g'ridan-to'g'ri optimallashtirish qurilmasida joylashtirish imkonini beruvchi dasturiy platformani taklif qiladilar. Bu operatsion xarajatlarni yanada kamaytirish imkonini beradi.

WAN optimallashtirish nima? Tarmoq ilovalarining ishlashini optimallashtirish uchun yechim mijoz-server arxitekturasidan va tarmoq ilovalarining seans printsipidan foydalanadi. Uning asosiy vazifasi dastur seanslarini optimallashtirishdir. Mohiyatan, bu markazda va kompaniyaning har bir hududiy (mahalliy) idorasida o‘rnatilgan ilovalarning ish faoliyatini yaxshilashga qaratilgan qurilmalar majmuasidir. Ular barcha trafikni o'zlari orqali o'tkazadilar, dastur ish seanslarini "to'xtatadilar" va optimallashtiradilar.

Uzoq WAN kanallari orqali trafikni uzatishni optimallashtirish sohasida echimlarni taklif qiluvchi bir qator ishlab chiqaruvchilar mavjud. Ulardan Rossiya bozorida eng mashhurlari Riverbed (SteelHead mahsuloti bilan), Cisco (WAAS mahsuloti), Juniper (WXC mahsuloti) va BlueCoat (ProxySG mahsuloti).

Ular taklif qiladigan uskunalarni optimallashtirish jarayoni taxminan bir xil mexanizmlarga asoslanadi, ular ma'lumotlarni siqish, keshlash, TCP protokolini optimallashtirish va biznes-ilovalarning o'zlari ish mantig'ini optimallashtirishni o'z ichiga oladi.

Ko'rib chiqilayotgan barcha ilovalarni optimallashtirish mexanizmlari seans segmentatsiyasidan foydalanadi, uni mijoz va server o'rtasida uchta segmentga ajratadi: optimallashtirish qurilmasi va ish stantsiyasi o'rtasida, WAN tarmog'i orqali qurilmalar o'rtasida va optimallashtirish qurilmasi va ma'lumotlar markazi (server). Birinchi va uchinchi segmentlarda seans LAN orqali ishlaydi va TCP protokolidagi kamchiliklar dasturning kechikishiga ta'sir qilmaydi. Ikkinchi segment TCP tezligini sozlash orqali optimallashtirilgan. Natijada, zarur minimumlar ta'minlanadi: WAN orqali trafikni uzatishda kechikish va dasturga javob berish vaqtida. Keling, har bir optimallashtiruvchi ishlab chiqaruvchining qarorlari asosida bir shaklda yoki boshqa mexanizmlarni ko'rib chiqaylik.

Siqish mexanizmlari vaqt birligida axborot uzatishning axborot mazmunini oshirish orqali ma'lumotlarni uzatishni tezlashtirishga qodir. Ko'pincha tarmoq orqali uzatiladigan ma'lumotlar optimal bo'lmagan formatda taqdim etiladi va asossiz darajada katta hajmga ega. Endi ilovalarni ishlab chiqishda faol foydalanish, masalan, XML yoki matn shaklida ma'lumotlarni taqdim etish uchun boshqa tillar, ma'lumotlarni taqdim etish haqida tashvishlanishga hojat yo'q. Bu rivojlanish tezligi va qulayligini oshiradi, biroq ayni paytda tarmoq bo'ylab mohiyatan tuzilmagan ma'lumotlar uzatilishiga olib keladi, bu esa trafikka katta hajmdagi ortiqcha yuklarni kiritadi.

Trafikni siqish bu kamchilikni bartaraf qiladi. Ilovalarni optimallashtirish dvigatellari ma'lumotlarni yo'qotishsiz siqish algoritmidan (masalan, Lempel-Ziv) va takroriy bloklarni yo'q qilish algoritmidan foydalanadi. Ushbu ikkita algoritmning kombinatsiyasi bizga ma'lumotni yo'qotishsiz siqishning eng yuqori darajasiga erishishga imkon beradi va shu bilan ma'lumotni nisbatan past tezlikdagi kanallar orqali ham tez uzatishni ta'minlaydi.

Siqish funksiyasi u yoki bu shaklda deyarli har bir zamonaviy yo'riqnomada mavjud va aslida bu erda zamonaviy optimallashtiruvchilar o'z sayohatlarini boshladilar. Ko'pincha tarmoq ma'murlari bu o'z menejerlarini maxsus qurilmalarni sotib olishning hojati yo'qligiga ishontiradigan mashhur optimallashtirish deb hisoblashadi. Va bu erda ular noto'g'ri, biz keyinroq ko'rib chiqamiz.

Keshlash mexanizmlari shuningdek, uzatiladigan trafik miqdorini kamaytirishga yordam beradi. Tarqalgan tarmoqda ko'pincha kompaniyaning barcha xodimlari bir xil ma'lumotlarni uzatishi kerak bo'lgan holatlar yuzaga keladi. Masalan, dasturiy mahsulotlar yoki virusga qarshi dasturiy ta'minot ma'lumotlar bazalarini yangilashda, kompaniya rahbariyatidan, multimedia fayllari va o'quv dasturlaridan, ommaviy hujjatlar kutubxonalaridan so'rovlarni uzatishda. Optimallashtirish qurilmalaridan foydalanish ushbu ma'lumotni keshlash imkonini beradi, ya'ni WAN orqali bir marta uzatiladi va keyinchalik har bir foydalanuvchiga uzoq global resursdan emas, balki mahalliy (eng yaqin optimallashtirish qurilmasining qattiq diskidan) taqdim etiladi.

An'anaviy keshlash qurilmalaridan muhim farq shundaki, optimallashtiruvchilar ma'lumotni qismlarga/bloklarga ajratadi va ularni qattiq diskda saqlaydi. Bu shu nuqtai nazardan qiziqki, agar biz yangi uzatilgan fayldagi ma'lumotlarning bir qismini o'zgartirsak (masalan, hujjatga slayd yoki rasm qo'shsak), unda butun fayl emas, balki aynan o'zgarish uzatiladi. . O'tkazilgan ma'lumotlarni bloklarga dinamik ravishda ajratish va o'zgarishlarni kuzatish mexanizmlari xususiydir va oshkor etilmaydi. Agar ishning xususiyatlari haqida gapiradigan bo'lsak, ishlab chiqaruvchilar 2 ta yondashuvdan foydalanadilar. Ulardan birinchisining o'ziga xos xususiyati uning birlashuvidir, ya'ni. bitta faylni turli filiallarga o'tkazishda barcha masofaviy optimallashtirish qurilmalari uchun markaziy optimallashtiruvchida faylning faqat bitta nusxasi saqlanadi. Ikkinchi holda, qattiq disk maydoni masofaviy ofislar soniga mutanosib ravishda dinamik ravishda bo'linadi (masofaviy optimallashtiruvchilar) va agar bitta fayl barcha filiallarga uzatilsa, shunga o'xshash nusxa har bir qattiq disk segmentida "mas'ul" aks ettiriladi. uning filiali.

Shubhasiz, keshlash mexanizmi siqish mexanizmi bilan tandemda ishlaydi. Ushbu ikkita mexanizm tufayli optimallashtiruvchi ishlab chiqaruvchilar optimallashtirish darajasi 150-200X ga etishi mumkin bo'lgan chiroyli grafiklarni ko'rsatadilar. Biz bir xil katta hajmdagi ma'lumotlar faylini bir necha marta yuborishda bir xil ma'lumotlarni olishga muvaffaq bo'ldik, chunki birinchi uzatishdan so'ng u qurilma keshida saqlangan va keyin faqat qattiq diskdagi faylning joylashuviga ishora qiluvchi kilobayt havolalar uzatilgan. Bu erda darhol mantiqiy savol tug'iladi: qattiq diskning sig'imi qancha va tashqi xotirani optimallashtiruvchilarga ulash mumkinmi? Ba'zi ishlab chiqaruvchilar bir vaqtlar bunday uskunaning paydo bo'lishi mumkinligini ta'kidlashgan (lekin u faqat ma'lumotlar markaziga o'rnatish uchun mo'ljallangan).

TCP optimallashtirish mexanizmlari transport darajasida ishlash. Bu optimallashtiruvchi ishlab chiqaruvchilarning yuqori darajalarga (ilova) "ko'tarilishni" boshlashdan oldin asosiy "jang maydoni" dir. TCP transport protokoli 1980 yilda ishlab chiqilgan va bugungi kunda katta o'zgarishlarga duch kelmadi, ma'lumotlarni uzatish texnologiyalari esa sezilarli darajada o'zgardi. Paketlar yo'qolganda, standart TCP protokoli tezlikni keskin pasaytiradi - deyarli yarmiga va uning bu darajadan oshishi keyinchalik chiziqli va kichik bosqichlarda sodir bo'ladi. Shuning uchun, hatto nisbatan kichik darajadagi paket yo'qotilishi (2-3% yo'qotishlar normal hisoblanadi) tarmoq tezligining tez-tez va keskin yo'qolishiga olib keladi.

Optimallashtirilgan TCP protokoli, yo'qotish sodir bo'lganda, tezlikni 2 marta emas, balki bir necha foizga kamaytiradi va bitta paket yo'qolishi bilan tezlik juda oz pasayadi. Ma'lum bo'lishicha, tarmoq ilovalarining ishlashini optimallashtirish yechimi birinchi navbatda axborot uzatish tezligini oshiradi. Ma'lumot uzatish kanallarining butun o'tkazish qobiliyatidan maksimal darajada foydalanish TCP protokolining takomillashtirilgan ishlash tartibi bilan ta'minlanadi.

Ilova darajasini optimallashtirish mexanizmlari WAN kanallari orqali biznes ilovalarini tezlashtirishni taklif qiladi. Bu mashhur mahsulotlarda ba'zi protokollarni amalga oshirish, afsuski, mukammallikdan uzoqdir. Xususan, Microsoft tarmoqlarida faol foydalaniladigan CIFS (Common Internet File System) protokoli xizmat xabarlarining haddan tashqari hajmini (etkazib berishni tasdiqlash, qurilma tayyorligi va boshqalar) yaratadi. Mahalliy tarmoqda bu ortiqcha javob vaqtini sezilarli darajada kechiktirmaydi, lekin taqsimlangan tarmoqda ular sezilarli bo'ladi. Optimallashtirish qurilmalari muhim bo'lmagan xabarlarning ko'p qismini mahalliy ravishda qayta ishlashga qodir, WAN orqali uzatmasdan, trafik miqdorini kamaytiradi va tarmoq ilovalarining bir qator funktsiyalariga javob berish vaqtini qisqartiradi, masalan, tarmoqni chop etish, fayl xizmatlariga kirish va hk. Aslida, bugungi kunda ishlab chiqaruvchilar aynan shu sohada raqobatlashmoqda. Eng tez-tez optimallashtirilgan protokollar orasida CIFS, NFS, MAPI, Video, HTTP, SSL va Windows chop etish kiradi. Ushbu "janoblar to'plami" deyarli har qanday ishlab chiqaruvchining portfelida mavjud, ammo ular turli yo'llar bilan optimallashtirilgan.

Yuqorida aytilganlarning barchasidan kelib chiqadiki, manbadan qabul qiluvchiga trafik kamida ikkita optimallashtirish qurilmasi orqali o'tadi va ularning har birida u dasturgacha qayta ishlanadi.

Barcha optimallashtiruvchilar TCP-ga asoslangan ilovalar bilan ishlashini taxmin qilish qiyin emas, ya'ni qolgan trafik optimallashtirilmasdan o'tadi. Xuddi shu narsani shifrlangan trafik haqida ham aytish mumkin (istisno, ehtimol, SSL - ko'plab optimallashtiruvchilar seansni "buzishi", trafikni optimallashtirishi va qayta shifrlashi mumkin).

Aloqa operatorlari uchun xarajatlarni kamaytirishni xohlaydigan taqsimlangan tuzilishga ega kompaniyalar bunday yechimdan manfaatdor bo'lishi mumkin. Bu megabayt uchun tariflardan foydalanishda ham (ta'sir aniq) va cheksiz (pastroq tezlikdagi tarif rejalariga o'tish) da namoyon bo'lishi mumkin. Bugungi kunda, ehtimol, bu bunday qurilmalardan foydalanishning eng qiziqarli maqsadi. Aniq va shaffof bo'lmagan boshqa bonuslar bo'lishi mumkin: serverlarni birlashtirish, masofaviy ofislarda IT xodimlari sonining qisqarishi, dastur tezligining oshishi hisobiga samaradorlikning oshishi.

Optimallashtiruvchilarga qiziqish uchun kurashda ishlab chiqaruvchilar, shuningdek, noutbuklarga ixtisoslashtirilgan dasturiy ta'minotni o'rnatish orqali mobil xodimlarning ishini optimallashtirish imkoniyatlarini va uzoq ofisda bitta optimallashtiruvchi asosida virtual serverlarni o'rnatish imkoniyatini taklif qilishadi. Noutbuklar uchun dasturiy ta'minot kod bo'yicha optimizatorlarning o'zida dasturiy ta'minotga o'xshaydi, ya'ni. Noutbuk optimallashtiruvchiga o'xshaydi.

Tarqalgan tuzilishga ega kompaniyalardan tashqari, ushbu yechim kompaniyalarga optimallashtirish xizmatlarini (masalan, ijara) taqdim eta oladigan operatorlarni ham qiziqtirishi mumkin. Bunday xizmatlar Evropada mashhur bo'lib bormoqda.

Eng keng tarqalgan optimallashtirish yechimi, albatta, Cisco WAAS. Yaxshi sotuvchi marketingi, yaxshi yechim va rivojlanish strategiyasi o'z vazifalarini bajaradi. Arzon va ishonchli WAVE seriyasining paydo bo'lishi bilan Cisco ning mavqei yanada mustahkamlandi.

Juniper's WXC yechimi barcha trafik UDP tunneliga qadoqlanganligi bilan farq qiladi, ya'ni. optimallashtirish barcha trafikda sodir bo'ladi. Bu yondashuv, albatta, o'zining afzalliklariga ega. Men barcha trafik bo'yicha ancha yuqori "kasalxona o'rtacha" optimallashtirish qiymatini kiritgan bo'lardim (bir yirik mijoz bilan sinov asosida).

Riverbed Rossiyaga yaqinda kelgan, ammo o'zining sheriklik tarmog'ini faol rivojlantirmoqda. U raqobatdosh echimlarga nisbatan sezilarli afzalliklarga ega (masalan, vakolatli keshlash mexanizmi, ilovalarni optimallashtirish), ammo yechimning yuqori narxi hali ham mashhurligining o'sishiga to'sqinlik qilmoqda.

Yuqorida aytilganlarning barchasini umumlashtirib, shuni ta'kidlashni istardimki, WAN optimallashtirish biznes uchun juda shaffof, qiziqarli echimdir, ammo, afsuski, Rossiya kompaniyalarida hali ko'p talab qilinmagan. Amalga oshirish asosida trafikni o'rtacha 2-3,5 baravar kamaytirish va ilovalarga javob berishni sezilarli darajada tezlashtirish mumkin edi. Misol uchun, bizning mijozlarimizdan biri sun'iy yo'ldosh liniyalarida bir oylik sinov davomida taxminan 20 soat javoblarni saqlab qoldi. Kompaniyamiz uchun ushbu yechimning amalga oshirilishi tarmoq trafigini to'lashda ikki baravar tejashga erishish, shuningdek, korporativ ilovalar tezligini o'rtacha 1,7 barobar oshirish imkonini berdi. Shu bilan birga, loyihaga kiritilgan sarmoyadan olingan daromad atigi 3 oyni tashkil etdi.

Har qanday holatda, agar sizni qiziqtiradigan bo'lsa, avvalambor, taxminan bir oy davomida yechimni sinab ko'rish yaxshidir.Faqat shunday test natijalariga ko'ra optimallashtiruvchilarni amalga oshirishning ma'lum bir tarmoqqa nisbatan qanchalik samarali ekanligini aytish mumkin bo'ladi. Yechimni ishlab chiqish, sinovdan o'tkazish va o'rnatish uchun tajribali tizim integratorlarini jalb qilish yaxshidir.

Samarali SEO-ga saytni texnik optimallashtirishdagi bitta zerikarli xato to'sqinlik qilishi mumkin, ammo bu qidiruv tizimi robotlari resursni to'g'ri indekslay olmaydi, sayt tuzilishini tushuna olmaydi va foydalanuvchilar kerakli ma'lumotlarni topa olmaydilar. Bularning barchasi, o'z navbatida, saytning past reytingiga olib keladi.

Veb-saytni texnik optimallashtirish - qidiruv robotlari bilan o'zaro aloqasini yaxshilash uchun resursning texnik jihatlarini moslashtirishga qaratilgan chora-tadbirlar majmui. Texnik optimallashtirish sayt sahifalarini eng tez va to'liq indekslash imkonini beradi.

5 ta asosiy texnik optimallashtirish parametrlari

1. Robots.txt fayli

Shuni ta'kidlash kerakki, robots.txt fayli har bir resursning asosiy katalogida bo'lishi kerak. Bu PS robotlari saytga tashrif buyurganlarida kiradigan birinchi fayl va ular uchun ko'rsatmalar saqlanadi.

Ushbu fayl saytning indekslash parametrlarini belgilaydi: qaysi sahifalar qidiruv bazasiga kiritilishi kerak va qaysi sahifalar chiqarib tashlanishi kerak. Bundan tashqari, u bir vaqtning o'zida barcha qidiruv tizimi robotlari uchun ham, har bir qidiruv tizimining robotlari uchun ham ko'rsatmalarni belgilashi mumkin. Ushbu faylni kompilyatsiya qilish va uni sozlash haqida ko'proq bilib olishingiz mumkin Yandex veb-ustasi yordam saytida.

Faylni Yandex.Webmaster xizmatida tekshirishingiz mumkin, menyu elementi "Robots.txt tahlili" (https://webmaster.yandex.ru/robots.xml).

2. Sayt xaritasi - sayt xaritasi

Sayt xaritasi resurs sahifalaridan biri bo'lib, undagi ma'lumotlar oddiy kitob mazmuniga o'xshaydi. Ushbu sahifa navigatsiya elementi sifatida ishlatiladi. Sayt xaritasi bo'limlarning to'liq ro'yxatini va/yoki resursda joylashtirilgan barcha sahifalarni o'z ichiga oladi.

HTML sayt xaritasi foydalanuvchilarga ma'lumotni tez va oson topish uchun kerak, XML esa saytlarni indekslashni yaxshilash uchun qidiruv tizimlariga kerak.

Sayt xaritasi yordamida qidiruv robotlari butun tuzilmani ko'radi va yangi sahifalarni tezroq indekslaydi.

Sayt xaritasini tekshirish(https://webmaster.yandex.ru/sitemaptest.xml)

.html formatidagi to'g'ri sayt xaritasiga misol:

3. Qayta yo‘naltirishlar (yo‘naltirishlar)

Qayta yo'naltirish veb-saytga tashrif buyuruvchilarni bir sahifadan ikkinchisiga yo'naltirish uchun ishlatiladi. Qayta yo'naltirishlar nima uchun kerakligi haqida ko'plab misollar mavjud:

  1. Saytning domen nomini o'zgartirish.
  2. Kontrplak oynalari. Ko'pgina saytlarda www ni o'z ichiga olgan domendan wwwsiz domenga yoki aksincha sozlangan 301 yo'naltirish yo'q.

Qayta yo'naltirishlar .htaccess fayliga kiritilishi kerak. Qidiruv tizimlari site.ru va www.site.ru saytlarini turli saytlar deb hisoblashi mumkinligi sababli, natijalarda dublikatlar paydo bo'lishi mumkin. Bu qidiruv natijalari va hokazolarda reyting bilan bog'liq qiyinchiliklarni keltirib chiqaradi.

Qayta yo'naltirishning asosiy holati kodlari:

  • 300 - bir nechta variant (tanlash uchun bir nechta variant);
  • 301 - Doimiy ko'chirildi (abadiy ko'chirildi);
  • 302 - Vaqtinchalik qayta yo'naltirish;
  • 303 - Boshqaga qarang (so'ralgan manbani boshqa manzilda topish mumkin);
  • 304 - O'zgartirilmagan (tarkib o'zgartirilmagan - bu rasmlar, uslublar jadvallari va boshqalar bo'lishi mumkin);
  • 305 - Proksi-serverdan foydalaning (kirish proksi-server orqali bo'lishi kerak);
  • 306 - foydalanilmagan (ishlatilmagan).

Sahifa javoblarini aniqlash uchun foydali xizmat: http://www.bertal.ru/

4. URL sahifa ko'rinishini moslashtirish

Saytning barcha sahifalari manzillari mos kelishini tekshirish uchun uni tekshirish muhimdir. Misol uchun, butun sayt bo'ylab sahifalarda yopilish chizig'i bo'lishi kerak: http://site.ru/katalog/ va http://site.ru/products/ . Agar ba'zi sahifalar http://site.ru/katalog, ba'zilari esa http://site.ru/products/ kabi ko'rinsa, bu noto'g'ri.

Sayt xaritasini yaratgandan so'ng, ichki manba sahifalarining manzillarini xatolar uchun tekshirish qulay bo'ladi.

5. Saytdagi xatolar

Saytdagi istalgan sahifa yuklanganda serverga so‘rov yuboriladi, u HTTP holat kodi bilan javob beradi va sahifani yuklaydi (yoki yuklamaydi).

Asosiy holat kodlari:

  • 200 - sahifa yaxshi;
  • 404 - mavjud bo'lmagan sahifa;
  • 503 - server vaqtincha ishlamayapti.

"404 xato" optimallashtirishning eng muhim texnik parametrlaridan biri bo'lib, uni yaxshilash kerak.

Agar sahifa mavjud bo'lsa va server uni so'rashda 404 xatosi haqida xabar bersa, sahifa qidiruv tizimlari tomonidan indekslanmaydi. Aks holda, bir xil matnga ega bo'lgan ko'p sonli sahifalar indeksga tushishi mumkin, bu reytingga juda salbiy ta'sir qiladi.

Siz http://www.bertal.ru/ yoki Yandex.Webmaster yordamida holat kodlarini tekshirishingiz mumkin.

Biz faqat saytni texnik takomillashtirishning asosiy parametrlarini ko'rib chiqdik, siz birinchi navbatda e'tibor berishingiz kerak. Agar veb-saytingizda bunday xatolarni topsangiz yoki ularni bartaraf etishda qiynalsangiz, faqat professional SEO kompaniyasi bilan bog'laning.

Server ish faoliyatini oshirish uchun bir nechta usullardan foydalanishingiz mumkin, ammo eng yaxshisi optimallashtirishdir.

Operatsion tizimni optimallashtirish (FreeBSD)

  • 7.x ga o'tish ko'p yadroli tizimlar uchun foydalidir, chunki yangi ULE 3.0 Scheduler va jemalloc dan foydalanish mumkin. Agar siz eski 6.x tizimidan foydalansangiz va u yukni bardosh bera olmasa, 7.x ga o'tish vaqti keldi.
  • 7.2 ga o'tish KVA ni oshirish, sukut bo'yicha sysctl optimallashtirish va super sahifalardan foydalanish imkonini beradi. Yangi FreeBSD 8.0 tayyorlanmoqda, bu esa unumdorlikni sezilarli darajada oshirishga yordam beradi.
  • Amd64 ga o'tish KVA va umumiy xotira hajmini 2 Gb dan ortiq oshirish imkonini beradi. Serverni rivojlantirish uchun shart-sharoit yaratish kerak, chunki ma'lumotlar bazalari doimiy ravishda o'sib boradi va kattaroq hajmlarni talab qiladi.
  • Tarmoq quyi tizimini tushirish FreeBSD-da serverni optimallashtirishga yordam beradi. Bu jarayon ikki bosqichda amalga oshirilishi mumkin: ifconfig parametrlarini va sysctl.conf/loader.conf sozlamalarini sozlash. Tayyorgarlik bosqichida siz tarmoq kartasining imkoniyatlarini tekshirishingiz kerak. Yandex-dan drayverlar bir nechta iplardan foydalangan holda tezlikni oshirishga yordam beradi, ular ko'pincha ko'p yadroli jarayonlar uchun ishlatiladi. Uchinchi darajali tarmoq kartasi uchun so'rovnoma eng yaxshi echimdir. FreeBSD 7 sozlashining so‘nggi yangilangan versiyasi muammoni hal qilishga yordam beradi.
  • FreeBSD va juda ko'p sonli fayllar katalogdagi fayl nomlarini keshlash tufayli ajoyib ishlaydi. Xesh jadvalini qidirish sizga kerakli faylni tezda topishga yordam beradi. Maksimal xotira hajmi taxminan 2MB bo'lsa-da, vfs.ufs.dirhash_mem ruxsat bergan ekan, uni ko'paytirishingiz mumkin.
  • Yumshoq yangilanishlar, jurnalVao'rnatish variantlari- Bu ajoyib ishlashga ega bo'lgan yangi terabayt vintlardir. Agar elektr quvvati o'chib qolsa, ularning fsck juda uzoq vaqt talab etadi, shuning uchun siz dasturiy yangilanishlardan foydalanishingiz yoki gjournal orqali tizimga kirishingiz mumkin.

Frontend optimallashtirish (nginx)

Ushbu turni muddatidan oldin optimallashtirish sifatida tasniflash mumkin, garchi u saytning umumiy javob vaqtini oshirishga yordam beradi. Standart optimallashtirishlar orasida reset_timedout_connection ga e'tibor qaratish lozim; yuborish fayli; tcp_nopush va tcp_nodelay.

  • Filtrlarni qabul qilish yangi ma'lumotlar kelgan yoki haqiqiy http so'rovini olgan taqdirda yadrodan ma'lumotni jarayonga o'tkazish imkonini beruvchi texnologiya. Ushbu filtrlar juda ko'p ulanishlar mavjud bo'lganda serverni engillashtirishga yordam beradi.
  • Keshlash nginx moslashuvchanligi bilan ajralib turadi va fastcgi yoki proksi-serverlardan ishlab chiqariladi. Har kim o'z loyihasida keshlashdan oqilona foydalanishi mumkin.
  • AIO ba'zi bir maxsus server yuklari uchun juda foydali, chunki u ishchilar sonini kamaytirish bilan birga javob vaqtini tejaydi. Nginx ning yangi versiyalari aio dan sendfile bilan tandemda foydalanish imkonini beradi.

Backend optimallashtirish

  • APC OPda kompilyatsiya qilingan kodni keshlash orqali yukni kamaytirish imkonini beruvchi ramka hisoblanadi. APC blokirovkasini yangilashga arziydi, chunki u sekinlashishi mumkin va ko'pchilik APC o'rniga eAccelerator-dan foydalanishni boshlaydi. Qulflashni spinlock yoki pthread mutex bilan almashtirishga arziydi. Agar ko'p sonli .php fayllar mavjud bo'lsa yoki ular APC foydalanuvchi keshida tez-tez keshlangan bo'lsa, APC maslahatlari qiymatini oshirish kerak. APC parchalanishi APC dan noto'g'ri foydalanayotganligingizning belgisidir. U TTL yoki LRU tomonidan yozuvlarni mustaqil ravishda o'chira olmaydi.
  • PHP 5.3 unumdorlikni oshirishga yordam beradi, shuning uchun PHP versiyasini yangilashga arziydi, garchi eskirgan funksiyalar ro'yxati ko'pchilikni qo'rqitishi mumkin.

Ma'lumotlar bazasini optimallashtirish

Internetda MySQL ish faoliyatini yaxshilash bo'yicha ko'plab g'oyalar mavjud, chunki har bir veb-loyiha ertami-kechmi xotira, disk yoki protsessor hajmida cheklovlarga duch keladi. Shuning uchun oddiy echimlar muammoni hal qilishga yordam bermaydi, profilerlarga (dtrace, systemtap va oprofile) ko'proq vaqt sarflashga arziydi, shuningdek ko'p sonli qo'shimcha dasturlardan foydalanishga arziydi. Bu nafaqat indekslardan mukammal foydalanish, ularni saralash va guruhlash, balki bularning barchasi MySQL ichida qanday ishlashini bilish ham kerak. Shuningdek, siz turli xil saqlash mexanizmlarining afzalliklari va kamchiliklarini bilishingiz, Query keshini tushunishingiz va EXPLAIN qilishingiz kerak.

MySQL-ni, hatto kodlarni o'zgartirmasdan ham optimallashtirishning bir necha usullari mavjud, chunki serverni sozlashning yarmi yarim avtomatik rejimda tuningprimer, mysqltuner va mysqlsla utilitlari yordamida amalga oshirilishi mumkin.

  • 5.1 ga o'tish ko'plab afzalliklarni beradi, ular orasida optimallashtiruvchi optimallashtirish, bo'limlar, InnoDB plagini va qatorga asoslangan replikatsiyani ta'kidlash kerak. Saytni tezlashtirish uchun ba'zi ekstremal sport ixlosmandlari allaqachon 5.4 versiyasini sinab ko'rishmoqda.
  • InnoDB-ga o'tish ko‘plab imtiyozlar beradi. U ACIDga mos keladi, shuning uchun har qanday operatsiya faqat bitta tranzaksiya bilan amalga oshiriladi. U qator darajasida blokirovkaga ega, bu bir vaqtning o'zida bir-biridan ajratilgan holda ko'plab iplarni o'qish va yozish imkonini beradi.
  • O'rnatilgan MySQL keshi - So'rov keshi tushunish juda qiyin, shuning uchun ko'p foydalanuvchilar uni mantiqsiz ishlatishadi yoki uni o'chirib qo'yishadi. Uning uchun ko'proq narsa yaxshiroq degani emas, shuning uchun bu quyi tizimni maksimal darajada oshirishga arzimaydi. So'rov keshi parallellashtirilgan; natijada, agar sakkizdan ortiq jarayon ishlatilsa, u butun jarayonni sekinlashtiradi va saytni yuklash vaqtini qisqartirishga yordam bermaydi. Muayyan jadvalga tegishli bo'lgan ushbu quyi tizimning mazmuni ushbu jadvalga o'zgartirishlar kiritilganda o'z kuchini yo'qotadi. Bu shuni anglatadiki, Query Cache faqat yaxshi tuzilgan jadvallardan foydalanganda ijobiy natijalar beradi.
  • Indekslar SELECT (agar ular mavjud bo'lmasa) va INSERT/UPDATE (agar qo'shimchalar mavjud bo'lsa) uchun zararli bo'lishi mumkin. Foydalanilmayotgan indeks hanuzgacha xotirani egallaydi va shu bilan ma'lumotlar o'zgarishini sekinlashtiradi. Ushbu muammoni hal qilish uchun siz oddiy SQL so'rovidan foydalanishingiz kerak.

PostgreSQL

Postgres tizimi juda ko'p qirrali, chunki u Enterprise sinfiga tegishli va Skype unda juda yaxshi ishlaydi, lekin ayni paytda uni hatto mobil telefonga o'rnatish ham mumkin. Mavjud 200 ta parametrdan 45 tasi asosiy va sozlash uchun javobgardir.

Internetda Postgres-ni sozlash bo'yicha juda ko'p foydali ma'lumotlarni topishingiz mumkin. Ammo ba'zi maqolalar allaqachon eskirgan, shuning uchun siz nashr etilgan kundan boshlab vakuum_mem kaliti yoki care_mem ning yangi versiyalarida ishlatiladigan ma'lumotlarga e'tibor berishingiz kerak. Ilg'or dasturchilar ko'plab yuqori sifatli risolalarni topa oladilar, quyida biz faqat oddiy foydalanuvchiga o'z loyihasini yaxshilashga yordam beradigan asoslarni sanab o'tamiz.

  • Indekslar PostgreSQL har doim birinchi o'rinda turadi, MySQLda esa ular doimo oxirgi o'rinlarni egallaydi va buni PostgreSQL indekslarining ulkan imkoniyatlarga ega ekanligi bilan izohlash mumkin. Dasturchi bunday indekslarni yaxshi tushunishi va qachon va qaysi biri GiST, GIN, xesh va B-daraxt, shuningdek, qisman, ko'p ustunli va ifodalar bo'yicha ishlatilishi kerakligini bilishi kerak.
  • pgBouncer va uning muqobillari avval ma'lumotlar bazasi serveriga o'rnatilishi kerak. Ulanish birlashmasi bo'lmasa, har bir so'rov RAMdan foydalanadigan alohida jarayonni yaratadi. Hech qanday yomon narsa yo'qdek tuyuladi, lekin 200 dan ortiq ulanishlarni yaratishda, hatto juda kuchli server ham ma'lumotni qayta ishlashda qiyinchiliklarga duch keladi. pgBouncer bu muammoni hal qilishga yordam beradi.
  • pgFouine Bu ajralmas dasturdir, chunki uni php-da mysqlsla-ning analogi deb atash mumkin. Playr bilan tandemda u staging serverlarida qiyin sharoitlarda so'rovlarni optimallashtirishni amalga oshirishi mumkin.

Ma'lumotlar bazasini yuklash

Ma'lumotlar bazasining ishlashini optimallashtirish va uning ishlashini oshirish uchun uni iloji boricha kamroq ishlatish kerak.

  • SfenksQL MySQL serveri sifatida foydalanish mumkin. Buni amalga oshirish uchun siz shunchaki sphinx.conf ni, shuningdek, cron-da indeksator uchun yozuvlarni yaratishingiz va boshqa ma'lumotlar bazasiga o'tishingiz kerak. Ushbu harakatlar bilan hatto kodni o'zgartirishga hojat yo'q. SphinxQL-ga o'tish qidiruv tezligi va sifatini yaxshilashga yordam beradi va MyISAM va FTS haqida unutadi.
  • RDBMS bo'lmagan saqlash relyatsion ma'lumotlar bazasidan foydalanmaslikka imkon beradi. Hive yoki Oracle-ni tanlashingiz mumkin. Kalit-qiymatli ma'lumotlar bazasi o'zining tezligi tufayli keyingi keshlash uchun relyatsion ma'lumotlar bazalaridan tanlovlardan foydalanadi. Katta PHP loyihalari egalari barcha maxsus ma'lumotlarni saqlash uchun mukammal opcode kesh xususiyatidan foydalanishlari mumkin. Uning yordami bilan siz hatto global ahamiyatga ega bo'lgan o'zgarishlarni ham ishonchli saqlashingiz mumkin, chunki ular kam joy egallaydi va amalda xotirani egallamaydi va namuna olish tezligi ham sezilarli darajada oshishi mumkin. Agar yirik loyiha uchun global o'zgarishlar bloki faqat bitta mashinaga yozilsa, u holda trafik ko'payadi va u juda sekinlasha boshlaydi. Ushbu muammoni hal qilish uchun siz global o'zgaruvchilarni opcode keshrida saqlashingiz yoki barcha serverlarda o'zgaruvchilarni klonlashingiz va izchillik xesh algoritmiga istisnolar qo'shishingiz kerak.
  • Kodlashlar ma'lumotlar bazasini tushirishning samarali usullariga murojaat qiling. Shuni ta'kidlash kerakki, UTF-8 juda yaxshi tanlovdir, lekin rus tilida u juda ko'p joy egallaydi, shuning uchun bir tilli kontingent uchun birinchi navbatda kodlashdan oqilona foydalanish haqida o'ylash kerak.
  • Asinxroniya ilova yoki veb-saytning javob vaqtini qisqartirishga yordam beradi, shuningdek, serverning o'ziga yukni sezilarli darajada kamaytiradi. To'plamli so'rovlar odatdagidan ko'ra tezroq amalga oshiriladi. Katta loyihalar uchun RabbitMQ, ApacheMQ yoki ZeroMQ xabarlaridan, kichik loyihalar uchun esa faqat crondan foydalanishingiz mumkin.

Optimallashtirish uchun qo'shimcha ilovalar

  • SSHGuard yoki uning muqobili ssh uchun standart amaliyotdir. Anti-brute force bot hujumlaridan ishonchli server himoyasini yaratishga yordam beradi.
  • Xtrabackup Percona'dan juda ko'p sozlamalarga ega ajoyib MySQL zaxira vositasi. Ammo ideal yechim hali ham ZFSda klonlarni chaqirishdir, chunki ular juda tez yaratiladi va ma'lumotlar bazasini tiklash uchun mushaklar konfiguratsiyasidagi fayllarga yo'llarni o'zgartirish kifoya. Klonlar tizimingizni noldan tiklashga imkon beradi.
  • Pochtani boshqa xostga o'tkazing serveringiz shunchaki spam bilan bombardimon qilinsa, trafik va IOPlarni saqlaydi.
  • Uchinchi tomon dasturlari bilan integratsiya MySQL serverini optimallashtirishga yordam beradi. Misol uchun, siz smtp/imap ulanishidan xabar almashish uchun foydalanishingiz mumkin, bu ko'p xotirani egallamaydi. Suhbat yaratish uchun jabber serverining asosini javascript mijozi bilan ishlatish kifoya. Tayyor mahsulotlar uchun adapterlarga asoslangan ushbu tizimlar yuqori darajada kengaytirilishi mumkin.
  • Monitoring juda muhim komponent hisoblanadi, chunki batafsil tahlilsiz biror narsani optimallashtirish mumkin emas. Ishlash ko'rsatkichlarini, bepul resurslarni va kechikishlarni kuzatish kerak; Zabbix, Cacti, Nagios va boshqa vositalar bunga yordam beradi. Veb ishlash testi veb-sayt yoki loyihaning yuklanish tezligini hisoblash imkonini beradi, shuning uchun u monitoringda juda foydali. Ishlash serverini o'rnatishda esda tutingki, faqat to'liq tahlil barcha muammolarni bartaraf etishga va optimallashtirishni amalga oshirishga yordam beradi.

Agar siz yozilganlarning yarmini tushunmagan bo'lsangiz, bu muhim emas.