𝗪𝗵𝗶𝗰𝗵 𝗠𝗮𝗴𝗲𝗻𝘁𝗼 𝗘𝘅𝘁𝗲𝗻𝘀𝗶𝗼𝗻 𝗜𝘀 𝗦𝗹𝗼𝘄𝗶𝗻𝗴 𝗬𝗼𝘂 𝗗𝗼𝘄𝗻?
অনুমান করা বন্ধ করুন।
একটি স্লো স্টোর তৈরির অন্যতম কারণ হলো অতিরিক্ত এক্সটেনশন। বেশিরভাগ মানুষ সমস্যাটি খুঁজে বের করার জন্য একটি একটি করে এক্সটেনশন ডিজেবল (disable) করে দেখেন। এটি ডিবাগিং (debugging) নয়; এটি একটি লাইভ সাইটে কেবল অনুমান করা।
Magento 2 আপনাকে একটি এক্সটেনশনের প্রভাব (cost) পরিমাপ করার সুযোগ দেয়। আপনাকে চারটি বিষয় লক্ষ্য করতে হবে:
- Plugins: প্রতিটি প্লাগইন একটি রিকোয়েস্টের (request) ওপর একটি অতিরিক্ত লেয়ার যোগ করে। ফাস্ট পাথে (fast paths) অনেক প্লাগইন থাকলে রিকোয়েস্ট ধীরগতির হয়ে যায়।
- Observers: একটি কমন ইভেন্টের (common event) ওপর থাকা অবজারভার প্রতিটি পেজেই রান করে।
- Layout: মডিউলগুলো শেয়ারড কন্টেইনারে (shared containers) ব্লক ইনজেক্ট করে। এগুলো আপনার প্রয়োজন না থাকলেও রান করতে থাকে।
- Queries: প্রতিটি আইটেমের জন্য একটি অতিরিক্ত লুকআপ (lookup) একটি সিঙ্গেল পেজে শত শত অতিরিক্ত কুয়েরি (query) তৈরি করতে পারে।
অনুমান করবেন না। সত্যতা জানতে বিল্ট-ইন প্রোফাইলার (built-in profiler) ব্যবহার করুন।
এই কমান্ডটি চালান:
bin/magento dev:profiler:enable
একটি স্লো পেজ লোড করুন। যেসব মেথড (method) অনেক বেশিবার কল করা হচ্ছে তা দেখুন। যদি কোনো মেথড ১,৪০০ বার কল হয়, তবে সেটি একটি সমস্যা।
আরও উন্নত ডেটার জন্য Blackfire, Xdebug, অথবা New Relic ব্যবহার করুন। Blackfire আপনাকে স্পষ্টভাবে দেখাবে একটি ভেন্ডর নেমস্পেস (vendor namespace) ঠিক কতটা সময় নিচ্ছে।
আপনি আপনার ফাইলগুলো সার্চ করার মাধ্যমেও মডিউলগুলো কোথায় হুক (hook) করছে তা খুঁজে পেতে পারেন:
প্লাগইন খুঁজে পেতে:
grep -rl "<plugin" vendor/*/module-*/etc/ app/code/*/*/etc/
অবজার্ভার খুঁজে পেতে:
grep -rl "<observer" vendor/*/module-*/etc/ app/code/*/*/etc/
একবার সন্দেহভাজন মডিউলটি খুঁজে পেলে, বৈজ্ঞানিক পদ্ধতি অনুসরণ করুন:
- মডিউলটি সক্রিয় থাকা অবস্থায় পেজের স্পিড পরিমাপ করুন।
- নির্দিষ্ট ওই মডিউলটি ডিজেবল করুন।
- পুনরায় পেজের স্পিড পরিমাপ করুন।
এই দুইটির পার্থক্যই হলো ওই মডিউলটির প্রকৃত প্রভাব (cost)।
যখন আপনি একটি স্লো মডিউল খুঁজে পাবেন, তখন আপনার কাছে তিনটি বিকল্প থাকবে:
- Scope পরিবর্তন করুন: প্লাগইনটিকে নির্দিষ্ট এরিয়াতে সীমাবদ্ধ করতে
di.xmlব্যবহার করুন। - লজিক পরিবর্তন করুন: একটি ভারী around plugin-এর পরিবর্তে নিজের তৈরি একটি হালকা (thin) মডিউল লিখুন।
- এটি সরিয়ে ফেলুন: যদি মডিউলটির প্রভাব এর উপকারের চেয়ে বেশি হয়, তবে এটি ডিলিট করে দিন।
পারফরম্যান্সকে লোককথা বা অনুমানের বিষয় হিসেবে দেখা বন্ধ করুন। আপনার স্টোর ঠিক করতে ডেটা ব্যবহার করুন।
উৎস: https://dev.to/iamrobindhiman/which-magento-extension-is-slowing-you-down-stop-guessing-1mj3