Серверүүдэд зориулсан техникийн оновчтой шийдэл. SO Серверийн дэд бүтцийг оновчтой болгох. техникийн оновчлолын үндсэн үзүүлэлтүүд

Саяхан би 1C-Bitrix дээр онлайн дэлгүүр ажиллуулах зориулалтын сервер байгуулахад тусламж хүссэн хүсэлтийг хүлээн авсан. Хүсэлт гаргах болсон шалтгаан нь сайтын ажиллагаа удаан байгаатай холбоотой.
Бид сайтыг харлаа - үнэхээр зарим хуудсыг ачаалахад нэг минутаас илүү хугацаа шаардагддаг !!! Сайтыг үзэхэд хамгийн түрүүнд санаанд орсон зүйл бол өөр хөгжүүлэгчийн боловсруулсан бүрэлдэхүүн хэсгүүдийн оновчтой бус гүйцэтгэл байв. Гэхдээ ижил хэмжээгээр биш ...

Анхны өгөгдөл: Xeon дээрх сервер - 2 ГБ санах ой, RAID. Үйлдлийн систем - FreeBSD. АВТОБУС - Бизнес.

За, ямар нэгэн байдлаар нөхцөл байдлыг засахыг хичээцгээе ...
Энэ нийтлэл нь модультай ажиллах заавар биш, харин модулийг ашиглах бодит жишээ гэдгийг би даруй мэдэгдье. Магадгүй хэн нэгэнд хэрэг болох байх.

Шалгалтын дараа дараахь үндсэн асуудлуудыг тодорхойлсон.
1. Та сервер дээрээ PHP хурдасгуур суулгах хэрэгтэй
2. /үнэ/ хуудсан дээрх “nvisions:menu.sections” бүрэлдэхүүн хэсэг нь том асуудалтай байна - мэдээллийн санд хүсэлт үүсэж, бараг нэг минутын турш боловсруулагддаг - энэ нь хуудсыг удаан ачаалах гол шалтгаан юм. , түүнчлэн сервер дээр их хэмжээний ачаалал.
3. Өгөгдлийн сан удаан ажилладаг (секундэд 687 бичих хүсэлт маш бага), асуудал серверийн тохиргоонд байж магадгүй. Та хүснэгтүүдийг InnoDB болгон хөрвүүлж, InnoDB-г тохируулах хэрэгтэй
4. Файлын систем тийм ч хурдан биш, энэ нь серверийн техник хангамжийн онцлогтой холбоотой байж болох юм (жишээ нь RAID), гэхдээ зарчмын хувьд сайт энэ хурдаар сайн ажиллах ёстой.
5. Сайтын загварт асуудал байна (байгаагүй холбоосууд байдаг), үүнийг арилгах шаардлагатай - энэ нь маш их нөөц шаарддаг.
6. Сервер дээр хоёр түвшний архитектурыг тохируулах шаардлагатай (nginx-ээр статик контентоор үйлчлэх), энэ нь Apache серверийн ачааллыг мэдэгдэхүйц бууруулж, ачааллын үед санах ойн зарцуулалтыг тогтворжуулж, ажлыг хурдасгаж, найдвартай байдлыг нэмэгдүүлэх болно. төсөл бүхэлдээ.

1C-Bitrix гүйцэтгэлийн модулийн мэдээлэлд дүн шинжилгээ хийцгээе.

Зураг нь мэдээллийн сангийн сервертэй холбоотой асуудлуудыг тодорхой харуулж байгаа тул тохиргоо нь оновчтой биш байх магадлалтай тусгай сервер.
Файлын үйлдлийн тоо бас сэжигтэй бага байна.


/price/index.php хуудсан дээрх код эсвэл бүрэлдэхүүн хэсгүүдтэй холбоотой тодорхой асуудлууд
/bitrix/urlrewrite.php-д зориулсан сэжигтэй урт хугацаа - цааш харна уу:

Тийм ээ, энэ бол асуудлын эх сурвалж юм: загвар нь байхгүй зургийн холбоосыг агуулж байгаа бөгөөд энэ нь 404 алдаа үүсгэдэг бөгөөд Apache-г энэ алдааг боловсруулж, бүрэн хуудас үүсгэхийг шаарддаг.

Үүнтэй ижил асуудал нь асуудалтай загвартай холбоотой сайтын бүх хуудсанд нөлөөлдөг:


Энэ хуудсан дээрх асуудалтай бүрэлдэхүүн хэсгүүд энд байна:


Цэсийн бүрэлдэхүүн хэсэг кэшийг идэвхгүй болгосон байна.
Хуудасны хураангуй:

За ингээд хурдан дүн шинжилгээ хийе. Гүйцэтгэлийн модуль нь "асуудал хаана байгааг" хэлж өгдөг. Алдааг олж засварлаж эхэлцгээе:

Бид холбоос байгаа зургийг нэмсэн, зүгээр л зураг нэмсэн, холбоосыг устгаагүй, учир нь... гуравдагч талын бүрэлдэхүүн хэсгүүдийг оруулаад олон холбоосууд байсан. Мөн энэ хуудсан дээр бид гуравдагч талын асуудалтай бүрэлдэхүүн хэсгийг (nsvision: menu.sections) идэвхгүй болгосон. зорилго нь тодорхойгүй байна. (салгасны дараа гаднаас юу ч өөрчлөгдөөгүй)
Үр дүн:


Urlrewrite.php одоо хит болгонд дуудагддаггүй



Таны харж байгаагаар ажлын хурд 2 дахин нэмэгдсэн (!).

Үргэлжлүүлье:
Хурдасгагч суурилуулж байна. Би хурдасгуурыг хэрхэн суулгаж байгааг тайлбарлахгүй, учир нь ... шаардлагатай бол энэ мэдээллийг интернетээс үргэлж олж болно.







eAccelerator суулгасны дараах үр дүн: Бүтээмж дахин хоёр дахин нэмэгдэнэ.

Үргэлжлүүлье: Мэдээллийн санг оновчтой болгох(InnoDB руу шилжүүлж, тохиргоог оновчтой болгох)


Гүйцэтгэлийн модулийн тестээс харахад мэдээллийн сангийн хурд мэдэгдэхүйц нэмэгдсэн байна
Ерөнхийдөө мэдээллийн баазыг оновчтой болгосны дараа ерөнхий гүйцэтгэл өөрчлөгдөөгүй хэвээр байгаа нь файлын системийн удаан ажиллагаатай холбоотой байж магадгүй юм.

ШИНЭЧЛЭХ:
Гүйцэтгэлийн модулийн зөвлөмжүүд.
Модулийн зөвлөмжийн дагуу бид "open_basedir" параметрийг идэвхгүй болгосон, учир нь сервер нь зөвхөн манай төсөлд зориулагдсан тул аюулгүй байдлыг бүхэлд нь алдагдуулахгүй гэсэн үг юм.

Үр дүн:


Үр дүн нь тэдний хэлснээр БОЛОМЖТОЙ

