آشنایی با مفهوم Load Testing و ابزارهای پرکاربرد تست بار

Avatar
نویسنده: علیرضا برزودی
شنبه 14 آبان 1401
مطالعه: ۱۷ دقیقه ۰ نظر ۸۶۱ بازدید

با پیشرفت تکنولوژی، وب‌سایت‌ها و وب‌سرویس‌ها ویژگی‌های بیشتری در خود جای می‌دهند؛ اما هرچه فیچرهای قرار‌گرفته روی وب‌سایت بیشتر می‌شوند، به همان اندازه نیز نگرانی درباره عملکرد آن بیشتر خواهد شد. تحقیقات نشان داده است که کاربران به استفاده از وب‌سایت‌های سریع تمایل بیشتری دارند. همچنین، یکی از عوامل مهم در SEO وب‌سایت‌ها موضوع سرعت آن‌هاست؛ به‌همین‌دلیل، افزایش سرعت وب‌سایت راهکاری مفید برای جذب کاربران بیشتر و افزایش ترافیک و در‌نتیجه افزایش فروش است.

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

چند اصطلاح و اطلاعات کلی

قبل از شروع، اجازه دهید تا چند اصطلاح کلی و پرکاربرد در این زمینه و مقدماتی را درباره سرعت وب‌سایت به شما یادآوری کنیم. شما احتمالاً در این مقاله و در مقاله‌های دیگر، بارها با اصطلاح «بهینه‌سازی وب‌سایت» روبه‌رو خواهید شد. به‌عبارت‌دیگر، بهینه‌سازی وب‌سایت به شما امکان خواهد داد تا صفحات وب‌سایت خود را سریع‌تر در‌معرض نگاه کاربران قرار دهید. مانند بسیاری از فیلدهای تخصصی دیگر، در این حوزه نیز پیشرفت‌های زیادی حاصل شده است. تکنیک‌های زیادی نظیر کاهش حجم صفحات وب و بهینه‌سازی کدهای JavaScript و محدود‌کردن Request‌های پروتکل HTTP ازجمله روش‌هایی است که می‌تواند به بهبود سرعت وب‌سایت شما کمک کند.

در این مقاله، در پی یافتن پاسخی برای این پرسش هستیم که اصولاً سرور با چه سرعتی می‌تواند به Request‌های ارسالی کاربران جواب دهد؟ این همان چیزی است که در Load Test به‌دنبالش هستیم و سعی می‌کنیم تا پاسخی کاربردی نیز درباره آن به‌دست آوریم. برای شروع، چند اصطلاح مهم را با‌هم مرور می‌کنیم.

خرید سرور مجازی

۱. تأخیر (Latency)

تأخیر معیاری برای اندازه‌گیری سرعت پاسخ سرور به Request‌های ارسالی کاربران است. این معیار معمولاً براساس میلی‌ثانیه (ms) اندازه‌گیری می‌شود. همچنین، گاهی اوقات از Latency به‌عنوان زمان پاسخ‌گویی (Response Time) تعبیر می‌شود. واضح است که Response Time کمتر به‌معنای پاسخ‌گویی سریع‌تر است.

۲. توان عملیاتی (Throughput)

توان عملیاتی تعداد Requestهایی است که سرور می‌تواند در بازه زمانی خاصی به آن‌ها رسیدگی کند. این معیار معمولاً براساس تعداد درخواست در هر ثانیه سنجیده می‌شود.

۳. صدک‌ها (Percentiles)

از این معیار برای گروه‌بندی نتایج براساس درصدشان نسبت به کل مجموعه نمونه استفاده می‌شود. اگر زمان پاسخ‌گویی صدک ۵۰ شما برابر با ۱۰۰ میلی‌ثانیه باشد، بدین‌معنی است که ۵۰درصد از Requestها در ۱۰۰ میلی‌ثانیه روی کمتر برگردانده شده‌اند.

در نمودار بالا، تأخیر وب‌سایت در دوره زمانی خاصی نشان داده شده است. حتی با اینکه میانگین زمان پاسخ‌گویی نسبتاً ثابت است، جهش نسبتاً بزرگی در صدک ۹۹ وجود دارد. این یعنی اگر‌چه میانگین سرعت نسبتاً ثابت باقی مانده است، حدود ۱درصد از درخواست‌های کاربران حتی بدتر از این اندازه‌گیری صدک ۹۹ عمل کرده‌اند. این موضوع به شما کمک می‌کند که احساس دقیق‌تری درباره تجربه کاربر از کار با وب‌سایتتان به‌دست آورید.

 

