আপনার ডাটাবেস প্রোফাইল

Firebase CLI- তে থাকা ডাটাবেস প্রোফাইলার টুল ব্যবহার করে আপনার Firebase Realtime Database কর্মক্ষমতা পরিমাপ করুন। প্রোফাইলার টুলটি একটি নির্দিষ্ট সময়ের মধ্যে আপনার ডাটাবেসের সমস্ত কার্যকলাপ লগ করে, তারপর একটি বিস্তারিত প্রতিবেদন তৈরি করে। আপনার ডাটাবেসের কর্মক্ষমতা সংক্রান্ত সমস্যা সমাধান করতে, সমস্যাযুক্ত ক্ষেত্রগুলি চিহ্নিত করতে এবং আনইন্ডেক্সড কোয়েরিগুলি কমাতে বিস্তারিত প্রতিবেদনটি ব্যবহার করুন।

একটি প্রোফাইল তৈরি করুন

  1. আপনার Firebase Realtime Database প্রোফাইলিং শুরু করার আগে, নিশ্চিত করুন যে আপনি Firebase CLI এর সর্বশেষ সংস্করণ ব্যবহার করছেন এবং আপনি যে ডাটাবেস এবং প্রকল্পটি প্রোফাইল করতে চান তার জন্য এটি চালু করেছেন। মনে রাখবেন যে প্রোফাইল তৈরি করতে আপনাকে অবশ্যই সেই প্রকল্পের একজন সম্পাদক বা মালিক হতে হবে।

  2. নিম্নলিখিত কমান্ড দিয়ে আপনার ডাটাবেস প্রোফাইলিং শুরু করুন:

    firebase database:profile
    আপনার ডাটাবেস থেকে ক্রিয়াকলাপ রেকর্ড করার এবং প্রোফাইল তৈরি করার সময় প্রোফাইলার একটি স্ট্যাটাস বার্তা প্রদর্শন করে।

  3. প্রোফাইলটি সম্পূর্ণ করতে এবং ফলাফল প্রদর্শন করতে এন্টার টিপুন।

আপনার ফলাফল ব্যাখ্যা করুন

প্রোফাইলার টুলটি আপনার ডাটাবেসের ক্রিয়াকলাপ সম্পর্কে সংগৃহীত ডেটা একত্রিত করে এবং ফলাফলগুলিকে তিনটি প্রাথমিক বিভাগে প্রদর্শন করে: গতি , ব্যান্ডউইথ এবং আনইন্ডেক্সড কোয়েরি

গতি

স্পিড রিপোর্ট প্রতিটি ধরণের অপারেশনের জন্য সার্ভারের প্রতিক্রিয়া সময় (মিলিসেকেন্ডে) পরিমাপ করে। তবে, স্পিড রিপোর্টে পরিমাপ করা গতি আসলে শেষ ব্যবহারকারীদের গতির অভিজ্ঞতা প্রতিফলিত নাও হতে পারে। নেটওয়ার্কের অবস্থা সহ বিভিন্ন কারণ ক্লায়েন্টের পক্ষে ল্যাটেন্সি যোগ করতে পারে।