Үлдсэн зүйл бол "тахир" бүрэлдэхүүн хэсгүүдийг дахин бичих бөгөөд төсөл нисэх болно.

Бид мөн nginx-ийг Apache-д зориулсан прокси сервер болгон суулгаж, тохируулсан. Би зураг оруулаагүй, учир нь ... тоо бараг өөрчлөгдөөгүй хэвээр байна. Гэхдээ субъектив үнэлгээгээр хуудаснууд одоо хоёр дахин хурдан ачаалагдаж байна.

Загварыг үүсгэхэд нэлээд удаан хугацаа шаардагддаг (үүсгэх хугацаа нь системийн цөмтэй бараг ижил байдаг) - кодыг өмнөх хөгжүүлэгч оновчтой бичээгүй бололтой. Хэн нэгний кодыг задлан шинжлэх цаг, төсөв, хүсэл алга. Кодоо эхнээс нь бичих нь илүү хялбар, хурдан бөгөөд хямд юм.

Ерөнхийдөө: Гүйцэтгэлийн модуль нь төсөл болон серверийн ажиллагааг дибаг хийх маш хэрэгтэй бөгөөд тохиромжтой хэрэгсэл юм. Үүний тулд хөгжүүлэгчиддээ баярлалаа.

P.S. Би хувьдаа Линукс дээр ажиллаж байсан туршлага багатай. Би анх удаа FreeBSD-тэй ойр дотно танилцсан. Зарим программ хангамжийг суулгасны дараа тохиргооны файлууд (жишээ нь, MySQL) бүрэн хоосон байгаад би гайхсан. Програм хангамжийг "портууд" -аас суулгахад хялбар байгаад би сэтгэл хангалуун байсан.

", "Өгөгдөл дамжуулах систем" чиглэл.

WAN оновчлолын техникийн нарийн ширийнийг судлахын өмнө энэ нь юу болох, юунд зориулагдсан болохыг олж мэдье.

Сүүлийн үед МТ-ийн бүтцийг төвлөрсөн бус тооцооллын загварт шилжүүлж байгаа нь тодорхой болж, компаниуд процессын төвөө дэлхий даяар тарааж байна. Үүний үр дүнд корпорацийн дата төвөөс (ДЦ) гадуур хадгалагдаж буй мэдээллийн хэмжээ, мэдээллийн технологийн нөөцийн тоо нэмэгдэж, хэлтсийн дарга нар мэдээллийн технологийн дэд бүтцээ нэгтгэх арга замыг хайж байна. Аж ахуйн нэгжүүд дэд бүтцийн нарийн төвөгтэй байдлыг багасгах, зардлыг бууруулах, нөөцийн ашиглалтыг сайжруулах, өгөгдлийг хамгаалах зэрэгт нэгтгэх үр өгөөжийг ойлгосон.

Нөөц болон өгөгдлийг төвлөрүүлэх нь дээр дурьдсан ашиг тусыг харуулж байгаа боловч мэдээллийн технологийн дэд бүтцээ оновчтой болгохоор төлөвлөж буй байгууллагуудын анхаарах ёстой олон бэрхшээлүүд байдаг. Тэдэнд тулгарах асуудлын нэг бол програмын гүйцэтгэл удаашрах явдал юм. Түгээмэл тооцооллын загварын түгээмэл байдал нь хамгийн их гүйцэтгэлийг хангахын тулд мэдээллийн технологийн нөөцийг тархсан сүлжээний хэрэглэгчдэд аль болох ойр байлгах хэрэгцээ шаардлагаас ихээхэн шалтгаалсан. Төвлөрсөн байршилд серверүүдийг нэгтгэх нь нөөцийн хуваарилалтын хэв маягийг эргүүлж, улмаар олон програмын гүйцэтгэлийг бууруулдаг.

Асуудлыг шийдэхийн тулд байгууллагууд хариу өгөх хугацааг багасгахын тулд WAN холбоосын чадавхийг өргөжүүлж байна. Дараа нь тэд сувгийг өргөжүүлэх нь програмын хурдад бараг ямар ч (эсвэл хамгийн бага) нөлөө үзүүлэхгүйг олж мэдэв, учир нь асуудал нь сувгаар өгөгдөл дамжуулах их саатал, WAN-тай ажиллахад үр дүнгүй протоколуудыг ашиглах явдал юм. Үүнээс гадна, Москвагаас гадна зурвасын өргөнийг өргөжүүлэх нь ерөнхийдөө зардал багатай байж магадгүй юм. Ийм ажлуудад WAN сувгийг оновчтой болгох төхөөрөмжийг ашигладаг.

Дэлхий даяар ийм WAN оновчлолын шийдлүүд нь байгууллагын зардлыг хэд хэдэн аргаар бууруулж чаддаг.

    холбооны сувгийн зурвасын өргөний зардлыг бууруулах. Үнэн хэрэгтээ байгууллагууд нэмэлт зурвасын өргөнийг худалдан авахгүйгээр хийх боломжтой бөгөөд энэ нь WAN оновчтой болгох төслүүдийг эхлүүлэхэд олон компаниудын гол нөхцөл болдог;

    мэдээллийн төвд дэд бүтцийг нэгтгэх. Компаниуд мэдээллийн технологийн дэд бүтцийн нэлээд хэсгийг (файл болон шуудангийн серверүүд, програм хангамжийн түгээлтийн серверүүд, SharePoint порталууд, соронзон хальсны хөтчүүд гэх мэт) алслагдсан оффисуудаас гүйцэтгэл, удирдах чадвараа алдалгүйгээр устгах боломжтой болно;

    алслагдсан оффисын дэд бүтцийг хялбарчлах. Зарим үйлдвэрлэгчид төхөөрөмждөө өгөгдлийн төвийг нэгтгэсний дараа үлдсэн зарим үйлчилгээг (жишээлбэл, хэвлэх сервер, DHCP сервер, файлын үйлчилгээ) оновчтой болгох төхөөрөмж дээр шууд байршуулах боломжийг олгодог програм хангамжийн платформыг санал болгодог. Энэ нь үйл ажиллагааны зардлыг цаашид бууруулах боломжтой болгодог.

WAN оновчлол гэж юу вэ? Сүлжээний програмуудын ажиллагааг оновчтой болгох шийдэл нь клиент-серверийн архитектур болон сүлжээний хэрэглээний сессийн зарчмыг ашигладаг. Үүний гол ажил бол програмын сессийг оновчтой болгох явдал юм. Үндсэндээ энэ нь компанийн төв болон бүс нутгийн (орон нутгийн) оффис бүрт суулгасан програмуудын гүйцэтгэлийг сайжруулах төхөөрөмжүүдийн багц юм. Тэд бүх траффикийг өөрсдөө дамжуулж, програмын ажлын хэсгүүдийг "барьж", оновчтой болгодог.

