සත්කාරකත්වය සහ කාර්යසාධනය

අපි WordPress වේගවත් කරන්නේ කෙසේද: LiteSpeed Enterprise, LSCache සහ එක් එක් අඩවිය සඳහා Redis

වේගවත්ම WordPress ඉල්ලීම වන්නේ කිසි විටෙකත් ධාවනය නොවන ඉල්ලීමයි — PHP හෝ MySQL ක්‍රියාත්මක වීමටත් පෙර අපගේ stack එක මඟින් බොහෝ පිවිසුම් සඳහා cache එකෙන් පිළිතුරු සපයන ආකාරය සහ Core Web Vitals සඳහා එයින් අදහස් කරන්නේ කුමක්ද යන්න මෙන්න.

වේගවත්ම ඉල්ලීම වන්නේ කිසිදා ධාවනය නොවන ඉල්ලීමයි

සම්මත WordPress ඉල්ලීමක් සඳහා අධික සම්පත් ප්‍රමාණයක් වැය වේ. වෙබ් සේවාදායකය එය PHP වෙත භාර දෙන අතර, PHP මඟින් WordPress පණගන්වා, ප්ලගීන ක්‍රියාත්මක කර, කිහිප වතාවක් MySQL විමසා, HTML සකස් කර, ඉන් පසුව පමණක් බයිට ආපසු එවනු ලැබේ. කාර්යබහුල වෙබ් අඩවියක මෙම සම්පූර්ණ ක්‍රියාවලිය සෑම අමුත්තෙකු සඳහාම සිදු වන අතර, ඔබේ time-to-first-byte සඳහා වැය වන කාලයෙන් මුළුමනින්ම පාහේ වැය වන්නේ ඒ සඳහාය.

අපගේ පිළිතුර වන්නේ, බොහෝ පිවිසුම් සඳහා, මෙයින් කිසිවක් සිදු නොවන බව සහතික කිරීමයි. අප විසින් සත්කාරකත්වය සපයන වෙබ් අඩවි හරහා — 100,000 කට අධික PBN අඩවි සහ ප්‍රධාන ධාරාවේ කළමනාකරණය කළ WordPress ඇතුළුව — ඉදිරිපස පිටු නැරඹීම් වලින් අතිමහත් බහුතරයක් PHP ක්‍රියාත්මක කිරීමකින් හෝ දත්ත සමුදායට පිවිසීමකින් තොරව, හැඹිලියෙන් කෙලින්ම පෙර සකස් කළ සම්පූර්ණ පිටුවක් ලෙස ලබා දෙනු ලැබේ. මෙම ලිපියේ ඉතිරි කොටස වෙන්වන්නේ එය සත්‍යයක් බවට පත් කරන ස්ථර එකිනෙක ගැළපෙන ආකාරය සහ ඒ සෑම එකක්ම තම ස්ථානය තහවුරු කරගන්නේ කෙසේද යන්න පිළිබඳවයි.

මෙහි වැදගත්ම කරුණ වන්නේ මේවා ඔබ තෝරාගත යුතු තරගකාරී හැඹිලි (caches) නොවන බවයි. සම්පූර්ණ පිටු හැඹිලිය (full-page cache), වස්තු හැඹිලිය (object cache) සහ CDN දාරය (edge) යන සෑම එකක්ම විවිධ වර්ගයේ ඉල්ලීම් හසුරුවන අතර, ඒවායේ වටිනාකම රඳා පවතින්නේ ඒවා එකිනෙක වෙත දත්ත හුවමාරු කරගන්නා ආකාරය මතය.

LiteSpeed Enterprise + LSCache: සම්පූර්ණ පිටු ස්තරය

සෑම අඩවියක්ම සේවාදායක මට්ටමේ LSCache සහිත LiteSpeed Enterprise මත ක්‍රියාත්මක වේ. ඉදිරිපස ප්‍රතිචාරයක් (front-end response) හැඹිලිගත කළ හැකි (cacheable) වූ විට, වෙබ් සේවාදායකය එය LiteSpeed cache-control සහ tag headers මඟින් සලකුණු කරන අතර, LiteSpeed ඊළඟ පිවිසුමේදී සම්පූර්ණ පිටුව සෘජුවම ලබා දෙයි — කිසිදු PHP ක්‍රියාවලියක් ජනනය නොවේ, කිසිදු MySQL විමසුමක් (query) නිකුත් නොවේ. එය WordPress TTFB කෙරෙහි බලපාන ප්‍රධානතම සාධකය වන්නේ, එමඟින් ක්ෂණික ක්‍රියාකාරීත්ව මාර්ගයෙන් (hot path) සම්පූර්ණ යෙදුම් ආරම්භය (application boot) ඉවත් කරන බැවිනි.

