Սկիզբ » Ուսումնական նյութեր » Վեբ » CMS - կառավարման համակարգեր » Ծանրաբեռնված կայքի կենսունակության բարձրացում

Ծանրաբեռնված կայքի կենսունակության բարձրացում

Մի քիչ պաթետիկ անուն ստացվեց հոդվածի համար, բայց կարծում եմ դա արտահայտում է ներքոշարադրյալ կոնցեպտը:

Չեմ պնդի թե առաջին անգամ իմ մտքով է անցել այս կոնցեպտը, բայց որ չեմ հանդիպել իմ օգտագործած CMS-ներում (WordPress/Joomla/անհայտ ծագման), դա փաստ է:

Գաղափարը կայանում է նրանում, որ սահմանել մի boolean վերադարձնող ֆունկցիա, որը կհուշի, մեզ արդյո՞ք ծանրաբեռնված է աշխատում կայքը թե ոչ:

Եվ եթե ֆունկցիան վերադարձնում է true, ապա բոլոր երկրորդական բովանդակային բլոկները չենք գործարկի, ինչի արդյունքում կունենաք ժամանակավորապես կիսատ-պռատ, բայց գոնե հիմանական բովանդակությունը հասանելի կայք:

function is_high_load(){}

Ի՞նչ ասել է, երկրորդական բովանդակային բլոկներ: Օրինակը կբերեմ լրատվական կայքերի համար, այդպես ավելի պարզ կլինի.

  • ամենաընթերցվածները (որպես կանոն ծանր sql-ով աշխատող մոդուլ է)
  • որոնումը (թերևս ամենածանր մոդուլը)
  • լուրերի tag-երը (wordpress-ով աշխատող կայքերի համար)
  • լուրերի tag-երով որոնումը
  • քվեարկություն
  • WP_Calendar_widget (կրկին wordpress-ով աշխատող կայքերի համար)
  • և այլն…

Այս բլոկները եթե ժամանակավորապես չցուցադրվեն, դրանից շատ բան չի տուժի, սակայն հիմանական բովանդակությունը` լրահոս և լուրեր, հասանելի կլինի օգտատերերին, մինչև հարձակումը կամ ծանրաբեռնված պահը անցնի:

Հիմա անդրադառնանք ֆունկցիային, որը պետք է հուշի ծգրագրին` արդյո՞ք ծանրաբեռնված է կայքը, թե` ոչ:

Այստեղ կա երկու տարբերակ, ավտոմատ և չավտոմատ(manual բառի համար ավելի լավ հոմանիշ չգտա): Ավտոմատը այն դեպքն է, երբ ֆունկցիան փորձում է ինքնուրույն հասկանալ արդյո՞ք  համակարգի վրա ծանրաբեռնածություն կա, թե՞ ոչ, իսկ չավտոմատը պարզպես կարդում է ինչ-որ server-hiload.txt ֆայլ և վերադարձնում true կամ false:

Երկու դեպքում էլ, առաջարկում եմ չօգտագործել MySQL կամ SQL-based որևէ տվյալների բազա:

Ավտոմատ տարբերակի դեպքում ծրագրային իրականացման հարցը թողնում եմ բաց… քանի որ դա մեծ մասամբ ճաշակի ու կարողության հարց է, և բացի այդ այնպես պետք է գրել այդ ֆունկցիան որ հավելյալ ծանրաբեռնվածություն չառաջացնի համակարգի վրա, որն էլ ավելի է բարդացնում դրա գրելը:

Իսկ չավտոմատ տարբերակի համար կառաջարկեմ առաջին իսկ գլուխս եկած միտքը: Ստեղծել cron-job որը կաշխատի ամեն 10  րոպեն մեկ, ու կկատարի որոշակի ստուգումներ, ասենք տվյալների բազայից կարդալու արագությունը  կամ ազատ հիշողության չափը կան նման մի/միքանի բան, ու կախված արդյունքներից server-hiload.txt ֆայլի մեջ կգրի true կամ false.

վերջ:

դե… զրահս կապած սպասում եմ ձեր քարերին :) արտահայտվեք:

Ծանրաբեռնված կայքի կենսունակության բարձրացում, 8.7 out of 10 based on 7 ratings

Նշագրեր: , ,

Բաժին: CMS - կառավարման համակարգեր, Վեբ

Կիսվել , տարածել , պահպանել

VN:F [1.9.20_1166]
Rating: 8.7/10 (7 votes cast)

Մեկնաբանեք

Կհաստատվեն միայն մեսրոպատառ հայերենով գրած մեկնաբանությունները

143