top, uptime, w এবং অ্যাপসিগন্যালের হোস্ট মেট্রিক্সের মতো টুল একটি মেট্রিক রিপোর্ট করে যাকে লোড এভারেজ বলা হয়। এই মেট্রিক আপনাকে বলে আপনার সিস্টেম কত লোডের অধীন ছিল, একাধিক টাইমফ্রেমে গড় করে।
$ uptime
10:14:14 up 60 days, 17:42, 1 user, load average: 0.44, 0.28, 0.25
লোড এভারেজ সাধারণত তিনটি সংখ্যা হিসেবে প্রদর্শিত হয়, uptime-র উদাহরণের মতো। রেজাল্টের শেষে তিনটি সংখ্যা গত এক মিনিটে (0.44), গত পাঁচ মিনিটে (0.28), এবং গত পনেরো মিনিটে (0.25) গড় লোড দেখায়।
অ্যাপসিগন্যালে, লোড এভারেজ গত আট ঘণ্টার জন্য মিনিটে দেখানো হয়, এবং তার বেশি টাইমফ্রেমের জন্য ঘণ্টা অনুযায়ী।
সিস্টেম লোড
এই লোড এভারেজগুলো কী বলে (এবং কখন অ্যালার্ম্ড হওয়া উচিত) বুঝতে, আমাদের প্রথমে বুঝতে হবে সিস্টেম লোড কী, এবং কীভাবে সেটি কাউন্ট হয়।
একটি সিস্টেমের লোড hovedতಃ যেকোনো সময় একটিভ প্রসেসের সংখ্যা। আইডেল অবস্থায়, লোড ০। যখন একটি প্রসেস শুরু হয়, লোড ১ বাড়ে। একটি টার্মিনেটিং প্রসেস লোড ১ কমায়। রানিং প্রসেসের পাশাপাশি, যেকোনো কিউড প্রসেসও কাউন্ট হয়। তাই, যখন একটি প্রসেস সক্রিয়ভাবে সিপিইউ ব্যবহার করছে, এবং দুটি তাদের বারের জন্য অপেক্ষা করছে, লোড ৩।
লোড দ্রুত ফ্লাকচুয়েট করে শর্ট-লিভড প্রসেসের কারণে এবং মিলিসেকেন্ডে শূন্য থেকে ৫-এ যেতে পারে এবং পরের মুহূর্তে আবার ফিরে আসতে পারে। এই ভোলাটিলিটির কারণে, গড় লোড সময়ের সাথে দেখতে বেশি উপকারী, যা সিস্টেম কত লোডের অধীন ছিল সেটার একটি ভালো ওভারভিউ দেয়।
লোড এভারেজ
এখন যেহেতু আমরা জানি সিস্টেম লোড কীভাবে কাউন্ট হয়, আমরা লোড এভারেজে তাকাতে পারি। আমরা দেখেছি, সিস্টেম যেই লোডের অধীন থাকে সেটি সাধারণত সময়ের সাথে গড় হিসেবে দেখানো হয়।
সাধারণত, সিঙ্গেল-কোর সিপিইউ একবারে একটি প্রসেস হ্যান্ডেল করতে পারে। ১.০ গড় লোড মানে এক কোর ১০০% সময় ব্যস্ত ছিল। যদি লোড এভারেজ ০.৫-এ নেমে যায়, সিপিইউ ৫০% সময় আইডেল ছিল।
যদি লোড এভারেজ ১.৫-এ উঠে যায়, সিপিইউ সব সময় ব্যস্ত ছিল যখন (গড়ে) আরেকটি প্রসেস ৫০% সময় অপেক্ষা করছিল, যা সিপিইউর চেয়ে বেশি কাজ দিচ্ছিল।
লজিক্যাল প্রসেসর
সাধারণ রুল অফ থাম্ব হলো লোড এভারেজ মেশিনের প্রসেসরের সংখ্যা ছাড়া না উচিত। যদি প্রসেসরের সংখ্যা চারটি হয়, লোড সাধারণত ৪.০-এর নিচে থাকা উচিত।
ধ্যাান রাখুন এটি লজিক্যাল প্রসেসর-এর সাথে সম্পর্কিত, আসল ফিজিক্যাল সিপিইউ কোরের সাথে নয়। হাইপার-থ্রেডিং-এর মতো সফটওয়্যার অ্যাবস্ট্রাকশনের কারণে, লজিক্যাল প্রসেসরের বা প্রসেসিং থ্রেডের সংখ্যা ফিজিক্যাল প্রসেসর কোরের চেয়ে বেশি হতে পারে।
লিনাক্সে লজিক্যাল প্রসেসরের পরিমাণ চেক করতে, /proc/cpuinfo-এ লিস্ট করা প্রসেসরের সংখ্যা কাউন্ট করুন, বা grep processor /proc/cpuinfo | wc -l, যা অটোমেটিক্যালি প্রসেসর লাইনের সংখ্যা প্রিন্ট করবে।
ম্যাকে, আপনি সরাসরি sysctl- থেকে লজিক্যাল প্রসেসরের সংখ্যা জানতে পারেন sysctl -n hw.ncpu ব্যবহার করে।
একাধিক লজিক্যাল প্রসেসর বিশিষ্ট সিস্টেমের জন্য, লোড এভারেজ বেশি হতে পারে, কারণ সেটি আরও কাঙ্কারেন্ট প্রসেস রান করতে পারে। দুটি সিপিইউ কোর বিশিষ্ট মেশিনে, ২.০ লোড এভারেজ মানে দুটি সিপিইউ ১০০% ইউটিলাইজড ছিল, যখন গড়ে দুটি প্রসেস একটিভ ছিল।
👋 আমাদের রুবি পারফরম্যান্স মনিটরিং চেকলিস্টে অন্যান্য রুবি (অন রেইলস) পারফরম্যান্স আর্টিকেল দেখুন।
লোড এভারেজ পড়া
যেহেতু এটা প্রসেসের অ্যাবসোলিউট সংখ্যার গড়, কি প্রপার লোড এভারেজ এবং কখন অ্যালার্ম্ড হওয়া উচিত সেটা বোঝা কঠিন লাগতে পারে। সাধারণত, যেহেতু আপনার প্রতিটি সিপিইউ কোর একবারে একটি প্রসেস হ্যান্ডেল করতে পারে, সিস্টেম ওভারলোডেড নয় যতক্ষণ না সেটি ১.০ পার করে প্রতি লজিক্যাল প্রসেসর। ডুয়েল-কোর সিস্টেমে (হাইপার-থ্রেডিং ছাড়া), সেটি হবে ২.০।
সাধারণত, লাস্ট মিনিট মার্কে লোড এভারেজ ১.০ পার করলে কোয়েক কনসERN নয়, কিন্তু পাঁচ বা পনেরো মিনিটের গড়ে এলিভেটেড লোড একটি সমস্যা ইন্ডিকেট করতে পারে।
টিপ: অ্যাপসিগন্যালের অ্যানোমালি ডিটেকশন ব্যবহার করা যেতে পারে আপনাকে অ্যালার্ট করার জন্য যখন আপনার লোড এভারেজ একটি নির্দিষ্ট মানের উপরে একটি পিরিয়ডের জন্য থাকে। ওয়ার্ম-আপ সেটিং ব্যবহার করে, আমরা আপনাকে মেসেজ পাঠাব যখন আপনার লোড ১.৫-এর উপরে পনেরো মিনিট থাকে।
আমরা কি লোড এভারেজ সম্পর্কে আপনার প্রশ্নের উত্তর দিয়েছি, বা কিছু অংশ এখনো পরিষ্কার নয়? দয়া করে @AppSignal-এ আমাদের জানান। অবশ্যই, আমরা জানতে চাই আপনি এই আর্টিকেল কেমন লাগলো, বা অন্য কোন বিষয়ে জানতে চান।