গতি প্রতিবেদনে নিম্নলিখিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত রয়েছে:

  • পাথ: আপনার ডাটাবেসের সেই পাথ যেখানে অপারেশনগুলি ঘটেছে। যদি ২৫টির বেশি চাইল্ড নোড থাকে, তাহলে প্রোফাইলার টুলটি এগুলিকে একটি প্যারেন্ট পাথে পরিণত করে এবং একটি $wildcard মার্কার যোগ করে। আপনি রিপোর্টে আপনার ডাটাবেসের রুট ডিরেক্টরি দেখতে পাবেন, যা একটি ফরোয়ার্ড স্ল্যাশ / দ্বারা প্রতিনিধিত্ব করা হয়েছে।
  • গণনা: প্রদত্ত পথে সংঘটিত ক্রিয়াকলাপের সংখ্যা।
  • গড় কার্যকরকরণ গতি: সার্ভারের সেই পথে নির্দিষ্ট ধরণের অপারেশন পরিচালনা করার জন্য প্রয়োজনীয় ব্যবসায়িক যুক্তি কার্যকর করতে গড় সময় লাগে। এখানে পরিমাপ করা সময়ের ব্যবধানটি তার পরে শুরু হয় যা নীচে বর্ণিত "গড় মুলতুবি সময়" দ্বারা পরিমাপ করা হয়।
  • গড় মুলতুবি সময়: অনুরোধগুলি কার্যকর হওয়ার আগে সারিবদ্ধভাবে অপেক্ষা করতে গড় সময় লাগে। এই বিলম্ব সমস্ত ক্লায়েন্ট-প্রবর্তিত অনুরোধের ক্ষেত্রেই সাধারণ। মোট সার্ভার-সাইড অনুরোধের বিলম্বিতা মোটামুটিভাবে সেই অনুরোধের মুলতুবি সময় এবং কার্যকর করার গতির যোগফল।
  • অনুমতি অস্বীকার করা হয়েছে: আপনার ডাটাবেসে ফায়ারবেস ডাটাবেস নিয়ম দ্বারা ব্লক করা প্রদত্ত পথে ক্রিয়াকলাপের সংখ্যা।
অপারেশনের ধরণ অনুসারে গতির প্রতিবেদন
এক্সিকিউশন স্পিড পড়ুন ডাটাবেস থেকে ক্লায়েন্টের ডেটা পড়ার অনুরোধের জন্য সার্ভারের প্রতিক্রিয়া সময়। পড়ার কার্যকর করার সময় সাধারণত পঠিত ডেটার পরিমাণের উপর নির্ভর করে, তবে কিছু ছোট রিডও ক্যাশে প্রিফেচিংয়ের কারণে বিলম্বিত হতে পারে।
লেখার সম্পাদনের গতি ডাটাবেসে ডেটা লেখার জন্য ক্লায়েন্টের অনুরোধের সার্ভার প্রতিক্রিয়া সময়। লেখা ডেটার পরিমাণের সাথে এক্সিকিউশন সময় স্কেল লিখুন।
সংযোগ সম্পাদনের গতি ডাটাবেস ক্লায়েন্টদের কাছে অনুরোধ স্থাপনের জন্য সার্ভারের প্রতিক্রিয়া সময়। সংযোগ অনুরোধের জন্য বিলম্বের উপর প্রাধান্য রয়েছে সংযোগ ব্যবস্থাপনার সাথে সম্পর্কিত ইন-মেমরি সার্ভার-সাইড বুককিপিং।
সম্প্রচার সম্পাদনের গতি

রিয়েলটাইম আপডেটের জন্য প্রদত্ত পথ শোনার জন্য ক্লায়েন্টদের কাছে ডেটা বিতরণ করতে সার্ভারের সময় লাগে।

ব্রডকাস্ট স্পিড রিপোর্টের Count প্রপার্টি সম্প্রচারের সংখ্যা একত্রিত করে, তথ্য প্রাপ্ত ক্লায়েন্টের সংখ্যা নয়। উদাহরণস্বরূপ, যদি ১০ জন ক্লায়েন্ট একটি নির্দিষ্ট পথে শুনছিল এবং সার্ভার ১০ জন ক্লায়েন্টের কাছে একটি আপডেট সম্প্রচার করে, তাহলে ব্রডকাস্ট গণনা শুধুমাত্র ১টি সম্প্রচার প্রতিফলিত করে, যদিও ১০ জন ক্লায়েন্ট ডেটা পেয়েছে।

অনুমতি অস্বীকৃত সম্পত্তি সম্প্রচার গতির প্রতিবেদনে অন্তর্ভুক্ত নয়।

ব্যান্ডউইথ