LSCache PHP ප්ලගිනයක් තුළ නොව වෙබ් සර්වරය තුළම ක්‍රියාත්මක වන බැවින්, එය ඉල්ලීම් ජීවන චක්‍රයේ මුල් අවධියේදීම ක්‍රියාත්මක වීම ආරම්භ කරන අතර සර්වරයට ක්ෂණිකව ඉවත් කළ හැකි ආකාරයෙන් පිටු රඳවා තබා ගනී. හැඹිලි ක්‍රෝලරයක් මඟින් ජනප්‍රිය පිටු සක්‍රීයව තබා ගන්නා බැවින්, පවිත්‍ර කිරීමකින් පසු පැමිණෙන පළමු අමුත්තාට පිටුව නැවත උත්පාදනය කිරීමේ කාලය දැරීමට සිදු නොවේ. මෙහි ප්‍රතිඵලය වන්නේ හැඹිලිය තවමත් PHP පිටුපසින් පවතින සාමාන්‍ය ස්ටැක් එකකට සම්බන්ධ කළ ප්ලගීන-පමණක් හැඹිලියකට වඩා පැහැදිලිවම අඩු සහ වඩාත් ස්ථාවර TTFB අගයක් ලැබීමයි.

අපගේම repo-තත්වයේ cache ප්ලගිනය සෑම වෙබ් අඩවියකම පූර්ව-ස්ථාපනය කර ස්වයංක්‍රීයව යාවත්කාලීන වන පරිදි සපයන අතර, එමඟින් WordPress ආරම්භයේදීම LSCache වෙත නිවැරදිව සම්බන්ධ කරයි. LiteSpeed නොවන මූලයකදී, එය සම්පූර්ණ පිටු ශීර්ෂක නිකුත් නොකර අක්‍රීය වන අතර, object cache සහ බැහැර කිරීමේ නීති දිගටම ක්‍රියාත්මක වේ — එබැවින් සංක්‍රමණය කළ වෙබ් අඩවියක් කිසි විටෙකත් බිඳවැටුණු, අඩක් වින්‍යාස කළ තත්ත්වයක ඉතිරි නොවේ.

පැරණි අන්තර්ගතය ලබා නොදී වේගවත්ව පැවතීම: ESI සහ බුද්ධිමත් ස්වයංක්‍රීය පිරිසිදු කිරීම

සම්පූර්ණ පිටු ආක්‍රමණශීලීව හැඹිලිගත කිරීමේ සම්භාව්‍ය අසාර්ථක ක්‍රම දෙකක් ඇත: ලොගින් වී සිටින පරිශීලකයෙකුට වෙනත් අයෙකුගේ පිටුවක් පෙන්වීම, සහ වෙනස් විය යුතුව තිබූ පිටුවක් ඕනෑම අයෙකුට පෙන්වීමයි. මේ දෙකටම විසඳුම අඩු ප්‍රමාණයකින් හැඹිලිගත කිරීම නොව, හැඹිලි ස්ථරය තුළම එය විසඳීමයි.

ESI (Edge Side Includes) මඟින් සජීවීව පැවතිය යුතු කොටස් සඳහා සිදුරු සකසන අතරතුර පිටුව හැඹිලිගත කිරීමට අපට ඉඩ සලසයි. WooCommerce වෙළඳසැලක නාමාවලිය, නිෂ්පාදන සහ ප්‍රවර්ග පිටු හැකි වේගවත්ම TTFB සඳහා සම්පූර්ණ පිටු හැඹිලියක් ලෙස සපයනු ලබන අතර, ESI මඟින් එක් එක් ඉල්ලීම අනුව කරත්ත කොටස, කුඩා කරත්ත එකතුව සහ ගිණුම් තත්ත්වය විදහා දක්වයි. කරත්තය, පිරික්සුම, මගේ ගිණුම සහ ඕනෑම nonce හෝ සැසි පිටු පෙරනිමියෙන් බැහැර කර ඇත. සාප්පු සවාරි යන්නන්ට සැමවිටම ඔවුන්ගේම බාස්කට් එක සහ ක්‍රියාකාරී පිරික්සුමක් පෙනේ; සෑම කෙනෙකුටම තවමත් හැඹිලියෙන් වෙළඳසැල් මුහුණත ලැබේ.