Урт WAN сувгаар траффик дамжуулалтыг оновчтой болгох чиглэлээр олон тооны үйлдвэрлэгчид шийдлүүдийг санал болгодог. Оросын зах зээл дээрх хамгийн алдартай нь Riverbed (SteelHead бүтээгдэхүүнтэй), Cisco (WAAS бүтээгдэхүүн), Juniper (WXC бүтээгдэхүүн) болон BlueCoat (ProxySG бүтээгдэхүүн) юм.

Тэдний санал болгож буй тоног төхөөрөмжийг оновчтой болгох үйл явц нь өгөгдлийг шахах, кэш хийх, TCP протоколыг оновчтой болгох, бизнесийн програмуудын үйлдлийн логикийг оновчтой болгох зэрэг ойролцоогоор ижил механизмд суурилдаг.

Хэрэглэж буй бүх программыг оновчтой болгох механизмууд нь сесс сегментчиллийг ашигладаг бөгөөд үүнийг клиент ба серверийн хооронд гурван сегмент болгон хуваадаг: оновчлолын төхөөрөмж ба ажлын станцын хооронд, WAN сүлжээгээр дамжуулан төхөөрөмжүүдийн хооронд, оновчлолын төхөөрөмж ба мэдээллийн төв (сервер) хооронд. Эхний болон гурав дахь сегментүүдэд сесс нь LAN-аар дамждаг бөгөөд TCP протоколын дутагдал нь програмын хоцролтод нөлөөлдөггүй. Хоёрдахь сегментийг TCP хурдыг тохируулах замаар оновчтой болгодог. Үүний үр дүнд шаардлагатай хамгийн бага хэмжээ нь хангагдана: WAN-ээр траффик дамжуулах, програмын хариу өгөх хугацаа зэрэг. Оптимизатор үйлдвэрлэгч бүрийн шийдвэрийн үндэс суурь болох механизмуудыг авч үзье.

Шахалтын механизмууднэгж хугацаанд мэдээлэл дамжуулах мэдээллийн агуулгыг нэмэгдүүлэх замаар өгөгдөл дамжуулах ажлыг хурдасгах боломжтой. Ихэнхдээ сүлжээгээр дамжуулж буй өгөгдлийг оновчтой бус форматаар танилцуулж, үндэслэлгүй том хэмжээтэй байдаг. Одоо, жишээлбэл, XML эсвэл бусад хэлийг текст хэлбэрээр танилцуулах зорилгоор програм хөгжүүлэхэд идэвхтэй ашигласнаар өгөгдлийн дүрслэлд санаа зовох шаардлагагүй болсон. Энэ нь хөгжүүлэлтийн хурд, хялбар байдлыг нэмэгдүүлэх боловч үүнтэй зэрэгцэн сүлжээгээр үндсэндээ бүтэцгүй өгөгдөл дамжуулахад хүргэдэг бөгөөд энэ нь траффикт их хэмжээний илүүдэл үүсгэдэг.

Хөдөлгөөний шахалт нь энэ дутагдлыг арилгадаг. Хэрэглээний оновчлолын хөдөлгүүрүүд нь өгөгдлийг алдагдалгүй шахах алгоритм (жишээ нь Lempel-Ziv) болон давхардсан блок арилгах алгоритмыг ашигладаг. Эдгээр хоёр алгоритмын хослол нь мэдээллийг алдагдалгүй шахах хамгийн дээд түвшинд хүрэх боломжийг олгодог бөгөөд ингэснээр харьцангуй бага хурдтай сувгуудаар ч гэсэн мэдээллийг хурдан дамжуулах боломжийг олгодог.

Шахалтын функцийг нэг хэлбэрээр эсвэл өөр хэлбэрээр бараг бүх орчин үеийн чиглүүлэгчид олдог бөгөөд үнэн хэрэгтээ орчин үеийн оновчлогчид аялалаа эхлүүлсэн газар юм. Ихэнх тохиолдолд сүлжээний администраторууд үүнийг алдартай оновчлол гэж үздэг бөгөөд менежерүүдээ тусгай төхөөрөмж худалдаж авах шаардлагагүй гэж итгүүлдэг. Эндээс тэдний буруу байгааг бид дараа нь харах болно.

Кэшлэх механизмуудмөн дамжуулж буй траффикийн хэмжээг багасгахад тусална. Түгээмэл сүлжээнд компанийн бүх ажилчид ижил өгөгдлийг дамжуулах шаардлагатай нөхцөл байдал ихэвчлэн үүсдэг. Жишээлбэл, програм хангамжийн бүтээгдэхүүн эсвэл вирусын эсрэг програм хангамжийн мэдээллийн санг шинэчлэх, компанийн удирдлага, мультимедиа файл, сургалтын хөтөлбөр, нийтийн баримт бичгийн сангаас хүсэлтийг дамжуулах. Оновчлолын төхөөрөмжүүдийг ашиглах нь энэ мэдээллийг кэш хийх боломжийг олгодог, өөрөөр хэлбэл, WAN-ээр нэг удаа дамжуулж, дараа нь алслагдсан дэлхийн нөөцөөс бус хэрэглэгч бүрт орон нутгийн хэмжээнд (хамгийн ойрын оновчлолын төхөөрөмжийн хатуу дискнээс) өгөх боломжийг олгодог.

Уламжлалт кэшийн төхөөрөмжүүдээс чухал ялгаа нь оптимизаторууд мэдээллийг хэсэг/блок болгон хувааж, хатуу диск рүү хадгалдаг явдал юм. Хэрэв бид шинээр шилжүүлсэн файлын зарим мэдээллийг өөрчилвөл (жишээлбэл, баримт бичигт слайд эсвэл зураг оруулах) файлыг бүхэлд нь биш харин өөрчлөлтийг шилжүүлдэг гэсэн үүднээс энэ нь сонирхолтой юм. . Дамжуулсан мэдээллийг динамикаар блок болгон хуваах, өөрчлөлтийг хянах механизмууд нь өмчийнх бөгөөд задруулах боломжгүй. Хэрэв бид ажлын онцлог шинж чанаруудын талаар ярих юм бол үйлдвэрлэгчид 2 аргыг ашигладаг. Тэдгээрийн эхнийх нь өвөрмөц онцлог нь түүний нэгдмэл байдал, i.e. Нэг файлыг өөр өөр салбар руу шилжүүлэх үед бүх алсын оновчлолын төхөөрөмжүүдийн төв оптимизаторт файлын зөвхөн нэг хуулбар хадгалагдах болно. Хоёрдахь тохиолдолд хатуу дискний зайг алсын оффисын тоотой (алсын оновчлогч) динамикаар хуваадаг бөгөөд хэрэв нэг файлыг бүх салбар руу шилжүүлбэл ижил төстэй хуулбарыг хатуу дискний сегмент бүрт "хариуцах" тусгах болно. түүний салбар.