ব্যান্ডউইথ রিপোর্ট আপনার ডাটাবেস ইনকামিং এবং আউটগোয়িং অপারেশনে কতটা ডেটা ব্যবহার করে তার অন্তর্দৃষ্টি প্রদান করে। তবে, বিলিং অনুমান করার জন্য আপনার ব্যান্ডউইথ রিপোর্ট ব্যবহার করা উচিত নয়, কারণ এতে অন্যান্য অপারেশনের জন্য ব্যবহৃত ব্যান্ডউইথ অন্তর্ভুক্ত থাকে না, যেমন আপনার ডাটাবেস প্রোফাইলিং। ব্যান্ডউইথ রিপোর্ট আপনার ডাটাবেসে এবং থেকে পঠন, লেখা এবং সম্প্রচার অপারেশন দ্বারা ব্যবহৃত ডেটার পেলোড আকার মোটামুটিভাবে অনুমান করে। এটি এমন একটি টুল যা কর্মক্ষমতা পরিমাপ করে, বিলিংয়ের পূর্বাভাস দেয় না।

ব্যান্ডউইথ রিপোর্টে নিম্নলিখিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত রয়েছে:

  • পাথ: আপনার ডাটাবেসের সেই পাথ যেখানে অপারেশনগুলি সংঘটিত হয়েছে। যদি ২৫টির বেশি চাইল্ড নোড থাকে, তাহলে প্রোফাইলার টুলটি এগুলিকে একটি প্যারেন্ট পাথে রূপান্তর করে।

  • মোট: প্রদত্ত পাথে সমস্ত ক্রিয়াকলাপে ব্যবহৃত মোট বহির্গামী বা আগত বাইট।

  • গণনা: প্রদত্ত পথে সংঘটিত ক্রিয়াকলাপের সংখ্যা।

  • গড়: প্রদত্ত পাথে (বাইট/লেখা বা বাইট/পড়া) অপারেশন জুড়ে ডাউনলোড বা আপলোড করা বাইটের গড় সংখ্যা।

ব্যান্ডউইথ রিপোর্ট
ডাউনলোড করা বাইট ক্লায়েন্ট SDK এবং REST API এর মাধ্যমে পাঠানো পঠন এবং সম্প্রচার ক্রিয়াকলাপের মাধ্যমে ব্যবহৃত ডেটা।
আপলোড করা বাইট ডাটাবেস সার্ভারে লেখার অনুরোধের মাধ্যমে ব্যবহৃত ডেটা। ইনকামিংয়ের অধীনে 0 বাইট থাকলে মুছে ফেলাগুলি লেখার মতো দেখায়।

আনইন্ডেক্সড কোয়েরি

আনইন্ডেক্সড কোয়েরিগুলি ব্যয়বহুল হতে পারে, কারণ ক্লায়েন্টরা একটি অবস্থান থেকে সমস্ত ডেটা ডাউনলোড করে এবং তারপরে কোয়েরি সম্পাদন করে। এটি প্রয়োজনের চেয়ে বেশি ব্যান্ডউইথ ব্যবহার করে। আপনার ডাটাবেসের কর্মক্ষমতা অপ্টিমাইজ করার জন্য যতটা সম্ভব আনইন্ডেক্সড কোয়েরি সমাধান করুন।

আনইন্ডেক্সড কোয়েরি রিপোর্ট নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদর্শন করে:

  • পাথ: আপনার ডাটাবেসের সেই পাথ যেখানে আনইনডেক্সড কোয়েরিগুলি ঘটেছে।
  • ইনডেক্স: আনইনডেক্সড কোয়েরিগুলি সমাধান করার জন্য আপনার যে নিয়মটি যোগ করা উচিত। ইনডেক্স ইওর ডেটাতে ইনডেক্সিং সম্পর্কে আরও জানুন।
  • গণনা: প্রদত্ত পাথে সংঘটিত আনইনডেক্সড কোয়েরির সংখ্যা।

উন্নত প্রোফাইলিং

আপনার ডাটাবেস যে সমস্ত ক্রিয়াকলাপ পরিচালনা করছে তা দেখতে, আপনার ডাটাবেস প্রোফাইল করার সময় --raw পতাকাটি ব্যবহার করুন, নিম্নরূপ:

firebase database:profile --raw