تست بار نرم افزار

تست بار نرم‌افزار چیست و چگونه انجام می‌شود؟

مبانی تست بارگیری (Load Test)

تست بارگیری (Load Test) درواقع ارسال ترافیک HTTP شبیه‌سازی‌شده به سرور است. با استفاده از این روش می‌توانید عملکرد وب‌سایت خود را اندازه‌گیری کنید و به سؤالات مهمی نظیر سؤالات زیر جواب دهید:

  • آیا منابع کافی (CPU، حافظه و…) برای مدیریت بار در سرور پیش‌بینی شده است؟
  • آیا سرعت پاسخ‌دهی سرور به‌اندازه کافی مناسب است تا تجربه کار با آن برای کاربران خوشایند باشد؟
  • آیا اپلیکیشن ما به‌صورت کارآمد اجرا می‌شود؟
  • آیا باید سخت‌افزار سرور خود را ارتقا دهیم یا بهتر است از چندین سرور بزرگ استفاده کنیم؟
  • آیا صفحات روی Callهایی از APIها وجود دارند که به‌صورت خاص به منابع فشرده نیاز داشته باشند؟

برای Load Test از نرم‌افزار ویژه همین کار استفاده می‌شود. این نرم‌افزار روی یک یا چند سیستم قرار می‌گیرد و حجم زیادی از Request‌ها را به‌سمت وب‌سرور ارسال می‌کند. اگر‌چه نوع ابزار انتخابی برای انجام این کار چندان هم اهمیت ندارد، در همین مقاله درباره برخی از این ابزارها مهم و معروف صحبت خواهیم کرد.

یکی از کاربردهای رایج نرم‌افزارهای Load Test، مشخص‌کردن حداکثر تعداد درخواست‌هایی است که سرور در یک ثانیه می‌تواند با موفقیت پذیرش کند. برای این منظور، در اولین مرتبه تعداد مشخصی Request به‌سمت سرور ارسال می‌شود. درصورتی‌که سرور این تعداد درخواست را با موفقیت انجام داد، در مرحله بعدی این تعداد بیشتر می‌شود، تا جایی که دیگر سرور نتواند به درخواست‌ها پاسخ درست دهد. در این صورت، آخرین تعداد موفق Request‌ها برای سرور ثبت خواهد شد.

این موضوع برای تعیین حداکثر ظرفیت سرور راهکاری مناسب است. با‌این‌حال، این کار اطلاعات زیادی درباره تأخیر و عملکرد واقعی روزانه که کاربران شما با آن روبه‌رو خواهند شد، ارائه نخواهد داد. توجه کنید که سرور به‌شدت بارگذاری‌شده ممکن است هزاران پاسخ را هم در ثانیه بپذیرد؛ اما اگر هر پاسخ ۱۰ دقیقه طول بکشد، احتمالاً کاربرانتان ناراضی خواهند شد!

توجه کنید که این تنها یک مثال است و هر Setup پروفایل منحصر‌به‌فردی برای Response خواهد داشت؛ اما روند کلی این است که بار یا تعداد Request‌های بیشتر در هر ثانیه به تأخیر بیشتر منجر خواهد شد. برای اینکه بتوانیم به ایده‌ و نتیجه واقعی‌تری از تأخیر سرور دست پیدا کنیم، باید چندین‌بار این مرحله را با نرخ Request‌های متفاوت آزمایش کنیم. تمامی نرم‌افزارهای Load Test از این ویژگی بهره‌مند نیستند؛ اما ابزار wrk2 این ویژگی را دارد که بعداً درباره آن نیز صحبت خواهیم کرد. حالا که به درک مناسبی درباره Load Test دست پیدا کردیم، بهتر است روی طرحی خاص برای بررسی عملکرد وب‌سرور خود متمرکز شویم.

راهنمای نصب و استفاده از Apache JMeter برای تستِ Load یک وب‌اپلیکیشن را در مقاله زیر بخوانید.