Мэдээжийн хэрэг, кэш механизм нь шахалтын механизмтай хамт ажилладаг. Эдгээр хоёр механизмын ачаар оновчлогч үйлдвэрлэгчид оновчлолын түвшин 150-200X хүрэх боломжтой сайхан графикуудыг харуулдаг. Нэг том өгөгдлийн файлыг олон удаа илгээх үед бид ижил өгөгдлийг олж авах боломжтой байсан, учир нь эхний шилжүүлгийн дараа энэ нь төхөөрөмжийн кэшэд хадгалагдаж, дараа нь хатуу диск дээрх файлын байршлыг зааж өгсөн зөвхөн килобайт холбоосууд шилжсэн. Энд нэн даруй логик асуулт гарч ирнэ: хатуу дискний багтаамж хэд вэ, гадаад санах ойг оновчтой болгоход холбох боломжтой юу? Зарим үйлдвэрлэгчид ийм төрлийн тоног төхөөрөмж гарч ирэх боломжтой гэж нэг удаа дурьдаж байсан (гэхдээ энэ нь зөвхөн мэдээллийн төвд суурилуулахад зориулагдсан болно).

TCP оновчтой болгох механизмуудтээврийн түвшинд ажиллах. Энэ бол илүү өндөр түвшинд (хэрэглээ) "авирч" эхлэхээс өмнө оновчтой үйлдвэрлэгчдийн гол "тулааны талбар" юм. TCP тээврийн протокол нь 1980 онд боловсруулагдсан бөгөөд өнөөдөр томоохон өөрчлөлт ороогүй байхад өгөгдөл дамжуулах технологи ихээхэн өөрчлөгдсөн байна. Пакетууд алдагдсан тохиолдолд стандарт TCP протокол нь хурдыг огцом бууруулж, бараг хоёр дахин бууруулж, дараа нь энэ түвшнээс дээшлэх нь шугаман болон жижиг алхмаар явагддаг. Тиймээс харьцангуй бага хэмжээний пакет алдагдлын түвшин (алдагдлын 2-3% нь хэвийн гэж тооцогддог) сүлжээний хурдыг байнга, огцом алдахад хүргэдэг.

Оновчтой TCP протокол нь алдагдал гарах үед хурдыг 2 дахин биш, харин хэдхэн хувиар бууруулж, нэг пакет алдагдах үед хурд маш бага хэмжээгээр буурдаг. Сүлжээний програмуудын ажиллагааг оновчтой болгох шийдэл нь юуны түрүүнд мэдээлэл дамжуулах хурдыг нэмэгдүүлдэг болох нь харагдаж байна. Мэдээлэл дамжуулах сувгуудын бүх зурвасын өргөнийг хамгийн их ашиглах нь TCP протоколын сайжруулсан үйлдлийн горимоор хангагдсан.

Хэрэглээний түвшний оновчтой механизмууд WAN сувгаар дамжуулан бизнесийн програмуудыг өөрсдөө хурдасгах боломжийг санал болгодог. Энэ нь алдартай бүтээгдэхүүнүүдэд зарим протоколуудыг хэрэгжүүлэх нь харамсалтай нь төгс биш юм. Ялангуяа Microsoft-ын сүлжээнд идэвхтэй ашиглагддаг CIFS (Common Internet File System) протокол нь хэт их хэмжээний үйлчилгээний мессежийг (хүргэлтийн баталгаажуулалт, төхөөрөмжийн бэлэн байдал гэх мэт) үүсгэдэг. Дотоод сүлжээнд эдгээр илүүдэл нь хариу өгөх хугацааг мэдэгдэхүйц удаашруулдаггүй, харин тархсан сүлжээнд мэдэгдэхүйц болдог. Оновчлолын төхөөрөмжүүд нь WAN-аар дамжуулалгүйгээр ихэнх чухал бус мессежийг дотооддоо боловсруулж, траффикийн хэмжээг бууруулж, сүлжээний хэвлэх, файлын үйлчилгээнд нэвтрэх гэх мэт сүлжээний хэрэглээний хэд хэдэн функцийн хариу өгөх хугацааг багасгадаг. Үнэн хэрэгтээ өнөөдөр үйлдвэрлэгчид яг энэ чиглэлээр өрсөлдөж байна. Хамгийн түгээмэл хэрэглэгддэг протоколууд нь CIFS, NFS, MAPI, Video, HTTP, SSL болон Windows хэвлэх зэрэг болно. Энэхүү "ноёнтны багц" нь бараг бүх үйлдвэрлэгчийн багцад байдаг боловч тэдгээрийг өөр өөр аргаар оновчтой болгодог.

Дээр дурдсан бүхнээс харахад эх үүсвэрээс хүлээн авагч руу чиглэсэн урсгал нь дор хаяж хоёр оновчлолын төхөөрөмжөөр дамждаг бөгөөд тэдгээр нь тус бүр дээр программ хүртэл боловсруулагддаг.

Бүх оновчлогчид TCP-д суурилсан програмуудтай ажилладаг гэдгийг таахад хэцүү биш бөгөөд энэ нь траффикийн үлдсэн хэсэг нь оновчлолгүйгээр дамждаг гэсэн үг юм. Шифрлэгдсэн траффикийн талаар мөн адил зүйлийг хэлж болно (үл хамаарах зүйл бол SSL байж магадгүй - олон сайжруулагч сессийг "эвдэж", траффикийг оновчтой болгож, буцааж шифрлэх боломжтой).

Харилцаа холбооны операторуудын зардлыг бууруулахыг хүсдэг тархсан бүтэцтэй компаниуд ийм шийдлийг сонирхож магадгүй юм. Энэ нь мегабайтын тарифыг ашиглах тохиолдолд (үр нөлөө нь тодорхой) болон хязгааргүй тохиолдолд (бага хурдны тарифын төлөвлөгөөнд шилжих) хоёуланд нь илэрч болно. Өнөөдөр магадгүй энэ нь ийм төхөөрөмжийг ашиглах хамгийн сонирхолтой зорилго юм. Бусад урамшуулал нь тийм ч ойлгомжтой, ил тод биш байж болно: серверүүдийг нэгтгэх, алслагдсан оффисуудад мэдээллийн технологийн ажилтнуудын тоог цөөрүүлэх, програмын хурдыг нэмэгдүүлснээр бүтээмжийг нэмэгдүүлэх.

Оптиматоруудын сонирхлын төлөөх тэмцэлд үйлдвэрлэгчид зөөврийн компьютер дээр тусгай программ хангамж суулгаж, алслагдсан оффис дээр нэг оптимизатор дээр суурилсан виртуал серверийг суулгах замаар гар утасны ажилчдын ажлыг оновчтой болгох боломжийг санал болгодог. Зөөврийн компьютерт зориулсан програм хангамж нь кодын хувьд оновчтой болгох программ хангамжтай төстэй, өөрөөр хэлбэл. Зөөврийн компьютер нь оптимизатор шиг болдог.

Түгээмэл бүтэцтэй компаниудаас гадна энэ шийдэл нь компаниудад оновчлолын үйлчилгээ (жишээлбэл, түрээс) үзүүлэх боломжтой операторуудад сонирхолтой байж магадгүй юм. Ийм үйлчилгээ Европт түгээмэл болж байна.

