Presto Resource Groups একটি শক্তিশালী বৈশিষ্ট্য যা Presto ক্লাস্টারের কোয়েরি সম্পাদনার জন্য নির্দিষ্ট রিসোর্স বরাদ্দ করার জন্য ব্যবহৃত হয়। Resource Groups ব্যবহার করে আপনি Presto ক্লাস্টারে কোয়েরির জন্য CPU, মেমরি, এবং অন্যান্য রিসোর্সের সীমা নির্ধারণ করতে পারেন, যাতে নির্দিষ্ট কোয়েরি বা ব্যবহারকারী গ্রুপের জন্য রিসোর্স বরাদ্দ নিয়ন্ত্রণ করা যায়।
এটি সাধারণত লম্বা চলমান কোয়েরি, একাধিক ক্লায়েন্টের জন্য একযোগভাবে কোয়েরি সম্পাদনা, বা ওভারলোড মোকাবেলা করার জন্য ব্যবহার করা হয়।
Presto-তে Resource Groups তৈরি এবং পরিচালনা করার জন্য আপনাকে config.properties
এবং resource-groups.properties
ফাইল কনফিগার করতে হবে।
Presto Resource Groups কনফিগার করতে, আপনাকে etc/resource-groups.properties
ফাইল তৈরি করতে হবে। এই ফাইলের মধ্যে আপনি Resource Groups এবং তাদের সেটিংস কনফিগার করতে পারবেন।
resource-groups.properties
ফাইলের উদাহরণ:
# This file configures the resource groups for Presto
# Resource Group Configuration
# Each resource group gets a set of CPU and memory limits
# Default Resource Group
resource-groups.enabled=true
resource-groups.configuration-file=etc/resource-groups.conf
# Maximum memory limit for queries
query.max-memory=30GB
query.max-memory-per-node=2GB
এখানে:
resource-groups.enabled=true
: এটি Resource Groups সক্ষম করে।resource-groups.configuration-file
: Resource Groups কনফিগারেশনের জন্য পাথ নির্ধারণ করে।Resource Group কনফিগারেশনে আপনি বিভিন্ন গ্রুপ তৈরি করতে পারেন এবং প্রতিটির জন্য নির্দিষ্ট রিসোর্স বরাদ্দ করতে পারেন। এটি resource-groups.conf
ফাইলে নির্ধারণ করা হয়।
resource-groups.conf
ফাইলের উদাহরণ:
# Define Resource Groups and their configurations
# Default Resource Group configuration
default-group {
cpu = 2
memory = 4GB
}
# High Priority Group configuration
high-priority-group {
cpu = 4
memory = 8GB
}
# Low Priority Group configuration
low-priority-group {
cpu = 1
memory = 2GB
}
এখানে:
default-group
: ডিফল্ট গ্রুপের জন্য 2 CPU এবং 4GB মেমরি বরাদ্দ করা হয়েছে।high-priority-group
: উচ্চ প্রাধান্যের জন্য 4 CPU এবং 8GB মেমরি বরাদ্দ করা হয়েছে।low-priority-group
: কম প্রাধান্যের জন্য 1 CPU এবং 2GB মেমরি বরাদ্দ করা হয়েছে।Presto ক্লাস্টারে কোয়েরি কনফিগারেশনের সময়, আপনি high-priority-group, low-priority-group, বা default-group এর মধ্যে কোয়েরি ভাগ করে রিসোর্স বরাদ্দ করতে পারেন।
Presto এর config.properties
ফাইলে Resource Group সক্রিয় করার জন্য, আপনি নীচের সেটিংটি যোগ করতে পারেন।
# Enable resource groups
resource-groups.enabled=true
resource-groups.configuration-file=etc/resource-groups.conf
এটি নিশ্চিত করবে যে, Presto Resource Groups কনফিগারেশন সক্রিয় হয়েছে এবং এটি Presto ক্লাস্টারে ব্যবহৃত হচ্ছে।
Presto ক্লাস্টারে Resource Groups ব্যবহার করতে, কোয়েরি প্রেরণ করার সময় resource group
স্পেসিফাই করতে হবে। এটি সাধারণত কোয়েরি এক্সিকিউশনে প্রাধান্য নির্ধারণের জন্য ব্যবহৃত হয়।
-- Assign a query to a specific resource group
SET SESSION resource_group = 'high-priority-group';
SELECT * FROM hive.default.orders WHERE order_status = 'shipped';
এখানে, কোয়েরিটি high-priority-group
এ বরাদ্দ করা হয়েছে, যা এই গ্রুপের জন্য নির্ধারিত CPU এবং মেমরি রিসোর্সের পরিমাণ ব্যবহার করবে।
Presto তে Resource Groups মনিটর করতে Prometheus এবং Grafana ব্যবহার করা যেতে পারে। Presto বিভিন্ন মেট্রিক্স সংরক্ষণ করে এবং এটি Grafana ড্যাশবোর্ডের মাধ্যমে প্রদর্শিত হয়।
Prometheus মেট্রিক্স উদাহরণ:
presto_query_cpu_time_seconds
: কোয়েরি CPU সময়ের মেট্রিক।presto_query_memory_bytes
: কোয়েরি মেমরি ব্যবহারের মেট্রিক।presto_query_resource_group
: Resource Group এর ব্যবহারের মেট্রিক।এটি আপনাকে দেখাবে, আপনার Resource Group এর জন্য কতটা CPU এবং মেমরি ব্যবহৃত হচ্ছে, এবং এটি আরও বিশ্লেষণ করতে সাহায্য করবে।
Presto ক্লাস্টারে যখন ভারী লোড তৈরি হয়, তখন Resource Groups ব্যবহার করে আপনাকে নানান ধরনের গ্রুপে কোয়েরি ভাগ করে রিসোর্স ব্যবস্থাপনা করতে হবে। আপনি প্রয়োজন অনুযায়ী Resource Groups স্কেল করতে পারেন:
resource-groups.properties
এবং resource-groups.conf
ফাইলের মাধ্যমে Resource Groups কনফিগার করা হয়।Resource Groups ব্যবহারের মাধ্যমে আপনি Presto ক্লাস্টারে রিসোর্স বরাদ্দের নিয়ন্ত্রণ প্রতিষ্ঠা করতে পারেন, যা ক্লাস্টারের স্থায়িত্ব এবং পারফরম্যান্স উন্নত করতে সাহায্য করবে।
common.read_more