නැවුම් බව බුද්ධිමත් ස්වයංක්‍රීය හිස්කිරීම (auto-purge) මඟින් පාලනය වේ. අන්තර්ගතය, නිෂ්පාදන, මිල ගණන් හෝ ඇණවුම් වෙනස් වන විට හිස්කිරීමේ කොකු (purge hooks) ස්වයංක්‍රීයව ක්‍රියාත්මක වේ, එබැවින් අදාළ හැඹිලිගත පිටු ටයිමරයකට වඩා ක්ෂණිකව නැවුම් වන අතර, ඔබට උපකරණ පුවරුවෙන් හෝ WordPress තුළ සිටද ඉල්ලුම මත හිස්කිරීම සිදු කළ හැක. ටැග් පදනම් කරගත් හිස්කිරීම යනු එක් පළකිරීමක් සංස්කරණය කිරීමෙන් එම පළකිරීම සහ එහි ලේඛනාගාර පමණක් හිස් වන අතර මුළු හැඹිලියම නොවේ — එබැවින් තනි සංස්කරණයකින් මුළු වෙබ් අඩවියම මුල සිට ආරම්භ කිරීමක් සිදු නොවේ.

එක් එක් අඩවිය සඳහා Redis වස්තු හැඹිලිය: සම්පූර්ණ පිටුවක් විය නොහැකි දේ සඳහා

සෑම ඉල්ලීමක්ම ස්ථිතික සම්පූර්ණ පිටුවක් විය නොහැක. ලොග් වී ඇති සැසි, WordPress පරිපාලක, WooCommerce කරත්ත, සෙවීම සහ ESI මඟින් සජීවීව තබන ගතික කොටස් සියල්ලටම PHP ධාවනය කිරීමට සිදුවේ. ඒවා සඳහා, ඉලක්කය 'යෙදුම මඟ හැරීම' සිට 'දත්ත සමුදාය මඟ හැරීම' දක්වා මාරු වේ.

සෑම වෙබ් අඩවියකටම ඊටම වෙන් වූ Redis වස්තු හැඹිලියක් (object cache) ලැබේ. WordPress මඟින් දත්ත සමුදායෙන් නැවත නැවත කියවන දෑ — විකල්ප, transients, ලිපි සහ පද සෙවුම්, WooCommerce නිෂ්පාදන සහ සැසි දත්ත — මතකයේ හැඹිලිගත කරයි, එවිට සෑම පිවිසුමකදීම MySQL වෙත එකම විමසුම ක්‍රියාත්මක නොවේ. සම්පූර්ණ පිටු හැඹිලියට උපකාර කළ නොහැකි තැන්වල මෙම බලපෑම වඩාත් පැහැදිලිව පෙනේ: වේගවත් උපකරණ පුවරු, වේගවත් කරත්ත සහ තදබදය යටතේ දත්ත සමුදාය මත ඇති වන ඉතා අඩු බර.

වස්තු හැඹිලිය (object cache) හවුල් නොවී, එක් එක් අඩවිය සඳහා වෙන වෙනම පවතින අතර, එය කාර්යසාධනය සහ හුදකලාභාවය යන දෙකටම වැදගත් වේ. අඩවි මට්ටමේ දත්ත සමුදාය සීමා කිරීම (throttling) සමඟ එක්ව, එක් අඩවියක අධික හෝ නුසුදුසු ලෙස ලියන ලද විමසුම් මඟින් එහි අසල්වැසි අඩවි සඳහා දත්ත සමුදාය සම්පත් අහිමි කළ නොහැක. සම්පූර්ණ බහු-ස්ථර සැකසුම එකට ක්‍රියාත්මක වන ආකාරය පිළිබඳව අපගේ හැඹිලි විශේෂාංග පිටුවෙන් ද, හුදකලා කිරීම යටතේ කුලීකරුවන් අතර ඇති සීමාවන් පිළිබඳව ද ඔබට වැඩිදුර කියවිය හැකිය.

දාරය සහ යටින් ඇති ප්‍රවාහනය

මූලාරම්භයේ (origin) පවතින හැඹිලියට ද තවමත් ජාලය හරහා ගමන් කිරීමට සිදුවේ. සේවාදායකය ඉදිරියෙන් CDN අද්දර පවතින බැවින් ස්ථිතික වත්කම් සහ හැඹිලිගත කළ හැකි පිටු අමුත්තාට ආසන්න ස්ථානයක සිට සපයනු ලබන අතර, අධික තදබදයක් පවතින විට පවා මූලාරම්භය සැහැල්ලුවෙන් පවතී. අපගේ footprint-free සත්කාරක පෙළ සඳහා මෙම අද්දර සපයන්නන් කිහිප දෙනෙකු පුරා විසිරී ඇති multi-CDN සංචිතයක් වන අතර, එය ක්‍රියාකාරීත්ව ඉලක්කයක් මෙන්ම footprint ඉලක්කයක් ද ඉටු කරයි; ප්‍රධාන ධාරාවේ WordPress හි එය හුදෙක් මූලාරම්භයන් අක්‍රියව තබන වේගවත්, මනා ලෙස හැසිරෙන ස්ථරයකි.