কাঁচা আউটপুটে প্রতিটি অপারেশনের জন্য ক্লায়েন্ট তথ্যও অন্তর্ভুক্ত থাকে, যেমন userAgent স্ট্রিং এবং আইপি ঠিকানা। আপনার Firebase Realtime Database প্রোফাইল করা বিভিন্ন অপারেশন সম্পর্কে আরও জানুন Firebase Realtime Database অপারেশন টাইপস

প্রোফাইলার টুল: কোনও বিলিং টুল নয়

ব্যান্ডউইথ খরচ অনুমান করার জন্য প্রোফাইলার টুল ব্যবহার করবেন না। প্রোফাইলার টুলটি আপনার ডাটাবেসের কর্মক্ষমতার একটি সামগ্রিক চিত্র দেওয়ার জন্য, আপনাকে ক্রিয়াকলাপ পর্যবেক্ষণ করতে এবং সমস্যা সমাধানে সহায়তা করার জন্য তৈরি করা হয়েছে, বিলিংয়ের অনুমান করার জন্য নয়। এটি নেটওয়ার্ক ট্র্যাফিকের জন্য হিসাব করে না, এটি কেবল প্রতিক্রিয়াগুলিতে প্রেরিত অ্যাপ্লিকেশন ডেটার একটি অনুমান রেকর্ড করে।

আপনার ডাটাবেস প্রোফাইলে অন্তর্ভুক্ত নয় এমন Firebase দ্বারা বিল করা নেটওয়ার্ক ট্র্যাফিকের কিছু সাধারণ উদাহরণ নিচে দেওয়া হল:

  • প্রোটোকল ওভারহেড: একটি সেশন স্থাপন এবং রক্ষণাবেক্ষণের জন্য সার্ভার এবং ক্লায়েন্টদের মধ্যে কিছু অতিরিক্ত ট্র্যাফিক প্রয়োজন। অন্তর্নিহিত প্রোটোকলের উপর নির্ভর করে, এই ট্র্যাফিকের মধ্যে অন্তর্ভুক্ত থাকতে পারে: ফায়ারবেস রিয়েলটাইম ডাটাবেসের রিয়েলটাইম প্রোটোকল ওভারহেড, ওয়েবসকেট ওভারহেড এবং HTTP হেডার ওভারহেড। প্রতিবার যখন কোনও সংযোগ স্থাপন করা হয়, তখন এই ওভারহেড, যেকোনো SSL এনক্রিপশন ওভারহেডের সাথে মিলিত হয়ে, সংযোগ খরচে অবদান রাখে। যদিও এটি সাধারণত ব্যান্ডউইথের একটি বড় পরিমাণ নয়, তবে আপনার পেলোডগুলি যদি ছোট হয় বা আপনি ঘন ঘন, সংক্ষিপ্ত সংযোগ করেন তবে এটি যথেষ্ট হতে পারে।
  • SSL এনক্রিপশন ওভারহেড: নিরাপদ সংযোগের জন্য SSL এনক্রিপশন ওভারহেডের সাথে সম্পর্কিত একটি খরচ জড়িত। গড়ে, প্রাথমিক হ্যান্ডশেকের জন্য এই খরচ প্রায় 3.5KB এবং প্রতিটি বহির্গামী বার্তায় TLS রেকর্ড হেডারের জন্য প্রায় 40B। বেশিরভাগ অ্যাপের জন্য, এটি আপনার বিলের একটি ছোট শতাংশ। তবে, যদি আপনার নির্দিষ্ট ক্ষেত্রে প্রচুর SSL হ্যান্ডশেকের প্রয়োজন হয় তবে এটি একটি বড় শতাংশ হতে পারে। উদাহরণস্বরূপ, যে ডিভাইসগুলি TLS সেশন টিকিট সমর্থন করে না সেগুলিতে প্রচুর সংখ্যক SSL সংযোগ হ্যান্ডশেকের প্রয়োজন হতে পারে।

আপনার বিল বোঝা এবং অনুমান করা সম্পর্কে আরও পড়ুন।