تست لود سرور مجازی لینوکس با استفاده از ApacheBench

مقدمه:

تست لود ایده خوبی قبل از گسترش است.خوب است که به سرعت ،سناریوی بهترین حالت را برای پروژه خود قبل از اجرای تست های جزئی تر تعیین کنید.
ابزار (ApacheBench(abمی تواند تست لود سرورها را توسط ارسال یک تعداد دلخواه از درخواست های همزمان انجام دهد.اگر چه ab برای تست نصب و راه اندازی آپاچی طراحی شده بود ولی می تواند برای تست هر سرور HTTP استفاده شود.
در این مقاله ما خواهیم دید که یک مفسر روبی با سرورهای متفاوت تحت لود چگونه عمل می کند.در مراحل آموزش از اوبونتو ۱۰٫۱۳ استفاده شده و نتایج از سرور۵۱۲MB گرفته شده است.

نصب

بسته پایگاه داده را رفرش کنید.

بسته apache2-utils برای دسترسی به ApacheBench نصب کنید.

 

 

کاربر با امتیاز محدود

سپس کاربری ایجاد کنید که که روبی را مدیریت خواهد کرد.ایده خوبی نیست که در ادامه برای اجرای دستورات از یوز با دسترسی روت استفاده کنید.

 

این دستور چه انجام می دهد :

 

useradd –یک کاربر جدید ایجاد می کند.

-mدایرکتوری home را ایجاد می کند.

-d /home/test دایرکتوری خانگی کاربر را بر روی  /home/test تنظیم می کند.

-s /bin/bash –  پوسته bashکاربر را به صورت پیش فرض می سازد.(اوبونتو به صورت پیش فرض از dash استفاده می کند)

-g sudoکاربر را به گروه sudo اضافه می کند.(برای اجرای دستورات با sudo)

Test- نام کاربر جدید است.

 

پسورد را برای کاربر جدید تنظیم کنید.

 

به کاربر جدید سوئیچ کنید.

 

RVM

مدیر نسخه روبی، کار کردن با انواع محیط های روبی را آسان کرده است.آن مراقب عملیات نصب نسخه های خاص روبی است و توسط اجرای اسکریپت bash از وب سایت آنها نصب می شود.

 

برای استفاده از دستور rvm شما ابتدا نیاز به اجرای اسکریپت rvm دارید.

اگر می خواهید،می توانید آن را داخل .bashrc بگذارید بنابراین rvm هر زمان که شما به عنوان کاربر لاگین می شوید در دسترس خواهد بود.

 

شما می توانید توسط دستور زیر تایید کنید که اسکریپت rvm مورد استفاده قرار گرفته است. آن باید function باشد و hashed نباشد.

سپس نصب rvm2.0.0 پسورد کاربر را خواهد خواست به خاطر اینکه آن قبل از نصب روبی نیاز به نصب مجموعه وابسته دارد .از آنجائیکه rvm روبی را از مبدا می سازد، این مرحله قدری طول می کشد.

 

به روبی جدید سوئیچ کنید.این ممکن است به صورت پیش فرض بعد از نصب اتفاق بیفتد اما چک کردن ضرری ندارد.

 

تست کردن

حالا که روبی نصب شده است شما می توانید یک سایت ساده ایجاد کنید و ببینید چه مقدار درخواست را می تواند پاسخ بدهد.
Sinatra را نصب کنید .آن یک چارچوب میکرو/DSL برای ایجاد برنامه های کاربردی وب روبی است .پرچم –no-*باعث می شود که از مستندات عبور کند.

 

یک نمونه از برنامه کاربردی sinatraرا که صرفا “hello world” را در خروجی چاپ می کند ایجاد کنید.

 

سرور را اجرا کنید.

 

هنگامی که سرور سرانجام بالا آمد شما می توانید تست سرور مجازی را انجام دهید.با استفاده از فرمان ab به صورت زیر:

 

یک ترمینال دیگر باز کنید و دوباره به سرور ssh کنید.یک تست را با ApacheBenchاجرا کنید. من از هزار درخواست با همزمانی ۱۰۰ درخواست استفاده کردم. علامت “/” نهایی را برای مسیر فراموش نکنید.

نتایج من همگرا به حدود ۳۰۰ درخواست در ثانیه بود. WEBrick برای سرعتش مشهور است. با ctrl+c فرستادن درخواست ها را در سرور قطع کنید.

 

نصب Thin

Thin یک وب سرور مشهور روبی است که از Mongrelبرای تجزیه واز EventMachine برای IO غیر قابل مسدود استفاده می کند.Thin را نصب کنید و سرور را دوباره اجرا کنید Sinatra.باید به صورت اتوماتیک Thin را لود کند و به شما اطلاع دهد(“..با بک آپ گیری از Thin”)

اکنون دوباره عملیات تست را اجرا کنید.حالاباید یک مقدار سریعتر شده باشد.

 

سرانجام در این حالت به نظر می رسد که Thin به مقدار قابل توجهی سرورسریع تری ازWEBrick می باشد که بیش از ۷۰۰ دستور در ثانیه است.(شما می توانید سعی کنید که تعداد درخواست ها را بالا ببرید اما برای من زیاد بالا نرفت)
نکته: من قادر بودم که ۱۰۰۰ درخواست در ثانیه را از سرور Arch Linux بگیرم.

نتیجه گیری

به طور آشکار این نتایج کارایی واقع بینانه سرور را منعکس نمی کنند. HTTP فقط قطعه ای از یک پازل است.یک س قالب گیرنده آهسته و /یا پایگاه داده ، باعث خواهند شد که این اعداد به مقدار قابل توجهی پایین بیایند.با وجود این ارقام براورد سریع را برای مقایسه در اختیار شما قرار می دهد.
ابزارهای عملکرد دیگر که ممکن است مورد علاقه شما باشد:

 

منبع

ترجمه توسط : آرزو رنجبرپور

لینک کوتاه مقاله :