تفاوت لایت اسپید و آپاچی
بیایید در مورد تفاوت بین سرورهای مبتنی بر رویداد و مبتنی بر پردازش که تفاوت عمده بین LiteSpeed و Apache را نشان می دهد بحث کنیم.
وب سرور LiteSpeed رویداد محور است و Apache مبتنی بر پردازش (فرآیند) است.
در این مقاله قصد داریم منظور از این اصطلاحات و اینکه کدام یک تحت چه شرایطی بهتر است، بپردازیم.
لحظه ای را تصور کنید که وب سرور شما یک کافی شاپ است و مشتریانی که در مغازه هستند، درخواست هایی هستند که وب سرور باید انجام دهد. کدام نوع کافی شاپ به مشتریان خود بهتر سرویس می دهد؟
در این رابطه؛ وب سرور چیست؟
کافی شاپ بر اساس فرآیند (Apache)
در کافی شاپ مبتنی بر فرآیند، هر کارمند در خدمت یک مشتری است. کارمند سفارش را می گیرد، آماده می کند و پرداخت مشتری را پیگیری می کند.
اگر در مغازه سه مشتری وجود داشته باشد، باید سه کارمند برای خدمت به آن مشتریان داشته باشد. این یک سناریو قابل کنترل در یک فروشگاه است که چند مشتری دارد و یا یک منوی ساده مانند قهوه و دونات دارد.
اما چه اتفاقی می افتد زمانی که ده مشتری در مغازه وجود دارد؟ و هر یک از آنها یک نوشیدنی یا سفارش متفاوت را دارند ؟ یکی بستنی می خواهد یکی قهوه یکی کیک و یکی آب میوه و یکی …
سه مشتری اول احتمالا بسیار سریع سفارش خودشون را دریافت خواهند کرد.
اما هفت نفر دیگر؟ آنها صبر زیادی خواهند داشت. بسیاری از مشتریان این نوع صبر و شکیبایی را نخواهند داشت و به جای دیگری میروند.
برای حل مشکل کارایی در کافی شاپ مبتنی بر فرآیند، شما نیاز به کارکنان بیشتری دارید. و برای اینکه همه کارکنان اضافی را در پشت پیشخوان قرار دهید، باید فروشگاه خود را گسترش دهید، حتی ممکن است لازم باشد به یک مکان بزرگتر بروید.
چنین موردی با وب سرور Apache مبتنی بر پردازش است. به منظور مقابله با تعداد زیادی از درخواست ها، شما نیاز به فرایندهای بیشتری دارید، بدین معنا که شما باید سخت افزار اضافی تری را خریداری کنید.
کافی شاپ مبتنی بر رویداد (Litespeed)
در کافی شاپ مبتنی بر رویداد، هر کارمند در خدمت مشتریان متعدد است. یک کارمند مسئول دریافت سفارشات و گرفتن پول می باشد و سفارشات را به سایر کارمندان منتقل می کند.
در اینصورت کارمند در مثال قبل در بخش ثبت به تمام ده مشتری به موقع میرسد، زیرا همه را او باید انجام دهد، سفارشات را می گیرد به مسئول مربوطه اعلام می کند و در نهایت پول را از مشتری می گیرد. در همین حال، سایر کارکنان کلیه سفارشات را آماده می کنند.
در این شرایط مشتری که صورتحساب خود را پرداخت کند منتظر می ایستد، ضمن اینکه کارمندان لازم نیست بین کارهای متفاوت سوئیچ کنند و سرعت سرویس دهی بالا می رود زیرا هر کارمند یه کار روتین و تکراری را انجام خواهد داد. در این صورت در زمان سرویس دهی صرف جویی می شود.
این یک راه حل ایده آل است که به خوبی تعریف می شود و بدین شکل کافی شاپ با همان فضای موجود و به بهترین شکل به مشتریانش سرویس می دهد و در هزینه ها نیز صرفه جویی می شود.
به همان شیوه، وب سرور LiteSpeed شما پول را صرفه جویی می کند.
با انجام فرایندهای کمتر کارهای بسیاری انجام می شود، سرور شما می تواند بدون نیاز به سخت افزار بیشتر به سرعت تعداد زیادی درخواست را اداره کند.
نتیجه گیری
طبق تحقیقات سرور لایت اسپید می تواند تا ۱۳۰% سریعتر نسبت به آپاچی درخواست ها را هندل کند.
لایت اسپید برای هندل یک درخواست یکی از پروسسورهای خود را درگیر می کند و در نتیجه سرعت CPU را افزایش می دهد و حافظه کمتری نسبت به Apache مصرف می کند؛ آپاچی با مدل مبتنی بر فرایند برای محتویات استاتیک مانند تصاویر، CSS و HTML مناسب است.
تشابه کافی شاپ وقتی که به محتوای پویا (Dynamic) مربوط می شود، بسیار مناسب است.
تصور کنید برنامه های کاربردی وب مانند PHP و فرایندهای پایگاه داده مانند MySQL. به صورت زیر یک مدل مبتنی بر رویداد درخواست خود را انجام می دهد:
وب سرور لایت اسپید | کافی شاپ |
وب سرور LiteSpeed یک درخواست را دریافت می کند و به یک فرایند خارجی می فرستد | کارمند فروشگاه یک دستور را می گیرد و آن را به یک مسئول سفارش منتقل می کند |
LiteSpeed برای پاسخ های پویا صبر نمی کند، اما در عوض به درخواست های بیشتری پاسخ می دهد. | یک کارمند منتظر تکمیل کار توسط همکار خود نمی ماند و سفارشات دیگر را ثبت می کند. |
زمانی که فرآیند تکمیل شد ، وب سرور Litespeed نتیجه را باز می گرداند. | زمانی که سفارش آماده گشت ، مشتری مطلع می شود. |
LiteSpeed پاسخ را به مشتری درخواست کننده ارسال می کند. | وقتی که سفارش مشتری آماده شد به کارمند اطلاع داده می شود و سفارش را به مشتری تحویل می دهد. |