අභ්‍යන්තරිකව, මූලිකාංග සම්බන්ධයෙන් කිසිදු අඩුවක් කර නොමැත. වෙබ් අඩවි HTTP/3 සමඟ NVMe ආචයනය මත ක්‍රියාත්මක වන බැවින්, හැඹිලිය (cache) විසින් එවන බයිට් ඕනෑම cache miss එකකදී පිටුපසින් ඇති වේගවත් ආචයනයක් සමඟ නවීන, බහුවිධ ප්‍රවාහනයක් ඔස්සේ ළඟා වේ. මෙම ස්ථරයන්ගෙන් කිසිවක් අමතර ඇඩෝන නොවේ: LiteSpeed, LSCache, එක් එක් අඩවිය සඳහා වන Redis, NVMe සහ HTTP/3 යනු සෑම සැලැස්මකම මූලික පදනම වන අතර, එය මිලෙන් ඉහළ පැකේජයක් නොවේ.

Core Web Vitals කෙරෙහි සැබවින්ම බලපාන්නේ කුමක්ද

Core Web Vitals සම්බන්ධයෙන් හොස්ටිං බොහෝ විට පමණට වඩා අලෙවි කරන බැවින්, නිරවද්‍ය වීම වටී. TTFB යනු සේවාදායකයට අයත් වන සමීකරණයේ කොටස වන අතර, ඉහත ඇති හැඹිලි තොගය එය අඩු කරන්නේය — edge වෙතින් HTTP/3 හරහා සපයනු ලබන හැඹිලිගත සම්පූර්ණ පිටුවක් යනු TTFB ලබා ගත හැකි අවම මට්ටමකි. TTFB යනු Largest Contentful Paint හි ප්‍රධාන ආරම්භය වන බැවින්, වේගවත් ප්‍රභවයක් මඟින් සෑම පහළ මිනුමකටම වෙනත් ආකාරයකින් ලබා ගත නොහැකි මූලික වාසියක් ලබා දෙයි.

නමුත් LCP, CLS සහ INP ප්‍රධාන වශයෙන් තීරණය වන්නේ බ්‍රවුසරය තුළ, පිටුව මගින්මය: ප්‍රශස්ත නොකළ ප්‍රධාන රූපයක් (hero image), රෙන්ඩර් වීම අවහිර කරන CSS සහ JavaScript, අකුරු සහ දැන්වීම් පූරණය වන විට මාරු වන පිරිසැලසුම, සහ ප්ලගීන මඟින් සිදුවන ප්‍රධාන ත්‍රෙඩ් එකේ අධික වැඩ ප්‍රමාණය. සේවාදායකයේ (server) කොපමණ හැඹිලිගත කිරීමක් (caching) කළද මෙගාබයිට් 2 ක ප්‍රධාන රූපයක් හෝ මෙගාබයිට් ගණනක JavaScript ලබා දෙන තේමාවක් නිවැරදි කළ නොහැක. අවංක සත්කාරකත්වයක් (hosting) මඟින් සේවාදායකයේ බලපෑම ඵලදායී ලෙස අවම සහ ස්ථාවර කර දෙයි, ඉන්පසු ඉදිරිපස අතුරුමුහුණත (front end) සැහැල්ලුවෙන් තබා ගැනීම වෙබ් අඩවිය සතු කාර්යයකි.

එම කාර්ය බෙදීම ප්‍රයෝජනවත් මානසික ආකෘතියකි. ඉල්ලීම බ්‍රවුසරය වෙත වේගයෙන් ළඟා වන බවටත්, ගමනාගමනය යටතේ වේගවත්ව පවතින බවටත් අපි සහතික වෙමු; ඔබ ධාරිතාව කුඩාව සහ ස්ථාවරව තබා ගනී. මේ දෙක හමුවන තැන — හැඹිලි පෙර-සූදානම, එජ් සැපයීම සහ ගතික පිටු ඇණහිටීම වැළැක්වීම සඳහා දත්ත සමුදාය ප්‍රතිචාරාත්මකව තබා ගැනීම — අපගේ තාක්ෂණික පද්ධතිය මනාව සකසා ඇති ස්ථානය වන අතර, සාමාන්‍ය සත්කාරකයක ඇති එම වෙබ් අඩවියට වඩා මෙම වේදිකාවේ කළමනාකරණය කළ WordPress වේගවත් කරන්නේ එයයි.