Хамгийн түгээмэл оновчлолын шийдэл бол мэдээж Cisco WAAS юм. Сайн борлуулагчийн маркетинг, сайн шийдэл, хөгжлийн стратеги нь үүргээ гүйцэтгэдэг. Хямд үнэтэй, найдвартай WAVE цуврал гарч ирснээр Cisco-ийн байр суурь улам хүчтэй болсон.

Juniper-ийн WXC шийдэл нь бүх урсгалыг UDP хонгилд багцалж байгаагаараа ялгаатай, i.e. Оновчлол нь бүх урсгал дээр явагддаг. Энэ арга нь мэдээж давуу талтай. Би "эмнэлгийн дундаж" оновчлолын утгыг бүх урсгал дээр (нэг том үйлчлүүлэгчтэй хийсэн туршилт дээр үндэслэн) оруулах болно.

Riverbed нь Орост ирээд удаагүй байгаа ч түншийн сүлжээгээ идэвхтэй хөгжүүлж байна. Энэ нь өрсөлдөгч шийдлүүдээс ихээхэн давуу талтай (жишээлбэл, чадварлаг кэш хийх механизм, програмын оновчлол) боловч уг шийдлийн өндөр үнэ нь түүний алдар нэр нэмэгдэхэд саад болж байна.

Дээр дурдсан бүх зүйлийг нэгтгэн дүгнэж хэлэхэд WAN оновчлол нь бизнесийн хувьд нэлээд ил тод, сонирхолтой шийдэл боловч харамсалтай нь Оросын компаниудад тийм ч их эрэлт хэрэгцээ гараагүй байгааг тэмдэглэхийг хүсч байна. Хэрэгжилтэд үндэслэн замын хөдөлгөөний ачааллыг дунджаар 2-3.5 дахин бууруулж, өргөдлийн хариуг мэдэгдэхүйц хурдасгах боломжтой болсон. Жишээлбэл, манай үйлчлүүлэгчдийн нэг нь хиймэл дагуулын шугамаар нэг сарын турш туршилтын хугацаанд 20 орчим цагийн хариултыг хэмнэсэн. Манай компанийн хувьд энэхүү шийдлийг хэрэгжүүлснээр сүлжээний траффикийг төлөхдөө хоёр дахин хэмнэлт гаргахаас гадна корпорацийн хэрэглээний программын хурдыг дунджаар 1.7 дахин нэмэгдүүлэх боломжтой болсон. Үүний зэрэгцээ төслийн хөрөнгө оруулалтын өгөөж нь ердөө 3 сар байв.

Ямар ч тохиолдолд, хэрэв та сонирхож байгаа бол эхлээд нэг сар орчим хугацаанд шийдлийг туршиж үзэх нь зүйтэй юм.Зөвхөн ийм туршилтын үр дүнд үндэслэн оновчтой тохируулагчийг хэрэгжүүлэх нь тодорхой сүлжээтэй холбоотой хэр үр дүнтэй болохыг хэлэх боломжтой болно. Шийдэл боловсруулах, туршилт хийх, суурилуулахын тулд туршлагатай систем интеграторуудыг татан оролцуулах нь хамгийн сайн арга юм.

Сайтын техникийн оновчлолын нэг л ядаргаатай алдаа нь үр дүнтэй SEO-д саад учруулж болох боловч энэ нь хайлтын системийн роботууд нөөцийг зөв индексжүүлэх, сайтын бүтцийг ойлгох чадваргүй болох бөгөөд хэрэглэгчид хэрэгтэй мэдээллээ олж чадахгүй байна. Энэ бүхэн нь эргээд сайтын зэрэглэл буурахад хүргэнэ.

Техникийн вэбсайтыг оновчтой болгох нь хайлтын системийн роботуудтай харилцах харилцааг сайжруулахын тулд нөөцийн техникийн талыг тохируулахад чиглэсэн цогц арга хэмжээ юм. Техникийн оновчлол нь сайтын хуудсыг хамгийн хурдан бөгөөд бүрэн индексжүүлэх боломжийг олгодог.

Техникийн оновчлолын 5 үндсэн параметр

1. Robots.txt файл

Robots.txt файл нь эх сурвалж бүрийн үндсэн директорт байх ёстой гэдгийг анхаарах нь чухал. Энэ нь PS роботууд сайтад зочлохдоо ханддаг анхны файл бөгөөд тэдгээрт зориулсан зааварчилгааг хадгалдаг.

Энэ файл нь сайтын индексжүүлэлтийн параметрүүдийг тодорхойлдог: хайлтын мэдээллийн санд аль хуудсыг оруулах, аль нь хасагдах ёстой. Нэмж дурдахад, энэ нь хайлтын систем бүрийн роботуудад нэг дор, мөн хайлтын систем бүрийн роботуудын удирдамжийг тусад нь зааж өгч болно. Та энэ файлыг эмхэтгэх, тохируулах талаар нэмэлт мэдээллийг Yandex вэбмастерын тусламжийн вэбсайтаас авах боломжтой.