آموزش نصب Apache JMeter

محدوده معقول تأخیر (Latency) چقدر است؟

زمان بارگذاری وب‌سایت در محدوده حدود ۲ تا ۵ ثانیه معقول است؛ اما بخشی از این زمان که به تأخیر وب‌سرور نسبت داده می‌شود، معمولاً بین ۵۰ تا ۲۰۰ میلی‌ثانیه است. اینکه استاندارد این عدد برای وب‌سایت شما چقدر باید باشد، به عوامل زیادی ازجمله مخاطبان، بازار، اهداف وب‌سایت، سرویس API و عوامل تکنیکال دیگر بستگی دارد. بااین‌حال، به‌طور‌کلی باید بدانید که افزایش سرعت حتی به‌اندازه کم هم مهم است. این یعنی حتی پیشرفت‌های نامحسوس در سرعت وب‌سایت نیز می‌تواند نتایج زیادی را برای وب‌سایتتان به‌همراه داشته باشد.

 انواع تست سرعت

مبانی تست بار چیست؟

طرح Test Load وب‌سایت

برای اینکه بتوانید به این نتیجه برسید که سرور و وب‌اپلیکیشن شما چگونه کار می‌کند و به شرایط مختلف بارگذاری چگونه پاسخ می‌دهد، چند مرحله کلی وجود دارد:

  1. باید مطمئن شوید که منابع سیستم مناسب را در طول فرایند تست کنترل می‌کنید؛
  2. باید حداکثر تعداد Request‌هایی را پیدا کنید که سرور در هر ثانیه می‌تواند به آن‌ها پاسخ دهد؛
  3. حداکثر توان عملیاتی را باید پیدا کنید که تأخیر سرور به عملکرد نامناسب برای کاربران وب‌سایت منجر می‌شود.

۱. نظارت بر منابع

با اینکه نرم‌افزار تست Load اطلاعاتی درباره Request‌ها و تأخیرها به ما ارائه می‌دهد، نظارت بر سایر معیارهای سیستم برای اینکه بدانیم آیا سرور در مواجهه با حجم ترافیک زیاد دچار محدودیت منابع می‌شود یا خیر، مفید است. در این زمینه ما بیشتر نگران CPU و حافظه آزاد هستیم. رصد این منابع هنگام بارگذاری سنگین به ما کمک می‌کند تا تصمیمات آگاهانه‌تری درباره نحوه مقیاس‌بندی زیرساخت و محل تمرکز تلاش‌ها هنگام توسعه برنامه خود بگیریم.

اگر قبلاً سیستم‌های نظارتی مانند Prometheus یا Graphite و CollectD را راه‌اندازی کرده‌اید، همه‌چیز آماده است؛ وگرنه باید ازطریق SSH وارد وب‌سرور خود شوید و از ابزارهای خط فرمان که درادامه به آن‌ها اشاره می‌کنیم، برای نظارت بر زمان واقعی استفاده کنید. برای بررسی حافظه موجود، می‌توانید از دستور free بهره ببرید. همچنین، این دستور را با دستور watch می‌توانید به‌صورت زیر ترکیب کنید تا به‌صورت دوره‌ای (به‌صورت پیش‌فرض هر دو ثانیه) خروجی خود را به‌روز کنید:

watch free -h

نمونه‌ای از نتیجه این دستور درادامه نشان داده شده است:

Output
             total       used       free     shared    buffers     cached
Mem:          489M       261M       228M       352K       7.5M       213M
-/+ buffers/cache:        39M       450M
Swap:           0B         0B         0B

عدد 450M که در خروجی‌های بالا هایلایت شده است، نشان‌دهنده حافظه آزاد پس از تفریق استفاده از بافر و کَش است. استفاده مجدد از دستور free خروجی متفاوتی را درمقایسه‌با خروجی‌های قبلی به شما نشان خواهد داد:

Output
              total        used        free      shared  buff/cache   available
Mem:           488M        182M         34M         14M        271M        260M
Swap:            0B          0B          0B

