রেডিস (Redis) একটি ইন-মেমরি ডেটাবেস সিস্টেম, যা খুব দ্রুত কাজ করার জন্য পরিচিত। রেডিস সার্ভার অপারেশন এবং পারফরম্যান্স মনিটরিংয়ের জন্য বিভিন্ন স্ট্যাটস (Stats) এবং মেট্রিকস (Metrics) প্রদান করে। এই স্ট্যাটস এবং মেট্রিকস রেডিসের স্বাস্থ্য, পারফরম্যান্স, এবং ব্যবহারের তথ্য সরবরাহ করে, যা আপনাকে সিস্টেমের কার্যকারিতা এবং সম্ভাব্য সমস্যা চিহ্নিত করতে সাহায্য করে।
রেডিস স্ট্যাটস এবং মেট্রিকস বিশ্লেষণ করতে বিভিন্ন উপায় রয়েছে, যার মধ্যে রয়েছে RDB/AOF ফাইল পর্যালোচনা, Redis INFO কমান্ড ব্যবহার, এবং ক্লাস্টার মেট্রিক্স। নিচে রেডিসের প্রধান স্ট্যাটস এবং মেট্রিক্সের বিশ্লেষণ এবং তাদের ব্যবহার তুলে ধরা হলো।
1. Redis INFO কমান্ড
INFO কমান্ড রেডিস সার্ভারের বিস্তারিত স্ট্যাটস এবং মেট্রিক্স প্রদান করে। এটি রেডিস সার্ভারের বর্তমান অবস্থার একটি পূর্ণাঙ্গ প্রতিবেদন প্রদান করে, যেমন:
- পারফরম্যান্স
- মেমরি ব্যবহারের তথ্য
- কনেকশন স্ট্যাটস
- ক্লাস্টার স্ট্যাটস
- কিউ এবং কমান্ড স্ট্যাটস
INFO কমান্ড ব্যবহারের উদাহরণ:
redis-cli INFO
এটি রেডিস সার্ভারের সমস্ত মেট্রিক্স এবং স্ট্যাটস প্রদর্শন করবে। আপনি বিশেষ কোন বিভাগ চেক করতে চাইলে সেই বিভাগের নামও দিতে পারেন, যেমন:
redis-cli INFO memory
এটি শুধুমাত্র মেমরি ব্যবহারের সম্পর্কিত তথ্য দেখাবে।
2. Redis Stats ও Metrics এর প্রধান অংশ
INFO কমান্ডের মাধ্যমে যে প্রধান বিভাগগুলির তথ্য পাওয়া যায়, সেগুলি হল:
A. Server Information
- redis_version: রেডিসের সংস্করণ
- redis_mode: রেডিস মোড (স্ট্যান্ডঅ্যালোন, ক্লাস্টার, রিপ্লিকা)
- uptime_in_seconds: সার্ভার কত সেকেন্ড ধরে চলমান তা দেখাবে।
- uptime_in_days: সার্ভার কতদিন ধরে চলমান তা দেখাবে।
B. Memory
- used_memory: রেডিস সার্ভারের দ্বারা ব্যবহৃত মোট মেমরি। এটি মেগাবাইট বা গিগাবাইটে প্রদর্শিত হয়।
- used_memory_peak: সর্বোচ্চ মেমরি ব্যবহারের পরিমাণ।
- used_memory_rss: সিস্টেম দ্বারা শেয়ার করা মেমরি (এটা সত্যিকার মেমরি ব্যবহারের পরিমাণ হতে পারে)।
- mem_fragmentation_ratio: মেমরি ফ্র্যাগমেন্টেশন অনুপাত, যা 1 এর কাছাকাছি থাকা উচিত।
- maxmemory: রেডিসে সর্বাধিক অনুমোদিত মেমরি পরিমাণ।
C. Persistence
- rdb_last_bgsave_status: RDB ফাইলের শেষ ব্যাকআপের স্ট্যাটাস।
- aof_last_rewrite_time_sec: AOF ফাইল পুনর্লিখনের জন্য সময়।
D. Keyspace
- db0: ডাটাবেসের মধ্যে কিপেয়ার সংখ্যা। রেডিসে ডিফল্টভাবে 16টি ডাটাবেস থাকে (db0 থেকে db15)।
E. Clients
- connected_clients: বর্তমানে রেডিস সার্ভারের সাথে সংযুক্ত ক্লায়েন্টের সংখ্যা।
- client_longest_output_list: যে ক্লায়েন্টের কাছে সবচেয়ে বড় আউটপুট আছে।
F. Stats
- total_commands_processed: সার্ভারে মোট প্রক্রিয়াকৃত কমান্ডের সংখ্যা।
- instantaneous_ops_per_sec: প্রতি সেকেন্ডে প্রক্রিয়াকৃত কমান্ডের সংখ্যা।
- total_net_input_bytes: মোট ইনপুট (বাইট) পরিমাণ।
- total_net_output_bytes: মোট আউটপুট (বাইট) পরিমাণ।
G. Replication
- role: সার্ভারের রোল (মাস্টার বা স্লেভ)।
- connected_slaves: বর্তমানে সংযুক্ত স্লেভ নোডের সংখ্যা।
H. CPU
- used_cpu_sys: সিস্টেম CPU ব্যবহারের পরিমাণ।
- used_cpu_user: ব্যবহারকারী CPU ব্যবহারের পরিমাণ।
I. Cluster
- cluster_size: ক্লাস্টারের মোট নোড সংখ্যা।
- cluster_slots_assigned: কিভাবে স্লট ক্লাস্টারের মধ্যে বরাদ্দ করা হয়েছে।
3. Redis Metrics এবং Monitoring Tools
A. Redis CLI এর মাধ্যমে মেট্রিক্স সংগ্রহ
- আপনি রেডিস সার্ভারের তথ্য পেতে
INFOকমান্ড ব্যবহার করতে পারেন, কিন্তু রেডিস মনিটরিং আরও উন্নত করার জন্য বিভিন্ন টুলও ব্যবহার করা যায়।
B. Redis Monitoring Tools
Redis-Stat: Redis-Stat একটি ওয়েব অ্যাপ্লিকেশন যা রেডিস সার্ভারের স্ট্যাটস এবং মেট্রিক্সকে গ্রাফ আকারে প্রদর্শন করে।
gem install redis-stat redis-stat- Prometheus: Prometheus এবং Grafana এর মাধ্যমে আপনি রেডিসের স্ট্যাটস এবং পারফরম্যান্স ট্র্যাক করতে পারেন। রেডিস থেকে মেট্রিক্স সংগ্রহের জন্য Prometheus Redis Exporter ব্যবহার করা হয়।
- Datadog: Datadog হল একটি ক্লাউড মনিটরিং সল্যুশন যা রেডিস মেট্রিক্স এবং স্ট্যাটস মনিটর করার জন্য খুবই কার্যকরী। এটি রেডিস সার্ভার এবং ক্লাস্টারের পারফরম্যান্স ট্র্যাক করতে সাহায্য করে।
- New Relic: New Relic রেডিস সার্ভারের রিয়েল-টাইম পারফরম্যান্স মেট্রিক্স এবং ডেটা সরবরাহ করে।
4. Redis Stats এবং Metrics বিশ্লেষণ
A. পারফরম্যান্স বিশ্লেষণ
- Instantaneous_ops_per_sec: এটি প্রতি সেকেন্ডে প্রক্রিয়াকৃত অপারেশন সংখ্যা দেখায়, যা সিস্টেমের পারফরম্যান্সের একটি গুরুত্বপূর্ণ সূচক।
- used_memory এবং used_memory_peak: রেডিস সার্ভারের মেমরি ব্যবহারের তথ্য দেখায়। যদি মেমরি ব্যবহারের পরিমাণ খুব বেশি হয়ে থাকে, তবে এটি অ্যালার্ম হতে পারে এবং এর জন্য অপটিমাইজেশনের প্রয়োজন।
B. ক্লাস্টার পারফরম্যান্স
- cluster_size এবং cluster_slots_assigned: রেডিস ক্লাস্টারের সাইজ এবং স্লটের বরাদ্দ আপনাকে ক্লাস্টারের কার্যক্ষমতা ও সমন্বয় বুঝতে সাহায্য করে।
- connected_slaves: রেডিস স্লেভ সার্ভারের সংখ্যা জানালে হাই অ্যাভেইলেবিলিটি নিশ্চিত করতে সাহায্য করে।
C. ট্রাফিক এবং লোড বিশ্লেষণ
- total_net_input_bytes এবং total_net_output_bytes: সার্ভারের ইনপুট এবং আউটপুট ট্রাফিক বিশ্লেষণ করতে এই মেট্রিক্স ব্যবহার করা হয়।
- client_longest_output_list: এটি সিস্টেমের অতিরিক্ত লোড এবং ক্লায়েন্টদের দীর্ঘ আউটপুট ব্যবস্থাপনার সূচক হতে পারে।
সারাংশ
রেডিস স্ট্যাটস এবং মেট্রিক্স বিশ্লেষণ করার মাধ্যমে আপনি সার্ভারের পারফরম্যান্স এবং কার্যকারিতা বিশ্লেষণ করতে পারেন। INFO কমান্ড ব্যবহার করে আপনি রেডিসের বিভিন্ন বিভাগে ডেটা সংগ্রহ করতে পারেন, যেমন মেমরি ব্যবহারের তথ্য, ক্লায়েন্ট কনফিগারেশন, ডেটা পার্সিস্টেন্স, রেপ্লিকেশন, এবং CPU ব্যবহার। পারফরম্যান্স, লোড, এবং টুইকস চিহ্নিত করতে এই মেট্রিক্সগুলি ব্যবহার করে আপনার রেডিস ইনস্ট্যান্সের কার্যক্ষমতা বৃদ্ধি করা সম্ভব।
Read more