ওয়েবপেজগুলির কার্য সম্পাদনে অনেকগুলি কারণ অবদান রাখে। ওয়েব এবং নেটওয়ার্ক প্রযুক্তির অন্তর্নিহিত পরিবর্তনশীলতার কারণে লাইটহাউস পারফরম্যান্স স্কোর পরিবর্তন হতে থাকে, এমনকি পৃষ্ঠায় কোনো পরিবর্তন না হলেও।
পরিবর্তনশীলতার উৎস
কর্মক্ষমতা পরিমাপের পরিবর্তনশীলতা বিভিন্ন স্তরের প্রভাব সহ বেশ কয়েকটি চ্যানেলের মাধ্যমে প্রবর্তিত হয়। নীচে মেট্রিক পরিবর্তনশীলতার বেশ কয়েকটি সাধারণ উত্স, ফলাফলের উপর তাদের সাধারণ প্রভাব এবং বিভিন্ন পরিবেশে সেগুলি হওয়ার সম্ভাবনা কতটুকু রয়েছে এমন একটি সারণী রয়েছে।
উৎস | প্রভাব | সাধারণ শেষ ব্যবহারকারী | পেজস্পিড ইনসাইট | নিয়ন্ত্রিত ল্যাব |
---|---|---|---|---|
পাতা ননডিটারমিনিজম | উচ্চ | সম্ভবত | সম্ভবত | সম্ভবত |
স্থানীয় নেটওয়ার্ক পরিবর্তনশীলতা | উচ্চ | সম্ভবত | অসম্ভাব্য | অসম্ভাব্য |
টায়ার-1 নেটওয়ার্ক পরিবর্তনশীলতা | মধ্যম | সম্ভব | সম্ভব | সম্ভব |
ওয়েব সার্ভারের পরিবর্তনশীলতা | কম | সম্ভবত | সম্ভবত | সম্ভবত |
ক্লায়েন্ট হার্ডওয়্যার পরিবর্তনশীলতা | উচ্চ | সম্ভবত | অসম্ভাব্য | অসম্ভাব্য |
ক্লায়েন্ট সম্পদ বিরোধ | উচ্চ | সম্ভবত | সম্ভব | অসম্ভাব্য |
ব্রাউজার ননডিটারমিনিজম | মধ্যম | নিশ্চিত | নিশ্চিত | নিশ্চিত |
নীচে বৈচিত্র্যের উত্সগুলির আরও বিশদ বিবরণ এবং লাইটহাউস রানটাইম + পরিবেশের সম্ভাব্য সংমিশ্রণের উপর তাদের প্রভাব রয়েছে৷ প্রয়োগ করা থ্রটলিং এবং সিমুলেটেড থ্রটলিং পদ্ধতিগুলি এই তিনটি পরিবেশের যে কোনও একটিতে ব্যবহার করা যেতে পারে, সাধারণ শেষ ব্যবহারকারী সিমুলেটেড থ্রটলিং ব্যবহার করে।
পৃষ্ঠা ননডিটারমিনিজম
পৃষ্ঠাগুলিতে যুক্তি থাকতে পারে যা অনির্ধারিত যা ব্যবহারকারীর একটি পৃষ্ঠার অভিজ্ঞতার উপায় পরিবর্তন করে, যেমন একটি A/B পরীক্ষা যা লেআউট এবং লোড করা সম্পদ বা প্রচারের অগ্রগতির উপর ভিত্তি করে একটি ভিন্ন বিজ্ঞাপন অভিজ্ঞতা পরিবর্তন করে। এটি ভিন্নতার একটি ইচ্ছাকৃত এবং অপরিবর্তনীয় উৎস। যদি পৃষ্ঠাটি এমনভাবে পরিবর্তিত হয় যা পারফরম্যান্সে আঘাত করে, তাহলে Lighthouse এই ক্ষেত্রে সনাক্ত করতে সক্ষম হবে। এখানে শুধুমাত্র প্রশমন হল সাইটের মালিকের পক্ষ থেকে নিশ্চিত করা যে পৃষ্ঠার একই সংস্করণ বিভিন্ন রানের মধ্যে পরীক্ষা করা হচ্ছে।
স্থানীয় নেটওয়ার্ক পরিবর্তনশীলতা
প্যাকেট লস, পরিবর্তনশীল ট্র্যাফিক অগ্রাধিকার এবং শেষ-মাইল নেটওয়ার্ক কনজেশন থেকে স্থানীয় নেটওয়ার্কগুলির অন্তর্নিহিত পরিবর্তনশীলতা রয়েছে। সস্তা রাউটার এবং সীমিত ব্যান্ডউইথ শেয়ার করা অনেক ডিভাইসের ব্যবহারকারীরা সাধারণত এর জন্য সবচেয়ে বেশি সংবেদনশীল। প্রয়োগকৃত থ্রটলিং ন্যূনতম অনুরোধের বিলম্ব এবং সর্বাধিক থ্রুপুট প্রয়োগ করে এই প্রভাবগুলিকে আংশিকভাবে প্রশমিত করে যা অন্তর্নিহিত পুনঃপ্রচেষ্টাগুলিকে মুখোশ করে। সিমুলেটেড থ্রটলিং নিজেই নেটওয়ার্ক কার্যকলাপ পুনরায় প্লে করে এই প্রভাবগুলিকে প্রশমিত করে।
টায়ার-1 নেটওয়ার্ক পরিবর্তনশীলতা
নেটওয়ার্ক আন্তঃসংযোগগুলি সাধারণত খুব স্থিতিশীল এবং ন্যূনতম প্রভাব ফেলে তবে ক্রস-জিও অনুরোধগুলি, যেমন মার্কিন যুক্তরাষ্ট্র থেকে একটি চীনা সাইটের কার্যকারিতা পরিমাপ করা, টিয়ার-1 নেটওয়ার্ক হপ থেকে প্রবর্তিত উচ্চ মাত্রার লেটেন্সি অনুভব করতে শুরু করতে পারে। অ্যাপ্লায়েড থ্রটলিং নেটওয়ার্ক থ্রটলিং দিয়ে এই প্রভাবগুলিকে আংশিকভাবে মাস্ক করে। সিমুলেটেড থ্রটলিং নিজেই নেটওয়ার্ক কার্যকলাপ পুনরায় প্লে করে এই প্রভাবগুলিকে প্রশমিত করে।
ওয়েব সার্ভারের পরিবর্তনশীলতা
ওয়েব সার্ভারে পরিবর্তনশীল লোড থাকে এবং সবসময় একই বিলম্বের সাথে সাড়া দেয় না। শেয়ার্ড হোস্টিং পরিকাঠামো সহ নিম্ন-ট্রাফিক সাইটগুলি সাধারণত এটির জন্য বেশি সংবেদনশীল। অ্যাপ্লায়েড থ্রটলিং এর নেটওয়ার্ক থ্রটলিং-এ ন্যূনতম অনুরোধের বিলম্ব প্রয়োগ করে এই প্রভাবগুলিকে আংশিকভাবে মাস্ক করে। সিমুলেটেড থ্রটলিং এই প্রভাবের জন্য সংবেদনশীল তবে অন্যান্য নেটওয়ার্ক পরিবর্তনশীলতার তুলনায় সামগ্রিক প্রভাব সাধারণত কম হয়।
ক্লায়েন্ট হার্ডওয়্যার পরিবর্তনশীলতা
যে হার্ডওয়্যারে ওয়েব পৃষ্ঠাটি লোড হচ্ছে তা কার্যক্ষমতাকে ব্যাপকভাবে প্রভাবিত করতে পারে। ফলিত থ্রটলিং এই সমস্যাটি কমাতে অনেক কিছু করতে পারে না। সিমুলেটেড থ্রটলিং সিমুলেশনের সময় সিপিইউ টাস্কের তাত্ত্বিক এক্সিকিউশন টাইম ক্যাপ করে এই সমস্যাটিকে আংশিকভাবে প্রশমিত করে।
ক্লায়েন্ট রিসোর্স কনটেশন
লাইটহাউস চলাকালীন একই মেশিনে চলমান অন্যান্য অ্যাপ্লিকেশনগুলি CPU, মেমরি এবং নেটওয়ার্ক সংস্থানগুলির জন্য বিতর্ক সৃষ্টি করতে পারে। ম্যালওয়্যার, ব্রাউজার এক্সটেনশন, এবং অ্যান্টি-ভাইরাস সফ্টওয়্যারগুলি ওয়েব পারফরম্যান্সের উপর বিশেষভাবে শক্তিশালী প্রভাব ফেলে। মাল্টি-টেন্যান্ট সার্ভার এনভায়রনমেন্ট (যেমন ট্র্যাভিস, এডব্লিউএস, ইত্যাদি) এই সমস্যাগুলি থেকে ভুগতে পারে। লাইটহাউসের একাধিক দৃষ্টান্ত একবারে চালানোও সাধারণত এই সমস্যার কারণে ফলাফল বিকৃত করে। ফলিত থ্রটলিং এই সমস্যার জন্য সংবেদনশীল। সিমুলেটেড থ্রটলিং এই সমস্যাটিকে আংশিকভাবে প্রশমিত করে নেটওয়ার্ক অ্যাক্টিভিটি নিজে থেকে রিপ্লে করে এবং CPU এক্সিকিউশন ক্যাপ করে।
ব্রাউজার ননডিটারমিনিজম
ব্রাউজারগুলির কার্য সম্পাদনে অন্তর্নিহিত পরিবর্তনশীলতা রয়েছে যা ওয়েবপৃষ্ঠাগুলি লোড করার পদ্ধতিকে প্রভাবিত করে। এটি প্রয়োগ করা থ্রটলিংয়ের জন্য অনিবার্য কারণ দিনের শেষে তারা ব্রাউজার দ্বারা যা কিছু পর্যবেক্ষণ করা হয়েছে তা কেবল রিপোর্ট করছে। সিমুলেটেড থ্রটলিং আংশিকভাবে এই প্রভাবকে প্রশমিত করতে সক্ষম হয় নিজে থেকে এক্সিকিউশন সিমুলেট করে, শুধুমাত্র ব্রাউজার থেকে তার অনুমানে টাস্ক এক্সিকিউশন সময় পুনরায় ব্যবহার করে।
থ্রটলিং কৌশলের প্রভাব
মেট্রিক পরিবর্তনশীলতার কয়েকটি সাধারণ উত্স, ফলাফলের উপর তাদের সাধারণ প্রভাব এবং বিভিন্ন লাইটহাউস থ্রটলিং কৌশলগুলি তাদের প্রভাবকে কতটা প্রশমিত করতে সক্ষম তা নিম্নে একটি সারণী রয়েছে। আমাদের থ্রটলিং ডকুমেন্টেশনে বিভিন্ন থ্রটলিং কৌশল সম্পর্কে আরও জানুন।
উৎস | প্রভাব | সিমুলেটেড থ্রটলিং | ফলিত থ্রটলিং | থ্রটলিং নেই |
---|---|---|---|---|
পাতা ননডিটারমিনিজম | উচ্চ | কোন প্রশমন | কোন প্রশমন | কোন প্রশমন |
স্থানীয় নেটওয়ার্ক পরিবর্তনশীলতা | উচ্চ | প্রশমিত | আংশিকভাবে প্রশমিত | কোন প্রশমন |
টায়ার-1 নেটওয়ার্ক পরিবর্তনশীলতা | মধ্যম | প্রশমিত | আংশিকভাবে প্রশমিত | কোন প্রশমন |
ওয়েব সার্ভারের পরিবর্তনশীলতা | কম | কোন প্রশমন | আংশিকভাবে প্রশমিত | কোন প্রশমন |
ক্লায়েন্ট হার্ডওয়্যার পরিবর্তনশীলতা | উচ্চ | আংশিকভাবে প্রশমিত | কোন প্রশমন | কোন প্রশমন |
ক্লায়েন্ট সম্পদ বিরোধ | উচ্চ | আংশিকভাবে প্রশমিত | কোন প্রশমন | কোন প্রশমন |
ব্রাউজার ননডিটারমিনিজম | মধ্যম | আংশিকভাবে প্রশমিত | কোন প্রশমন | কোন প্রশমন |
বৈচিত্র্যের সাথে মোকাবিলা করার কৌশল
বাহ্যিক কারণগুলিকে বিচ্ছিন্ন করুন
- তৃতীয় পক্ষের প্রভাব থেকে আপনার পৃষ্ঠাকে যতটা সম্ভব বিচ্ছিন্ন করুন। অন্যের পরিবর্তনশীল ব্যর্থতার জন্য দোষারোপ করা কখনই মজার নয়।
- পরীক্ষার সময় আপনার নিজের কোডের ননডিটারমিনিজমকে আলাদা করুন। যদি আপনার কাছে একটি অ্যানিমেশন থাকে যা এলোমেলোভাবে দেখায়, আপনার পারফরম্যান্স নম্বরগুলিও এলোমেলো হতে পারে!
- যতটা সম্ভব নেটওয়ার্ক অস্থিরতা থেকে আপনার পরীক্ষার সার্ভারকে বিচ্ছিন্ন করুন। যখনই স্থিতিশীলতা একটি উদ্বেগের বিষয় তখন একই সঠিক নেটওয়ার্কে স্থানীয় হোস্ট বা একটি মেশিন ব্যবহার করুন।
- অ্যান্টি-ভাইরাস সফ্টওয়্যার এবং ব্রাউজার এক্সটেনশনের মতো বাহ্যিক প্রভাব থেকে আপনার ক্লায়েন্ট পরিবেশকে বিচ্ছিন্ন করুন। সম্ভব হলে পরীক্ষার জন্য একটি ডেডিকেটেড ডিভাইস ব্যবহার করুন।
যদি আপনার মেশিনে সত্যিই সীমিত সংস্থান থাকে বা একটি পরিষ্কার পরিবেশ তৈরি করা কঠিন হয়ে থাকে, তাহলে আপনার পরীক্ষা চালানোর জন্য পেজস্পিড ইনসাইটস বা ওয়েবপেজটেস্টের মতো হোস্ট করা ল্যাব পরিবেশ ব্যবহার করুন। ক্রমাগত ইন্টিগ্রেশন পরিস্থিতিতে, সম্ভব হলে ডেডিকেটেড সার্ভার ব্যবহার করুন। ফ্রি CI পরিবেশ এবং "বার্স্টেবল" উদাহরণগুলি সাধারণত বেশ উদ্বায়ী।
একাধিকবার বাতিঘর চালান
ব্যর্থতার জন্য আপনার থ্রেশহোল্ড তৈরি করার সময়, মানসিক বা প্রোগ্রাম্যাটিক, একক পরীক্ষার পরিবর্তে মধ্যম, 90 তম পার্সেন্টাইল বা এমনকি মিনিটের মতো সমষ্টিগত মানগুলি ব্যবহার করুন।
5 রানের মধ্যবর্তী লাইটহাউস স্কোর 1 রানের চেয়ে দ্বিগুণ স্থিতিশীল, এবং pwmetrics- এর মতো টুলগুলি আপনার জন্য স্বয়ংক্রিয়ভাবে Lighthouse চালাতে পারে। ন্যূনতম মান ব্যবহার করা মোটেও পরীক্ষা না করার চেয়ে একটি বড় উন্নতি এবং এটি বাস্তবায়ন করা অবিশ্বাস্যভাবে সহজ, এটি পাস না হওয়া পর্যন্ত কেবল 5 বার পর্যন্ত লাইটহাউস চালান!