نحوه محاسبه ستون جدید Available کمی متفاوت است؛ اما عموماً نشان‌دهنده همان معیارهای قبلی، یعنی میزان حافظه دردسترس برای استفاده برنامه‌ها دردسترس است. برای نظارت بر استفاده از CPU ازطریق خط فرمان، استفاده از ابزار mpstat مناسب است. این ابزار به‌طورپیش‌فرض روی توزیع اوبونتو نصب نیست. با‌این‌حال، با استفاده از دستور زیر می‌توانید آن را نصب کنید:

sudo apt-get install sysstat

هنگامی‌که mpstat را نصب می‌کنید، باید تعداد ثانیه‌های بین هر آپدیت را هم معرفی کنید:

mpstat 2

با استفاده از این دستور در هر دو ثانیه، یک ردیف هِدِر و یک ردیف Stats تولید می‌شود:

Output
Linux 4.4.0-66-generic (example-server) 	08/21/2017 	_x86_64_	(4 CPU)

08:06:26 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
08:06:28 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
08:06:30 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

در خروجی‌های بالا، %idle درصد منابع استفاده‌نشده CPU را نشان می‌دهد. برای اینکه بدانیم چه میزان از منابع CPU به‌کار گرفته شده است، به میزان استفاده‌نشده آن توجه می‌کنیم؛ زیرا استفاده از CPU اغلب به دسته‌های مختلفی مانند CPU کاربر و CPU سیستم تقسیم‌بندی می‌شود. بنابراین، به‌جای اینکه بخواهیم تمام این دسته‌ها را با‌هم جمع کنیم، به‌راحتی می‌توانیم میزان آزاد منابع CPU را رصد کنیم. حالا که می‌توانیم منابع سرورمان را مشاهده کنیم، بیایید آزمایش بارگذاری اولیه را برای یافتن حداکثر نرخ پاسخ سرور خود اجرا کنیم.

۲. یافتن حداکثر نرخ پاسخ

همان‌طورکه پیش‌تر گفتیم، اکثر نرم‌افزارهای تست بار برای یافتن حداکثر نرخ پاسخ سرور مناسب هستند. برای استفاده از این نرم‌افزارها، تنها باید گزینه‌های Concurrency و مدت‌زمان آزمون را تنظیم کنید. Concurrency معیاری برای اندازه‌گیری تعداد اتصالات موازی به سرور است. برای این گزینه، عدد ۱۰۰ پیش‌فرضی مطمئن است. با‌این‌حال، از گزینه‌های MaxThreads و MaxClients و گزینه‌های مشابه، می‌توانید به نتایج دقیق‌تری برسید و انتخابی آگاهانه‌تر داشته باشید. علاوه‌بر‌این‌، باید یک URL را نیز برای استفاده از آن در تست انتخاب کنید. اگر نرم‌افزاری که از آن استفاده می‌کنید، می‌تواند تنها یک URL را در یک زمان مدیریت کند، بهتر است چندین آزمایش را روی URL‌های متفاوتی از وب‌سایت خود انجام دهید؛ زیرا الزامات پردازش مثلاً ممکن است بین صفحه اصلی وب‌سایت شما و صفحه محصولی که برای بارگیری به چندین بار کوئری‌گرفتن نیاز داشته باشد، بسیار متفاوت باشد.

برخی دیگر از نرم‌افزارها به شما امکان می‌دهند چندین URL را هم‌زمان آزمایش کنید. این ویژگی به شما برای انجام شبیه‌سازی دقیق‌تر ترافیک دنیای واقعی کمک خواهد کرد. اگر قبلاً با استفاده از این نرم‌افزارها به داده‌هایی نیز دست پیدا کرده‌اید، حالا می‌توانید با تست‌های جدید، داده‌های اخیر را با مقادیر قبلی آن‌ها مقایسه کنید. هنگامی‌که URL‌های مدنظرتان را در نرم‌افزار وارد کردید، باید تست بارگذاری را اجرا کنید. دقت کنید که نرم‌افزارتان Request‌ها را با بیشترین سرعت ممکن به‌سمت سرور ارسال می‌کند. برخی از نرم‌افزارها این سرعت را از خود کاربر دریافت می‌کنند. در این مواقع، مطمئن شوید که نرخ ارسال Request به‌اندازه کافی بزرگ باشد. همچنین، اگر می‌توانید نرخ تأخیر را تنظیم کنید، میزان آن را روی صفر قرار دهید.

