نرم افزارمتوسط

آموزش کامل بنچمارک Oha ، تست سرور های Http

اگر می‌خواهید مطمئن شوید که سرور شما می‌تواند حجم ترافیک مورد انتظار را به خوبی مدیریت کند، Benchmarking یکی از مهم‌ترین کارهایی است که باید انجام دهید. این کار به شما کمک می‌کند نقاط ضعف سرورتان را شناسایی کنید، تنظیمات آن را بهینه کنید و مطمئن شوید که برنامه‌تان در شرایط واقعی عملکرد خوبی خواهد داشت. یکی از ابزارهای ساده و قدرتمند برای این کار Oha است. در این مقاله، با Oha آشنا می‌شویم، نحوه استفاده از آن را یاد می‌گیریم و بهترین روش‌ها برای بنچمارک‌گیری سرور را بررسی می‌کنیم.

س
سعید زارعینویسنده
18 بهمن 1403
آموزش کامل بنچمارک Oha ، تست سرور های Http

اگر می‌خواهید مطمئن شوید که سرور شما می‌تواند حجم ترافیک مورد انتظار را به خوبی مدیریت کند، Benchmarking یکی از مهم‌ترین کارهایی است که باید انجام دهید. این کار به شما کمک می‌کند نقاط ضعف سرورتان را شناسایی کنید، تنظیمات آن را بهینه کنید و مطمئن شوید که برنامه‌تان در شرایط واقعی عملکرد خوبی خواهد داشت. یکی از ابزارهای ساده و قدرتمند برای این کار Oha است.

در این مقاله، با Oha آشنا می‌شویم، نحوه استفاده از آن را یاد می‌گیریم و بهترین روش‌ها برای بنچمارک‌گیری سرور را بررسی می‌کنیم.

Oha چیست؟

Oha ابزار مدرن و سریع برای Benchmark از سرورهای HTTP است که به زبان برنامه‌نویسی Rust نوشته شده است. این ابزار طراحی ساده‌ای دارد اما امکانات بسیار قدرتمندی ارائه می‌دهد. اگر قبلاً با ابزارهایی مثل Apache Bench (ab) یا wrk کار کرده باشید، Oha تجربه‌ای مدرن‌تر و کارآمدتر در اختیار شما قرار می‌دهد.

چرا Oha؟

  • سرعت بالا: Oha به لطف Rust بسیار سریع و بهینه است.
  • شبیه‌سازی درخواست‌های همزمان: می‌توانید هزاران درخواست همزمان را شبیه‌سازی کنید.
  • پشتیبانی از درخواست‌های سفارشی: انواع متدهای HTTP (مثل GET، POST) و هدرها یا بدنه‌های سفارشی را پشتیبانی می‌کند.
  • گزارش‌دهی دقیق: اطلاعات کاملی مثل تعداد درخواست‌ها در ثانیه (RPS یا Request Per Second)، زمان پاسخ‌دهی (Latency) و درصد موفقیت (Success Rate) ارائه می‌دهد.
  • سازگاری بالا: روی سیستم‌عامل‌های لینوکس، ویندوز و macOS قابل اجراست.
  • رابط کاربری ساده: استفاده از آن بسیار راحت است و نیاز به تنظیمات پیچیده ندارد.

آموزش نصب بنچمارک Oha

نصب Oha بسیار آسان است برای دانلود فایل باینری آماده به استفاده، می‌توانید نسخه آماده Oha را از صفحه Releases در GitHub دانلود کنید. فایل اجرایی مناسب سیستم خود را انتخاب کرده و مستقیماً از آن استفاده کنید.

چگونه با Oha بنچمارک بگیریم؟

برای شروع یک تست ساده، کافیست دستور زیر را اجرا کنید:

oha http://yourserver.com

این دستور به طور پیش‌فرض برای ۱۰ ثانیه درخواست‌هایی به آدرس مشخص‌شده ارسال می‌کند و گزارشی از عملکرد سرور ارائه می‌دهد.

سفارشی کردن بنچمارک Oha

Oha گزینه‌های متعددی برای شخصی‌سازی تست دارد. برخی از پارامترهای پرکاربرد عبارتند از:

  • `-c`: تعداد اتصالات همزمان (Concurrency).
  • `-z`: مدت زمان تست (Duration).
  • `-m`: متد HTTP (مثل GET یا POST).
  • `-H`: افزودن هدرهای سفارشی.
  • `--body`: مشخص کردن بدنه درخواست (برای متدهایی مثل POST).

برای مثال:

oha -c 100 -z 30s -m POST -H "Content-Type: application/json" \ --body '{"key": "value"}' http://yourserver.com/api
این دستور:
  1. ۱۰۰ اتصال همزمان ایجاد می‌کند (-c 100).
  2. تست را برای ۳۰ ثانیه اجرا می‌کند ((-z 30s.
  3. درخواست‌های POST ارسال می‌کند (-m POST).
  4. هدر `Content-Type: application/json` اضافه می‌کند.
  5. یک بدنه JSON به همراه درخواست ارسال می‌کند.

تحلیل خروجی بنچمارک Oha

بعد از اجرای تست، گزارشی مشابه زیر دریافت خواهید کرد:

توضیح بخش‌های گزارش بدین شرح است.

  1. Success Rate: درصد درخواست‌هایی که با موفقیت پردازش شده‌اند.
  2. Requests/Sec: تعداد درخواست‌هایی که سرور در هر ثانیه پاسخ داده است.
  3. Total Data: حجم کل داده‌ای که بین کلاینت و سرور جابه‌جا شده است
  4. Average: میانگین مدت زمان پاسخگویی به یک درخواست

استفاده پیشرفته از Oha

تست چندین آدرس

اگر بخواهید چندین URL را همزمان آزمایش کنید، کافیست لیستی از آدرس‌ها را در یک فایل متنی ذخیره کرده و دستور زیر را اجرا کنید:

oha --urls urls.txt

فایل urls.txt باید شامل هر URL در یک خط باشد.

تست HTTPS

Oha به طور کامل از HTTPS پشتیبانی می‌کند. فقط کافیست آدرس HTTPS خود را وارد کنید:

oha https://yourserver.com

تست طولانی مدت

برای شبیه‌سازی ترافیک پایدار در بازه‌های زمانی طولانی‌تر (مثلاً یک ساعت):

oha -c 500 -z 1h http://yourserver.com

این دستور سرور شما را با ۵۰۰ اتصال همزمان برای یک ساعت آزمایش خواهد کرد.

بهترین روش‌ها برای بنچمارک با Oha

1. آزمایش در محیط کنترل‌شده

   تست‌ها را در محیطی جداگانه انجام دهید تا نتایج تحت تأثیر عوامل خارجی قرار نگیرند.

2. شبیه‌سازی سناریوهای واقعی

   رفتار واقعی کاربران را شبیه‌سازی کنید؛ مثلاً ترکیبی از متدهای GET و POST استفاده کنید.

3. نظارت بر منابع سرور

هنگام بنچمارک گرفتن، منابع سرور مثل CPU، حافظه و پهنای باند شبکه را با ابزارهایی مثل `htop` یا `vmstat` بررسی کنید.

4. تحلیل تأخیر P90/P99

   زمان پاسخ‌دهی برای درصد بالایی از کاربران (مثل P90 یا P99) اهمیت زیادی دارد؛ چراکه این کاربران معمولاً بیشترین تأثیر منفی را حس خواهند کرد.

5. تکرار و بهبود

   پس از شناسایی مشکلات، تغییرات لازم را اعمال کرده و دوباره تست بگیرید تا پیشرفت‌ها را بسنجید.

مقایسه Oha با ابزارهای دیگر

Apache Bench (ab)

wrk

Oha

ویژگی

C

C

Rust

زبان برنامه‌نویسی

محدود

بسیار سریع

بسیار سریع

عملکرد

محدود

دقیق

دقیق

گزارش‌دهی تأخیر

متوسط

متوسط

بسیار آسان

سهولت استفاده

محدود

دارد

دارد

پشتیبانی از هدرها

Oha نسبت به ابزارهای قدیمی‌تر مثل Apache Bench تجربه‌ای مدرن‌تر ارائه می‌دهد و استفاده از آن بسیار راحت‌تر است.

Oha ابزاری سریع، قدرتمند و کاربرپسند برای بنچمارک گرفتن از سرورهای HTTP است. این ابزار با ارائه گزارش‌های دقیق و امکانات انعطاف‌پذیر، به شما کمک می‌کند عملکرد سرورتان را ارزیابی کرده و آن را برای شرایط واقعی آماده کنید. حال که مقاله ی آموزش کامل بنچمارک Oha ، تست سرور های Http را مطالعه کردید، می توانید از دیگر مقالات سایت ایوولرن دیدن کنید.

هنوز نظری ثبت نشده است

نظر خود را بنویسید

نظر شما پس از تایید نمایش داده خواهد شد

    آموزش کامل بنچمارک Oha ، تست سرور های Http