Та Yandex.Webmaster үйлчилгээнд файлыг шалгаж болно, "Robots.txt-ийн шинжилгээ" цэсийн зүйл (https://webmaster.yandex.ru/robots.xml).

2. Sitemap - сайтын газрын зураг

Сайтын газрын зураг нь ердийн номын агуулгатай төстэй мэдээллийн эх сурвалжуудын нэг юм. Энэ хуудсыг навигацийн элемент болгон ашигладаг. Сайтын газрын зураг нь эх сурвалж дээр байрлуулсан хэсгүүд ба/эсвэл бүх хуудасны бүрэн жагсаалтыг агуулдаг.

HTML сайтын зураг нь мэдээллийг хурдан бөгөөд хялбар олохын тулд хэрэглэгчдэд хэрэгтэй бөгөөд XML нь сайтын индексжүүлэлтийг сайжруулахын тулд хайлтын системд хэрэгтэй.

Сайтын газрын зургийн тусламжтайгаар хайлтын роботууд бүтцийг бүхэлд нь харж, шинэ хуудсыг илүү хурдан индексжүүлдэг.

Сайтын газрын зургийг шалгаж байна(https://webmaster.yandex.ru/sitemaptest.xml)

.html форматтай зөв сайтын зургийн жишээ:

3. Дахин чиглүүлэх (дахин чиглүүлэх)

Дахин чиглүүлэлт нь вэбсайтын зочдыг нэг хуудаснаас нөгөө рүү шилжүүлэхэд ашиглагддаг. Яагаад дахин чиглүүлэлт хийх шаардлагатайг харуулсан олон жишээ бий:

  1. Сайтын домэйн нэрийг өөрчлөх.
  2. Фанер толь. Олон сайтуудад www-г агуулсан домэйноос www-гүй домэйн руу, эсвэл эсрэгээр нь тохируулсан 301 чиглүүлэлт байдаггүй.

Дахин чиглүүлэлтүүдийг .htaccess файлд оруулах ёстой. Хайлтын системүүд site.ru болон www.site.ru сайтуудыг өөр сайт гэж үзэж болох тул үр дүнд давхардсан тоо гарч болно. Энэ нь хайлтын үр дүнд зэрэглэл тогтооход хүндрэл учруулна.

Дахин чиглүүлэх статусын үндсэн кодууд:

  • 300 - Олон сонголт (хэд хэдэн сонголтоос сонгох боломжтой);
  • 301 - Байнгын нүүсэн (үүрд нүүсэн);
  • 302 - Түр зуурын чиглүүлэлт;
  • 303 - Бусад хэсгийг үзнэ үү (хүссэн эх сурвалжийг өөр хаягаас олж болно);
  • 304 - Өөрчлөгдөөгүй (агуулга өөрчлөгдөөгүй - эдгээр нь зураг, загварын хуудас гэх мэт байж болно);
  • 305 - Прокси ашиглах (хандалт нь проксигоор дамжих ёстой);
  • 306 - Ашиглагдаагүй (ашиглаагүй).

Хуудасны хариуг тодорхойлох ашигтай үйлчилгээ: http://www.bertal.ru/

4. URL хуудасны харагдах байдлыг өөрчлөх

Сайтыг шалгах нь түүний бүх хуудасны хаягууд нийцэж байгаа эсэхийг шалгах нь чухал юм. Жишээлбэл, сайт даяар хуудаснууд нь хаалтын зураастай байх ёстой: http://site.ru/katalog/ болон http://site.ru/products/ . Хэрэв зарим хуудас http://site.ru/katalog, зарим нь http://site.ru/products/ шиг харагдаж байвал энэ нь буруу байна.

Сайтын газрын зургийг үүсгэсний дараа дотоод нөөцийн хуудсуудын хаягийг алдааг шалгах нь тохиромжтой байх болно.

5. Сайтын алдаа

Сайтын аль нэг хуудсыг ачаалах үед сервер рүү хүсэлт илгээгддэг бөгөөд энэ нь HTTP статусын кодоор хариу өгч, хуудсыг ачаалдаг (эсвэл ачаалахгүй).

Үндсэн статусын кодууд:

  • 200 - хуудас сайн байна;
  • 404 - байхгүй хуудас;
  • 503 - сервер түр ажиллахгүй байна.

"404 алдаа" нь оновчлолын хамгийн чухал техникийн үзүүлэлтүүдийн нэг бөгөөд үүнийг сайжруулах шаардлагатай.

Хэрэв хуудас байгаа бөгөөд сервер хүсэлт гаргахдаа 404 алдааны талаар мэдээлсэн бол хайлтын системээр хуудсыг индексжүүлэхгүй. Үгүй бол ижил тексттэй олон тооны хуудас индекст орж магадгүй бөгөөд энэ нь зэрэглэлд маш сөрөг нөлөө үзүүлдэг.

Та http://www.bertal.ru/ эсвэл Yandex.Webmaster ашиглан статусын кодыг шалгаж болно.

Бид зөвхөн сайтын техникийн сайжруулалтын үндсэн параметрүүдийг авч үзсэн бөгөөд та эхлээд анхаарах хэрэгтэй. Хэрэв та вэбсайт дээрээ ийм алдаа олсон эсвэл тэдгээрийг арилгахад бэрхшээлтэй байгаа бол зөвхөн мэргэжлийн SEO компанитай холбоо барина уу.

Серверийн гүйцэтгэлийг нэмэгдүүлэхийн тулд хэд хэдэн аргыг ашиглаж болох боловч хамгийн сайн нь оновчлол юм.

Үйлдлийн системийн оновчлол (FreeBSD)

  • 7.x руу шилжихШинэ ULE 3.0 Scheduler болон jemalloc-ийг ашиглах боломжтой тул олон цөмт системд хэрэгтэй. Хэрэв та хуучин 6.x системийг ашиглаж байгаа бөгөөд энэ нь ачааллыг даахгүй бол 7.x руу шилжих цаг болжээ.
  • 7.2-т шилжих KVA-г нэмэгдүүлэх, үндсэн системээр оновчтой болгох, супер хуудас ашиглах боломжийг танд олгоно. Шинэ FreeBSD 8.0 аль хэдийн бэлтгэгдэж байгаа бөгөөд энэ нь бүтээмжийг мэдэгдэхүйц нэмэгдүүлэхэд тусална.
  • amd64 руу шилжихЭнэ нь KVA болон Shared Mem-ийн хэмжээг 2Гб-аас дээш нэмэгдүүлэх боломжтой болгодог. Мэдээллийн сан байнга нэмэгдэж, илүү том хэмжээтэй байхыг шаарддаг тул серверийг хөгжүүлэх нөхцлийг бүрдүүлэх шаардлагатай байна.
  • Сүлжээний дэд системийг буулгаж байна FreeBSD нь серверийг оновчтой болгоход тусална. Энэ процессыг хоёр үе шаттайгаар хийж болно: ifconfig параметр болон sysctl.conf/loader.conf тохиргоог тааруулах. Бэлтгэл үе шатанд та сүлжээний картын чадварыг шалгах хэрэгтэй. Yandex-ийн жолооч нар олон урсгалыг ашиглан хурдыг нэмэгдүүлэхэд туслах болно, тэдгээрийг ихэвчлэн олон цөмт процессуудад ашигладаг. Гурав дахь зэрэглэлийн сүлжээний картын хувьд санал асуулга нь хамгийн сайн шийдэл юм. FreeBSD 7 тохируулгын хамгийн сүүлийн үеийн шинэчлэгдсэн хувилбар нь асуудлыг шийдвэрлэхэд тусална.
  • FreeBSD болон асар олон тооны файлууддиректор доторх файлын нэрийг кэш хийснээр маш сайн ажиллана. Хэш хүснэгтээс хайх нь шаардлагатай файлыг хурдан олоход тусална. Хэдийгээр санах ойн дээд хэмжээ нь ойролцоогоор 2 МБ боловч vfs.ufs.dirhash_mem зөвшөөрвөл та үүнийг нэмэгдүүлэх боломжтой.
  • Зөөлөн шинэчлэлтүүд, сэтгүүлТэгээдхолбох сонголтууд- Эдгээр нь маш сайн гүйцэтгэлтэй шинэ терабайт эрэг юм. Хэрэв цахилгаан тасрах юм бол тэдгээрийн fsck нь маш их хугацаа шаардагдах тул та програмын шинэчлэлтүүдийг ашиглах эсвэл gjournal-ээр нэвтэрч болно.

Frontend оновчлол (nginx)

Энэ төрлийг дутуу оновчлол гэж ангилж болох боловч энэ нь сайтын нийт хариу өгөх хугацааг нэмэгдүүлэхэд тусална. Стандарт оновчлолын дотроос reset_timedout_connection-д анхаарлаа хандуулах нь зүйтэй; илгээх файл; tcp_nopush болон tcp_nodelay.

  • Шүүлтүүрийг хүлээн авахнь шинэ өгөгдөл ирэх эсвэл хүчинтэй http хүсэлт хүлээн авсан тохиолдолд цөмөөс мэдээллийг процесс руу шилжүүлэх боломжийг олгодог технологи юм. Эдгээр шүүлтүүрүүд нь асар олон тооны холболттой үед серверийг хөнгөвчлөхөд тусална.
  • Кэш хийх nginx нь уян хатан чанараараа тодорхойлогддог бөгөөд fastcgi эсвэл proxy backend-ээс бүтээгддэг. Хүн бүр өөрийн төсөлдөө кэшийг ухаалаг ашиглах боломжтой.
  • AIOЭнэ нь зарим тодорхой сервер ачааллын хувьд маш их хэрэгтэй байдаг, учир нь энэ нь ажилчдын тоог багасгахын зэрэгцээ хариу өгөх хугацааг хэмнэдэг. Nginx-ийн шинэ хувилбарууд нь aio-г sendfile-тэй хамт ашиглах боломжийг олгодог.

Арын төгсгөлийн оновчлол

  • APCнь OP-д хөрвүүлсэн кодыг кэшлэх замаар ачааллыг багасгах боломжийг олгодог хүрээ юм. APC түгжих нь удааширч, олон хүмүүс APC-ийн оронд eAccelerator ашиглаж эхэлж байгаа тул шинэчлэх нь зүйтэй. Түгжихийг spinlock эсвэл pthread mutex-ээр солих нь зүйтэй. Хэрэв асар олон тооны .php файл байгаа эсвэл тэдгээр нь APC хэрэглэгчийн кэшэд байнга хадгалагддаг бол APC зөвлөмжийн утгыг нэмэгдүүлэх хэрэгтэй. APC хуваагдал нь APC-г зохисгүй ашиглаж байгаагийн шинж юм. Тэрээр TTL эсвэл LRU-ийн бүртгэлийг бие даан устгах боломжгүй.
  • PHP 5.3Энэ нь бүтээмжийн өсөлтийг нэмэгдүүлэхэд туслах тул хуучирсан функцүүдийн жагсаалт олон хүнийг айлгаж магадгүй ч гэсэн PHP хувилбараа шинэчлэх нь зүйтэй.

Өгөгдлийн сангийн оновчлол

Интернет дэх MySQL-ийн гүйцэтгэлийг сайжруулах олон санаанууд байдаг, учир нь вэб төсөл бүр эрт орой хэзээ нэгэн цагт санах ой, диск эсвэл процессорын хэмжээгээр хязгаарлалттай тулгардаг. Тиймээс энгийн шийдлүүд нь асуудлыг шийдвэрлэхэд тус болохгүй, профайлд (dtrace, systemtap болон oprofile) илүү их цаг зарцуулахаас гадна олон тооны нэмэлт програм хангамжийг ашиглах нь зүйтэй. Индексүүдийг төгс ашиглах, ангилах, бүлэглэх чадвартай байхаас гадна MySQL дотор энэ бүхэн хэрхэн ажилладагийг мэдэх шаардлагатай. Та мөн янз бүрийн хадгалалтын хөдөлгүүрүүдийн давуу болон сул талуудыг мэдэж, Query кэшийг ойлгож, ТАЙЛБАРлах хэрэгтэй.

Кодыг өөрчлөхгүйгээр MySQL-г оновчтой болгох хэд хэдэн арга байдаг, учир нь сервер тааруулахын хагасыг tuningprimer, mysqltuner болон mysqlsla хэрэгслүүдийг ашиглан хагас автомат горимд хийж болно.

  • 5.1-д шилжихЭнэ нь олон давуу талтай бөгөөд үүнд оновчлогчийн оновчлол, хуваалт, InnoDB залгаас болон мөр дээр суурилсан хуулбарыг онцлон тэмдэглэх нь зүйтэй. Сайтыг хурдасгахын тулд зарим экстрим спорт сонирхогчид аль хэдийн 5.4 хувилбарыг туршиж байна.
  • InnoDB руу шилжиж байнаолон ашиг тусыг өгдөг. Энэ нь ACID-д нийцсэн тул аливаа үйлдлийг зөвхөн нэг гүйлгээгээр гүйцэтгэдэг. Энэ нь эгнээний түвшний түгжээтэй бөгөөд энэ нь олон хэлхээг бие биенээсээ тусад нь уншиж, бичих боломжийг олгодог.
  • Суурилагдсан MySQL кэш – Query Cacheойлгоход нэлээд хэцүү тул олон хэрэглэгчид үүнийг үндэслэлгүй ашигладаг эсвэл унтраадаг. Түүний хувьд илүү их нь илүү сайн гэсэн үг биш тул энэ дэд системийг дээд зэргээр нэмэгдүүлэх нь үнэ цэнэтэй зүйл биш юм. Query Cache нь зэрэгцээ хийгдсэн бөгөөд үүний үр дүнд хэрэв 8-аас дээш процесс ашигласан бол энэ нь зөвхөн бүх процессыг удаашруулж, сайтыг ачаалах хугацааг багасгахад тус болохгүй. Тодорхой хүснэгтэд хамаарах энэ дэд системийн агуулга нь тухайн хүснэгтэд өөрчлөлт оруулах үед хүчингүй болно. Энэ нь Query Cache нь зөвхөн сайн боловсруулсан хүснэгтүүдийг ашиглахад эерэг үр дүнг өгдөг гэсэн үг юм.
  • Индексүүд нь SELECT (хэрэв байхгүй бол) болон INSERT/UPDATE (нэмэлт байвал) хоёуланд нь хортой байж болно. Ашиглахаа больсон индекс нь санах ойг эзэлдэг бөгөөд ингэснээр өгөгдлийн өөрчлөлтийг удаашруулдаг. Энэ асуудлыг шийдэхийн тулд та энгийн SQL асуулга ашиглах хэрэгтэй.

PostgreSQL

Postgres систем нь нэлээд уян хатан, учир нь энэ нь Enterprise ангилалд багтдаг бөгөөд Skype нь үүн дээр маш сайн ажилладаг боловч гар утсан дээр ч суулгаж болно. Боломжтой 200 параметрийн 45 нь үндсэн бөгөөд тааруулах үүрэгтэй.

Та Интернетээс Postgres-ийг тааруулах талаар маш их хэрэгтэй мэдээллийг олж авах боломжтой. Гэхдээ зарим нийтлэлүүд аль хэдийн хуучирсан тул хэвлэгдсэн огнооноос эхэлж, vacuum_mem түлхүүрийг ашиглаж байгаа мэдээлэл эсвэл bakım_mem-ийн шинэ хувилбаруудад анхаарлаа хандуулах хэрэгтэй. Нарийвчилсан програмистууд өндөр чанартай олон зохиолуудыг олох боломжтой; доор бид зөвхөн энгийн хэрэглэгчдэд төслөө сайжруулахад туслах үндсэн зарчмуудыг жагсаах болно.

  • Индексүүд PostgreSQL нь үргэлж эхний байранд байдаг бол MySQL-д тэд үргэлж сүүлийн байруудыг эзэлдэг бөгөөд үүнийг PostgreSQL индексүүд асар их чадамжтай байдагтай холбон тайлбарлаж болно. Програмист нь ийм индексүүдийн талаар сайн ойлголттой байх ёстой бөгөөд GiST, GIN, hash, B-tree гэх мэт хэзээ, алийг нь ашиглах, түүнчлэн хэсэгчилсэн, олон багана, илэрхийлэл зэргийг мэддэг байх ёстой.
  • pgBouncerба түүний хувилбаруудыг эхлээд мэдээллийн сангийн сервер дээр суулгасан байх ёстой. Холболт цуглуулагчгүй бол хүсэлт бүр нь RAM ашигладаг тусдаа процесс үүсгэдэг. Энэ нь муу зүйл биш юм шиг санагддаг, гэхдээ 200 гаруй холболт үүсгэх үед маш хүчирхэг сервер хүртэл мэдээлэл боловсруулахад бэрхшээлтэй байдаг. pgBouncer нь энэ асуудлыг шийдвэрлэхэд тусалдаг.
  • pgFouine php дээр mysqlsla-ийн аналог гэж нэрлэж болох тул зайлшгүй шаардлагатай програм юм. Энэ нь Playr-тэй хослуулан тайзны серверүүд дээр хүнд нөхцөлд асуулгын оновчтой болгох боломжтой.

Өгөгдлийн санг буулгаж байна

Өгөгдлийн сангийн үйл ажиллагааг оновчтой болгох, гүйцэтгэлийг нэмэгдүүлэхийн тулд та үүнийг аль болох бага ашиглах хэрэгтэй.

  • SphinxQL MySQL сервер болгон ашиглаж болно. Үүнийг хийхийн тулд та sphinx.conf, мөн cron дахь индексжүүлэгчийн оруулгуудыг үүсгэж, өөр мэдээллийн сан руу шилжих хэрэгтэй. Эдгээр үйлдлүүдийн тусламжтайгаар кодыг өөрчлөх шаардлагагүй болно. SphinxQL-д шилжих нь хайлтын хурд, чанарыг сайжруулахад тусалж, MyISAM болон FTS-ийг мартах болно.
  • RDBMS бус хадгалах санхарилцааны мэдээллийн санг ашиглахгүй байх боломжийг танд олгоно. Та Hive эсвэл Oracle-г сонгож болно. Түлхүүр-утгийн мэдээллийн сан нь хурдтай учраас цаашдын кэш хийхдээ харилцааны мэдээллийн сангаас сонголтуудыг ашигладаг. Томоохон PHP төслүүдийн эзэд бүх захиалгат өгөгдлийг хадгалахын тулд маш сайн opcode кэш функцийг ашиглаж болно. Үүний тусламжтайгаар та дэлхийн ач холбогдолтой өөрчлөлтийг ч найдвартай хэмнэж чадна, учир нь тэдгээр нь бага зай эзэлдэг бөгөөд санах ойг бараг эзэлдэггүй бөгөөд түүвэрлэлтийн хурд нь мэдэгдэхүйц нэмэгдэх болно. Хэрэв томоохон төслийн хувьд дэлхийн өөрчлөлтүүдийн блокийг зөвхөн нэг машинд бичсэн бол урсгал нэмэгдэж, маш их удааширч эхэлдэг. Энэ асуудлыг шийдэхийн тулд та глобал хувьсагчдыг opcode cacher-д хадгалах эсвэл бүх сервер дээрх хувьсагчдыг хувилах, тогтвортой байдлын хэш алгоритмд үл хамаарах зүйл нэмэх хэрэгтэй.
  • КодчилолМэдээллийн санг буулгах үр дүнтэй аргуудыг үзнэ үү. UTF-8 бол маш сайн сонголт гэдгийг тэмдэглэх нь зүйтэй, гэхдээ орос хэл дээр энэ нь маш их зай эзэлдэг тул нэг хэлээр ярьдаг хүмүүсийн хувьд та эхлээд кодчилолыг оновчтой ашиглах талаар бодох хэрэгтэй.
  • Асинхрончлол нь програм эсвэл вэбсайтын хариу өгөх хугацааг багасгахаас гадна сервер дээрх ачааллыг мэдэгдэхүйц бууруулахад тусална. Багц хүсэлтийг ердийн ганц хүсэлтээс хамаагүй хурдан хийдэг. Асар том төслүүдийн хувьд та RabbitMQ, ApacheMQ эсвэл ZeroMQ мессежийг ашиглаж болно, жижиг төслүүдэд та зөвхөн cron ашиглаж болно.

Оновчлолд зориулсан нэмэлт програмууд

  • SSHGuard эсвэл түүний хувилбарнь ssh-д зориулсан стандарт практик юм. Anti-brute force нь роботын халдлагаас найдвартай сервер хамгаалалтыг бий болгоход тусалдаг.
  • Xtrabackup Percona нь маш олон тохиргоотой MySQL нөөцлөх маш сайн хэрэгсэл юм. Гэхдээ хамгийн тохиромжтой шийдэл бол ZFS дахь клонуудыг дуудах явдал юм, учир нь тэдгээр нь маш хурдан бүтээгддэг бөгөөд мэдээллийн санг сэргээхийн тулд булчингийн тохиргоонд байгаа файлуудын замыг өөрчлөхөд хангалттай. Клонууд нь системийг эхнээс нь сэргээх боломжийг олгодог.
  • Өөр хост руу захидал шилжүүлэхХэрэв таны сервер зүгээр л спамаар бөмбөгдсөн бол траффик болон IOP-ийг хэмнэх болно.
  • Гуравдагч талын програм хангамжтай нэгтгэх MySQL серверийг оновчтой болгоход туслах болно. Жишээлбэл, та smtp/imap холболтыг ашиглан мессеж солилцох боломжтой бөгөөд энэ нь санах ой их эзлэхгүй болно. Чат үүсгэхийн тулд javascript клиенттэй jabber серверийн суурийг ашиглахад хангалттай. Бэлэн бүтээгдэхүүнд тохируулагч дээр суурилсан эдгээр системүүд нь маш том хэмжээтэй байдаг.
  • Нарийвчилсан дүн шинжилгээ хийхгүйгээр аливаа зүйлийг оновчтой болгох боломжгүй тул хяналт нь маш чухал бүрэлдэхүүн хэсэг юм. Гүйцэтгэлийн хэмжүүр, үнэгүй нөөц, саатлыг хянах шаардлагатай; Zabbix, Cacti, Nagios болон бусад хэрэгслүүд үүнд тусална. Вэб гүйцэтгэлийн тест нь вэбсайт эсвэл төслийн ачаалах хурдыг тооцоолох боломжийг олгодог тул хяналт тавихад маш их тустай. Гүйцэтгэлийн серверийг тохируулахдаа зөвхөн нарийвчилсан дүн шинжилгээ хийх нь бүх асуудлыг арилгах, оновчтой болгоход тусална гэдгийг санаарай.

Хэрэв та бичсэн зүйлийн талыг нь ойлгоогүй бол хамаагүй.