وقتی عملیات به‌اتمام رسید، نرم‌افزار برخی از آمارها را به شما نشان خواهد داد. به‌عنوان نمونه، تعداد Request‌ها در هر ثانیه یکی از این آمارهاست؛ اما از میان معیارهای موجود در گزارش‌، به Response Time هم توجه کنید. به‌احتمال زیاد این معیار به‌دلیل افزایش بسیار زیاد Request‌ها روی سرور، در گزارش ارسال‌شده بسیار ضعیف است؛ به‌همین‌دلیل، تعداد درخواست‌ها در هر ثانیه معیار مناسبی برای سنجش حداکثر توان عملیاتی سرور در سیستم واقعی نیست؛ اما می‌تواند نقطه مناسبی برای شروع بررسی‌های بیشتر باشد. در مرحله بعدی، باید مجدداً تست بار را انجام دهیم تا اطلاعات بیشتری درباره نحوه عملکرد سرور در زمان‌هایی که به‌صورت حداکثر تحت بارگذاری قرار نگرفته، به‌دست آوریم.

برای اینکه بدانید لایسنس‌ متن‌باز چیست؟ چه کمکی به دنیای تکنولوژی کرده است؟ مقاله زیر را بخوانید.

لایسنس‌ متن‌باز چیست؟

۳. یافتن حداکثر توان عملیاتی

برای اجرای این مرحله، باید از نرم‌افزارهای تست بار استفاده کرد. این نرم‌افزارها می‌توانند میزان بار را کمی کاهش دهند تا عملکرد سرور در سطوح مختلف آزمایش شود. برخی از نرم‌افزارها این کار را با استفاده از تعیین تأخیر در بین هر درخواست کاربر انجام می‌دهند؛ اما به این نکته توجه کنید که استفاده از این روش هدف قرار‌دادن دقیق توان عملیاتی را دشوار خواهد کرد.

خوشبختانه نرم‌افزار wrk2 به شما اجازه می‌دهد تا Request‌ها را در هر ثانیه به‌‌دقت مشخص کنید. نرم‌افزار یادشده این کار را ابتدا با اجرای برخی از Request‌ها برای کالیبراسیون انجام می‌دهد تا زمان‌بندی آن به‌درستی انجام شود. برای انجام این کار، ابتدا حداکثر نرخ Request‌ها را از گزارش‌های مرحله قبلی بگیرید و آن را به نصف کاهش دهید. درادامه، تست دیگری را با استفاده از این نرخ انجام دهید و زمان پاسخ‌گویی را یادداشت کنید. آیا نتایج این مرحله پذیرفتنی است؟

اگر پاسخ مثبت است، نرخ را به‌سمت حداکثر افزایش دهید. در‌این‌بین، از گام‌های منطقی برای افزایش نرخ استفاده کنید. این آزمایش را به‌دفعات و تا زمانی انجام دهید که تأخیر شما به مرز مطلوب و نامطلوب برسد. این همان میزان نرخ Response واقعی سرور شماست؛ البته کاربران نیز با این نرخ عملکرد ضعیفی را از وب‌سایت شما تجربه نخواهند کرد. درادامه مطلب، به برخی از پکیج‌های نرم‌افزاری Open Source مهم اشاره خواهیم کرد که در اجرای طرح Load Testing وب‌سایت می‌توانند به ما کمک کنند.

 تست عملکرد وب سایت

آشنایی با مفهوم تست بار

نرم‌افزارهای تست بار

نرم‌افزارهای بسیاری برای این تست طراحی شده‌اند که اکثر آن‌ها نیز منبع‌باز (Open Source) هستند. علاوه‌بر این نرم‌افزارها، بسیاری از سرویس‌های تجاری وجود دارند که زیرساخت‌های لازم برای ایجاد Load Test را برایتان فراهم و به‌طورخودکار نمودارها و گزارش‌هایی نیز از داده‌های به‌دست‌آمده از گزارش ارائه خواهند کرد. چند نمونه از این ابزارهای منبع‌باز محبوب عبارت‌اند از:

ab .۱

ab یا ApacheBench ابزار خط فرمان ساده و تک‌رشته‌ای برای تست سرور HTTP است. اگر‌چه این ابزار در ابتدا به‌عنوان بخشی از سرور HTTP آپاچی توزیع شد، شما می‌توانید از آن برای آزمایش هر سرور HTTP یا HTTPS استفاده کنید.