නිතර අසන ප්‍රශ්න

මට තවමත් WP Rocket වැනි කැෂිං ප්ලගිනයක් අවශ්‍යද?

නැත. සම්පූර්ණ පිටු හැඹිලිගත කිරීම (caching) වෙබ් සේවාදායකය තුළ LiteSpeed හි LSCache මඟින් සිදු කරනු ලබන අතර, පෙර-ස්ථාපනය කර ස්වයංක්‍රීයව යාවත්කාලීන වන අපගේම හැඹිලි ප්ලගිනය මඟින් WordPress එයට නිවැරදිව සම්බන්ධ කරයි, තවද ඒ පිටුපස එක් එක් වෙබ් අඩවිය සඳහා වෙන්වූ Redis වස්තු හැඹිලියක් (object cache) ඇත. මීට අමතරව තවත් දෙවන සම්පූර්ණ පිටු හැඹිලිගත කිරීමේ ප්ලගිනයක් එක් කිරීම සාමාන්‍යයෙන් උපකාරී වීමට වඩා සේවාදායක මට්ටමේ හැඹිලිය සමඟ ගැටලු ඇති කරයි, එබැවින් එය අවශ්‍ය නොවන අතර නිර්දේශ නොකරයි.

කෑෂිං මඟින් මගේ WooCommerce කරත්තය හෝ ලොග් වූ පිටු බිඳ වැටේවිද?

නැත. පෙරනිමියෙන්ම Cart, checkout, my-account සහ ඕනෑම nonce හෝ session පිටු cache වෙතින් බැහැර කර ඇති අතර, ESI මඟින් වෙනත් ආකාරයකින් cache කරන ලද පිටුවල කරත්ත කොටස සහ මුළු එකතුව සජීවීව තබා ගනී. වෙළඳසැල් මුහුණත තවමත් cache වෙතින් පූරණය වන අතරතුරදීත් සාප්පු සවාරි යන්නන්ට සැමවිටම ඔවුන්ගේම බාස්කට්ටුව සහ ක්‍රියාත්මක වන checkout එකක් දැකගත හැක.

මම ප්‍රකාශනය කරන විට හෝ සංස්කරණය කරන විට හැඹිලිය නැවුම්ව පවතින්නේ කෙසේද?

ස්මාර්ට් ස්වයංක්‍රීය ඉවත් කිරීම අදාළ WordPress හුක් මත ක්‍රියාත්මක වන බැවින්, අන්තර්ගතය පළ කිරීම, සංස්කරණය කිරීම, හෝ නිෂ්පාදනයක්, මිලක් හෝ ඇණවුමක් වෙනස් කිරීම මඟින් සම්පූර්ණ හැඹිලිය නොව බලපෑමට ලක් වූ පිටු සහ ඒවායේ සංරක්ෂිත පමණක් ඉවත් කරනු ලැබේ — තවද ක්‍රෝලර් එකක් ඒවා නැවත උණුසුම් කරයි. ඔබට උපකරණ පුවරුවෙන් හෝ WordPress තුළ සිට ඉල්ලුම මත ඉවත් කිරීමටද හැකිය.

හෝස්ටිං මඟින් පමණක් මට පරිපූර්ණ Core Web Vitals ලබා දිය හැකිද?

එය ඔබට හැකි උපරිම TTFB ලබා දෙයි, එය සේවාදායකයේ දායකත්වය වන අතර Largest Contentful Paint සඳහා මූලික ආරම්භයකි. නමුත් LCP, CLS සහ INP බොහෝ දුරට තීරණය වන්නේ පිටුව මඟිනි — රූප ප්‍රමාණයන්, විදැහුම්කරණය අවහිර කරන සම්පත්, පිරිසැලසුම් ස්ථායිතාව සහ ප්‍රධාන-ත්‍රෙඩ් JavaScript. අපගේ තාක්ෂණික එකතුව සේවාදායකයේ දායකත්වය වේගවත් සහ ස්ථාවර කරයි; ඉදිරිපස බර අඩු කර තබා ගැනීම ඉතිරි පරතරය නැති කරයි.

දින 14ක් නොමිලේ අත්හදා බලන්න

ඔබගේ පළමු වෙබ් අඩවි දින 14ක් නොමිලේ ආරම්භ කරන්න — කාඩ්පතක් අවශ්‍ය නොවේ. පවතින ජාලයක් සංක්‍රමණය කරනවාද? සංක්‍රමණයන් කිසිදු සීමාවකින් තොරව නොමිලේ සිදු කෙරේ.

නොමිලේ ආරම්භ කරන්න