ویرگول
ورودثبت نام
محمد محمدعلیان
محمد محمدعلیانیه ممد 21 ساله که برنامه‌نویس بک-انده. لینکای من: https://redl.ink/Mohammadalian_1383
محمد محمدعلیان
محمد محمدعلیان
خواندن ۳ دقیقه·۶ سال پیش

مقدمه‌ای بر Apache Benchmark

درود

اگر میخواید بدونید که apiای که توسعه دادید چند تا ریکوئست در ثانیه می‌پذیره و میانگین زمان response دادن اِندپوینت‌هاتون چقدره این مطلب و این ابزار براتون مناسبه :)

نصب در ویندوز

کافیه که wampserver رو نصب بکنید و از محل نصب، پوشه bin > apache > apache [version number] > bin رو به متغیر محیطی PATH اضافه کنید

شروع بنچمارک

اگر اندپوینتتون http هست از ab و اگر https هست از abs استفاده کنید :) [ترمز منظور نیستا، منطور دستوره :)]

و اما اطلاعاتی که شاید بیشتر بدردمون بخوره

Document Length: حجم دیتای دریافتی از اولین ریکوئست
Time taken for tests: زمانی که برای انجام این تست‌ها صرف شده
Complete requests: تعداد ریکوئست هایی که با موفقیت جواب گرفتن
Failed requests: تعداد ریکوئست هایی که مشکل خوردن
Requests per second: تعداد ریکوئست هایی که این اندپوینت توی ثانیه می‌تونه داشته باشه(بر اساس تقسیم تعداد ریکوئست بر مدت‌زمانی که صرف شده به دست میاد)
Time per request: میانگین زمانی که برای هرریکوئست صرف شده
Transfer rate: سرعت انتقال داده‌ها

نمونه https
نمونه https

تعیین تعداد درخواست‌ها

آمار بالا فقط بر اساس ارسال یک request به دست اومده ولی ممکنه توی تعداد درخواستای بالا این اعداد خیلی فرق بکنن.
با استفاده از فِلَگ n- میتونید تعداد ریکوئست‌ها رو مشخص بکنید

همونطور که می‌بینید اعداد تغییر کردن که خب کاملا منطقیه!

نکته

وقتی شما یه endpoint که روی فضای اینترنت مستقر شده رو تست می‌کنید باید درنظر بگیرید که سرعت اینترنت، اگر از هاست اشتراکی استفاده می‌کنید میزان باری که روی سرور هست و چیزای دیگه هم تاثیر دارن روی این آمار و ارقام پس کار بهتر و منطقی اینه که شما تست‌ها رو روی localhost انجام بزنید تا از ظرفیت واقعی کدتون خبردار بشید.

تعیین تعداد کاربرهای همزمان

یکی دیگه از فاکتور ها تعداد کاربرهای همزمان هست که بعضی سرویس‌ها توی تعدادبالا ممکنه کم بیارن!
برای اینکار از فِلَگ c- استفاده می‌کنیم

می‌بینید تعداد ریکوئست هایی که توی ثانیه می‌تونه بپذیره بیشتر شد! البته مشخصا قرار نیست همیشه این اتفاق بیوفته و بیشتر بشه...

ارسال درخواست POST

برای اینکار از فلگ p- + آدرس فایلی که دیتاها توش هست استفاده می‌کنیم

اطلاعات فایل data.json
اطلاعات فایل data.json

ارسال درخواست PUT

با استفاده از فلگ u- و آدرس فایل می‌تونیم درخواست PUT رو ارسال کنیم

فایل data.json
فایل data.json


تعیین هدرهای درخواست

فرض کنید که وب‌سرویسی که میخواید بهش ریکوئست بزنید از JWT برای احرازهویت استفاده می‌کنه و لازمه توی هدر Authorization شما توکن رو بهش بدید پس نیازه که با فلگ H- تعیین بکنید هدر و مقدارش رو

تعیین چند هدر
تعیین چند هدر


راه ماهیگیری!

برای اینکه لیست فلگ هایی که می‌تونید استفاده کنید رو ببینید از ab -h استفاده کنید و با تست و آزمون و خطا هم ببینید کارش چیه :)

جایزه

یه پروژه باحال که از لحاظ پرفرمنس به نسبت کاری که می‌کنه توی محیط وب عالی عمل می‌کنه:)
یک کتاب آزاد برای یادگیری گنو/لینوکس به صورت پایه که درحال حاظر دو فصلش قرار گرفته.
بیشترازیک وبسایتی هست که من برای آموزش‌های توسعه فردی و مهارت های نرم دنبال می‌کنم و واقعا استاد بهرامپور بهترین معملی هستن که دیدم(با جرئت و قطعیت)، توی ایام فاصله‌گذاری اجتماعی توی پیج اینستاگرامشون لایوهای فوق العاده‌ای رو دارن برگزار می‌کنن که از دست دادنش واقعا حیفه


ممنون که خوندین ;-)
محمد محمدعلیان - 14 فروردین 1398

برنامه نویسیابزار
۱۸
۶
محمد محمدعلیان
محمد محمدعلیان
یه ممد 21 ساله که برنامه‌نویس بک-انده. لینکای من: https://redl.ink/Mohammadalian_1383
شاید از این پست‌ها خوشتان بیاید