به‌دلیل تک‌رشته‌ای‌بودن، ab نمی‌تواند از چندین پردازنده برای ارسال حجم زیادی از درخواست‌ها استفاده کند؛ بنابراین، اگر می‌خواهید وب‌سروری قدرتمند را آزمایش کنید، احتمالاً در استفاده از این ابزار محدودیت‌هایی خواهید داشت.

فراخوانی ابزار ab با استفاده از دستور زیر امکان‌پذیر است:

ab -n 1000 -c 100 http://example.com/

شیوه کار نیز ازاین‌قرار است که در قسمت -n تعداد Request‌ها و در قسمت -c معیار Concurrency را مشخص و سپس یک URL برای واکشی معرفی خواهید کرد. در این‌ صورت، اطلاعاتی مانند تعداد Requestها در ثانیه و زمان درخواست و فهرستی از صدک‌های مختلف Response Time در قالب گزارش به شما ارائه خواهد شد. نمونه این گزارش به‌صورت زیر است:

Output
. . .
Requests per second:    734.76 [#/sec] (mean)
Time per request:       136.098 [ms] (mean)
Time per request:       1.361 [ms] (mean, across all concurrent requests)
Transfer rate:          60645.11 [Kbytes/sec] received

Percentage of the requests served within a certain time (ms)
  50%    133
  66%    135
  75%    137
  80%    139
  90%    145
  95%    149
  98%    150
  99%    151
 100%    189 (longest request)

JMeter .۲

JMeter یکی از ابزارهای قدرتمند برای تست بار و تست عملکردی محسوب می‌شود و مبتنی‌بر Apache Software Foundation طراحی شده است. تست عملکردی بدین‌معنی است که JMeter نیز می‌تواند آزمایش کند که آیا وب‌سایت یا وب‌اپلیکیشن شما خروجی درستی تولید می‌کند یا خیر.

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

Siege .۳

Siege یکی دیگر از ابزارهای تست مبتنی‌بر خط فرمان است. این ابزار بسیار شبیه به ab است؛ اما تفاوت‌هایی نیز با آن دارد: اولاً Siege ابزاری چند‌رشته‌ای است که همین موضوع توان عملیاتی نسبتاً زیادی را امکان‌پذیر می‌کند؛ ثانیاً این ابزار به شما امکان می‌دهد تا فهرستی از چندین URL را برای آزمایش بارگذاری به نرم‌افزار ارائه دهید. فراخوانی این ابزار با استفاده از کدهای زیر امکان‌پذیر است:

siege -c 100 -t 30s http://example.com/

با استفاده از این خط کد، شما ۱۰۰ درخواست هم‌زمان (-c 100) و یک آزمایش ۳۰ثانیه‌ای (-t 30s) را برای این ابزار هدف‌گذاری کرده‌اید. در‌نهایت، Siege نیز میانگین زمان پاسخ و نرخ درخواست را به شما خروجی خواهد داد. نمونه این خروجی به‌صورت زیر است:

utput
. . .
Transactions:		        5810 hits
Availability:		      100.00 %
Elapsed time:		       29.47 secs
Data transferred:	      135.13 MB
Response time:		       0.01 secs
Transaction rate:	     197.15 trans/sec
Throughput:		        4.59 MB/sec
Concurrency:		        2.23
. . .

با‌این‌حال، Siege هیچ تفکیک صدکی را برای آمار مربوط به تأخیر ارائه نمی‌دهد.

Locust .۴

Locust ابزار Load Test مبتنی‌بر پایتون و با رابط کاربری Real-Time است که از آن می‌توان برای زیرنظرگرفتن نتایج استفاده کرد:

با‌‌توجه‌‌به اینکه سناریوهای تست Locust در کدهای پایتون نوشته می‌شوند، قاعدتاً استفاده از این ابزار برای افرادی که قبلاً با این زبان برنامه‌نویسی کار کرده‌اند، بسیار راحت‌تر خواهد بود. Locust می‌تواند در حالت توزیع‌شده نیز اجرا شود؛ یعنی در حالتی که می‌توانید تعدادی از سرورهای Locust را انتخاب و سپس تنظیمات را به‌گونه‌ای اِعمال کنید که بارگذاری با آن‌ها به‌‌طورهماهنگ انجام شود. همچنین، Locust می‌تواند آمار دقیق و اطلاعات صدکی را در قالب فایل CSV به شما ارائه دهد.

19 راهکار مهم برای افزایش سرعت سایت وردپرسی را در مقاله زیر بخوانید.

افزایش سرعت سایت وردپرسی

wrk2 .۵

wrk2 یکی دیگر از ابزارهای تست بار خط فرمانی چند‌رشته‌ای است که می‌تواند بار را با نرخ درخواست مشخص تولید کند. این ابزار تا حد زیادی آمار تأخیر را دقیق ارائه می‌دهد و با استفاده از زبان برنامه‌نویسی Lua می‌توان آن را اسکریپت کرد. wrk2 در‌واقع فورکی از wrk اصلی است و با استفاده از دستور wrk و به‌صورت زیر فراخوانی‌شدنی است:

wrk -t4 -c100 -d30s -R100 --latency http://example.com/

در کدهای بالا، -t4 نشان‌دهنده تعداد هسته‌های پردازنده، -c100 نشان‌دهنده ۱۰۰ درخواست هم‌زمان، -d30s نشان‌دهنده دوره آزمایشی ۳۰ثانیه‌ای و -R100 نیز نشان‌دهنده نرخ درخواست است. پس از انجام این کار، خروجی تأخیر دقیق نیز با استفاده از پارت –latency به‌دست ما خواهد رسید.

Output
. . .
Latency Distribution (HdrHistogram - Recorded Latency)
50.000%    5.79ms
75.000%    7.58ms
90.000%   10.19ms
99.000%   29.30ms
99.900%   30.69ms
99.990%   31.36ms
99.999%   31.36ms
100.000%   31.36ms
. . .

در خروجی‌های بالا، تنها قسمتی از نتایج و آمارها نشان داده شده است. اطلاعات مربوط به صدک‌ها نیز از‌جمله معیارهای دیگری هستند که در نتایج ارائه می‌شوند؛‌ ولی در اطلاعات بالا قرار نگرفته‌اند.

 Gtmetrix ایرانی

معرفی نرم‌افزارهای Load Testing

جمع‌بندی

سرعت وب‌سایت یکی از عوامل اساسی هم در سئو وب‌سایت و هم در تجربه بهتر کاربران از کار با وب‌سایت است. ابزارها و نرم‌افزارهای مختلفی برای تست سرعت وب‌سایت وجود دارند که استفاده از آن‌ها برای تشخیص این مسئله کاربردی است که از‌نظر معیارهای مختلف وب‌سایت مدنظر سرعت مناسبی دارد یا خیر. در این مقاله از بلاگ پارس پک، در ابتدا درباره برخی از اصطلاحات تکنیکال Load Test وب‌سایت صحبت و پس‌از‌آن طرحی را برای یافتن حداکثر Request‌های عملی در هر ثانیه برنامه‌ریزی کردیم. همچنین، ابزارها و نرم‌افزارهای معتبر برای انجام تست بار روی وب‌سایت را معرفی و نکاتی را نیز درباره آن‌ها عنوان کردیم.

سؤالات متداول

۱. Load Testing چیست؟

فرایندی است که در آن وب‌سایت به‌صورت آزمایشی تحت بار یا Request‌های متعدد قرار می‌گیرد تا عملکرد وب‌سرور در پاسخ‌گویی به این درخواست‌ها بررسی شود.

۲. آیا سرعت وب‌سایت روی نتایج SEO تأثیرگذار است؟

بله، یکی از معیارهای مهم در SEO وب‌سایت سرعت آن است.

۳. توان عملیاتی چیست؟

توان عملیاتی (Throughput) به حداکثر توانایی سرور برای پاسخ‌گویی به Requestهای رسیده گفته می‌شود.

۴. برای تست بار روی وب‌سایت چه باید کرد؟

برای این منظور، ابزارها و نرم‌افزارهایی وجود دارد که در این مقاله از بلاگ پارس پک درباره مهم‌ترین آن‌ها توضیح داده شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.

مقالات مرتبط این مطلب را از دست ندهید

با خدمات ابری پارس پک آشنا شوید

اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم