Skip to content

মডিউল ৭: কাফকা পারফরম্যান্স (Kafka Performance)

কাফকা অত্যন্ত উচ্চ ক্ষমতা সম্পন্ন একটি সিস্টেম যা প্রতি সেকেন্ডে লক্ষ লক্ষ ডেটা প্রসেস করতে পারে। কিন্তু এই হাই-পারফরম্যান্স পাওয়ার জন্য হার্ডওয়্যার এবং অপারেটিং সিস্টেমের কিছু বিষয় বোঝা খুবই জরুরি।

১. ডিস্ক পারফরম্যান্স (Disk I/O)

কাফকা সব ডেটা হার্ড ডিস্কে সেভ করে রাখে। অনেকে মনে করতে পারেন ডিস্ক ব্যবহারে সিস্টেম স্লো হয়ে যাবে, কিন্তু কাফকা এখানে একটি বিশেষ টেকনিক ব্যবহার করে।

  • Sequential I/O: কাফকা ডিস্কে ডেটাগুলো সিরিয়াল অনুযায়ী (Sequential) লেখে। হার্ড ডিস্ক বা এসএসডিতে র্যান্ডম রাইটিং এর চেয়ে সিকুয়েনশিয়াল রাইটিং অনেক বেশি দ্রুত হয়।
  • SSD vs HDD: প্রোডাকশন এনভায়রনমেন্টে SSD ব্যবহার করা সবচেয়ে ভালো, তবে কাফকার সিকুয়েনশিয়াল রাইটিং এর কারণে HDD তেও এটি বেশ ভালো পারফরম্যান্স দেয়।
  • Multiple Disks: একটি ব্রোকারে একাধিক ডিস্ক ড্রাইভ ব্যবহার করলে (JBOD - Just a Bunch Of Disks) থ্রুপুট অনেক বাড়ানো যায়।

২. নেটওয়ার্ক (Network)

ডিস্ট্রিবিউটেড সিস্টেম হওয়ার কারণে কাফকার পারফরম্যান্স নেটওয়ার্কের ওপর অনেক বেশি নির্ভর করে।

  • Throughput: আপনার নেটওয়ার্ক চ্যানেল কত দ্রুত ডেটা ট্রান্সফার করতে পারে।
  • Latency: ডেটা এক জায়গা থেকে অন্য জায়গায় পৌঁছাতে কত সময় লাগে।
  • Zero Copy Technology: কাফকা নেটওয়ার্কের মাধ্যমে ডেটা পাঠানোর সময় সরাসরি ডিস্ক থেকে নেটওয়ার্ক কার্ডে ডেটা পাঠায় (Kernel space level), যা মেমরি কপি করার ঝামেলা কমায় এবং স্পিড বাড়ায়।

৩. র‍্যাম (RAM)

কাফকা নিজে খুব বেশি RAM ব্যবহার করে না, তবে সে অপারেটিং সিস্টেমের Page Cache এর ওপর অনেক বেশি নির্ভর করে।

  • Page Cache: যখনই কোনো ডেটা রাইট করা হয়, অপারেটিং সিস্টেম সেটি র‍্যামে ক্যাশ করে রাখে। কাফকা এই ক্যাশ থেকেই দ্রুত ডেটা রিড করে।
  • Heap Memory: সাধারণত কাফকার জন্য ৬ থেকে ৮ জিবি হিপ মেমরি (Heap Memory) যথেষ্ট। বাকি র‍্যাম অপারেটিং সিস্টেমকে ছেড়ে দেওয়া উচিত পেজ ক্যাশ ব্যবহারের জন্য।

৪. সিপিইউ (CPU)

সাধারণত কাফকা খুব বেশি CPU ব্যবহার করে না, তবে কিছু ক্ষেত্রে এর প্রয়োজন হয়।

  • Compression: প্রডিউসার যখন ডেটা কমপ্রেস (gzip, snappy, lz4) করে পাঠায়, তখন ব্রোকারকে সেটি আন-কমপ্রেস বা রি-কমপ্রেস করতে হতে পারে, যা সিপিইউ এর ওপর চাপ ফেলে।
  • Threading: কাফকা অনেকগুলো থ্রেড ব্যবহার করে রিকোয়েস্ট হ্যান্ডেল করার জন্য। তাই মাল্টি-কোর প্রসেসর থাকা ভালো।

৫. অপারেটিং সিস্টেম (OS - Operating System)

কাফকা সবচেয়ে ভালো চলে Linux অপারেটিং সিস্টেমে। কিছু বিষয় খেয়াল রাখলে পারফরম্যান্স অনেক গুণ বেড়ে যায়:

  • File Descriptors: কাফকা অনেকগুলো ফাইল ওপেন করে রাখে, তাই ওএসের ফাইল ডেসক্রিপ্টর লিমিট বাড়িয়ে নেওয়া প্রয়োজন (যেমন: ১০০,০০০)।
  • Swappiness: মেমরি থেকে সোয়াপিং কমানোর জন্য vm.swappiness কমিয়ে রাখা ভালো, যাতে ডেটা ডিস্কের সোয়াপ মেমরিতে না চলে যায়।
  • File System: কাফকার জন্য XFS বা EXT4 ফাইল সিস্টেম রি-কমেন্ড করা হয়।

IMPORTANT

প্রোডাকশন সার্ভারে কাফকা চালানোর আগে সবসময় হার্ডওয়্যারের ব্যাপ্ত ক্ষমতা (Maximum Capability) টেস্ট করে নেওয়া উচিত।

TIP

পারফরম্যান্স টিউন করতে হলে প্রথমে Monitoring Tools ব্যবহার করে দেখুন কোথায় সমস্যা (Bottleneck) হচ্ছে— ডিস্ক, নেটওয়ার্ক নাকি মেমরিতে।

Released under the MIT License.