راهنمای جامع نصب Memcached روی لینوکس؛ افزایش سرعت سرور و کاهش بار پایگاه داده

نصب Memcached روی لینوکس

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

آشنایی با ابزار Memcached و مکانیزم عملکرد آن

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

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

  پیش نیاز نصب Memcached روی لینوکس

پیش‌نیازهای سیستم برای نصب Memcached روی لینوکس

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

برای شروع کار، دسترسی به کاربر ریشه یا کاربری با دسترسی‌های کامل مدیریت سیستم و دسترسی به پروتکل SSH الزامی است. همچنین اتصال اینترنت سرور باید برقرار باشد تا بسته‌های نرم‌افزاری مورد نیاز بدون مشکل از مخازن رسمی توزیع‌ها دریافت شوند.

آموزش نصب Memcached روی لینوکس در توزیع‌های مبتنی بر دبیان و اوبونتو

فرآیند نصب Memcached روی لینوکس در توزیع‌های مبتنی بر دبیان بسیار ساده است، زیرا بسته‌های پایدار این ابزار به صورت پیش‌فرض در مخازن رسمی اوبونتو وجود دارند. برای شروع، ابتدا باید لایه امنیتی و لیست بسته‌های سیستم‌عامل خود را به‌روزرسانی کنید. این کار با دستور آپدیت سیستم انجام می‌شود:

 sudo apt update 

پس از به‌روزرسانی مخازن، با استفاده از ابزار مدیریت بسته، فرمان نصب سیستم کش و کیت ابزارهای وابسته به آن را صادر می‌کنید. این کیت ابزار به شما کمک می‌کند تا در آینده بتوانید وضعیت کارکرد و میزان استفاده از رم را از طریق خط فرمان رصد کنید:

 sudo apt install memcached libmemcached-tools -y 

پس از پایان فرآیند دانلود و پیکربندی اولیه توسط سیستم‌عامل، سرویس به صورت خودکار در پس‌زمینه فعال خواهد شد. شما می‌توانید وضعیت فعال بودن آن را با دستور زیر بررسی کنید:

 sudo systemctl status memcached 
آموزش نصب Memcached روی لینوکس

آموزش نصب Memcached روی توزیع‌های RHEL، سنت‌آس و راکی لینوکس

در توزیع‌های سازمانی لینوکس مانند راکی لینوکس یا آلما لینوکس، پایداری سیستم اولویت اول است. برای راه‌اندازی این سیستم کش در این محیط‌ها، معمولا نیاز است که ابتدا مخازن اضافی مانند EPEL فعال شوند تا به آخرین نسخه‌های پایدار دسترسی داشته باشید:

 sudo dnf install epel-release -y 

پس از فعال‌سازی مخازن مربوطه، فرآیند نصب با ابزار مدیریت بسته dnf انجام می‌شود:

 sudo dnf install memcached libmemcached -y 

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

 sudo systemctl enable memcached --now 

پیکربندی تخصصی و بهینه‌سازی فایل تنظیمات Memcached

پس از اجرای صحیح مراحل نصب Memcached روی لینوکس، نوبت به پیکربندی مهم‌ترین فایل آن می‌رسد. تنظیمات پیش‌فرض این ابزار معمولا بسیار محافظه‌کارانه است؛ مثلا مقدار رم تخصیص‌یافته به صورت پیش‌فرض روی ۶۴ مگابایت تنظیم شده که برای یک سایت تجاری بزرگ بسیار ناچیز است. در توزیع‌های دبیان و اوبونتو این فایل در مسیر /etc/memcached.conf و در توزیع‌های مبتنی بر RedHat در مسیر /etc/sysconfig/memcached قرار دارد.

برای ویرایش این فایل در اوبونتو از دستور زیر استفاده می‌شود:

 sudo nano /etc/memcached.conf 

در این فایل، چند پارامتر کلیدی وجود دارد که نیاز به بازنگری تخصصی دارند:

  • میزان حافظه مصرفی: سوئیچ -m مشخص می‌کند که چه مقدار از رم سرور به ذخیره‌سازی کش اختصاص یابد. مثلا برای اختصاص ۱ گیگابایت رم، باید مقدار آن را به -m 1024 تغییر دهید.
  • آدرس شبکه: سوئیچ -l تعیین می‌کند سرویس روی چه آی‌پی گوش دهد. برای امنیت کامل، این مقدار باید روی لوکال‌هاست یعنی 127.0.0.1 بماند.
  • تعداد اتصالات همزمان: سوئیچ -c تعیین می‌کند چه تعداد کانکشن به طور همزمان امکان تبادل داده با حافظه پنهان را دارند که به صورت پیش‌فرض روی ۱۰۲۴ تنظیم شده است.

پس از اعمال تغییرات، سرویس باید ری‌استارت شود:

 sudo systemctl restart memcached 
ایمن سازی سرور پس از نصب Memcached روی لینوکس

ایمن‌سازی لایه حافظه پنهان در سرورهای لینوکسی

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

اگر نیاز است که یک سرور مجزا برای کش داشته باشید و چندین سرور وب به آن متصل شوند، باید از فایروال سیستم‌عامل استفاده کنید. برای مثال در اوبونتو با ابزار UFW، دستور دقیق و استاندارد برای محدود کردن دسترسی به پورت 11211 فقط برای آی‌پی سرور وب (مثلا 192.168.1.10) به این صورت وارد می‌شود:

 sudo ufw allow from 192.168.1.10 to any port 11211 proto tcp 

نحوه تست عملکرد و بررسی وضعیت پایداری سرویس

پس از انجام تمام تنظیمات، باید از صحت عملکرد سیستم مطمئن شوید. ابزارهای خط فرمان لینوکس امکان بررسی زنده وضعیت رم و اتصالات را به شما می‌دهند. با استفاده از ابزار memstat می‌توانید آمارهای حیاتی سرویس را استخراج کنید:

 memstat --servers="127.0.0.1" 

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

جمع‌بندی : افزایش سرعت سایت و سرور با استفاده از Memcached

راه‌اندازی سیستم کش لایه سرور یکی از موثرترین گام‌ها در جهت بهبود تجربه کاربری و بهینه‌سازی مصرف منابع زیرساخت است. با طی کردن مراحل نصب Memcached روی لینوکس و اعمال تنظیمات بهینه روی فایل‌های پیکربندی، سرعت پاسخ‌دهی سرور به شکل چشمگیری افزایش می‌یابد و پایگاه داده از زیر بار پردازش‌های تکراری خارج می‌شود. در این میان، توجه به فاکتورهای امنیتی مانند محدود کردن پورت‌ها در فایروال و مانیتورینگ مداوم وضعیت حافظه رم، تضمین‌کننده پایداری طولانی‌مدت این سرویس در محیط‌های عملیاتی خواهد بود.

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

01چرا پس از تغییر مقدار رم در فایل پیکربندی تغییرات اعمال نمی‌شود؟

هر زمان که فایل تنظیمات اصلی را ویرایش می‌کنید، سرویس به طور خودکار متوجه این تغییرات نمی‌شود. برای اعمال تنظیمات جدید، حتما باید سرویس را با دستور ری‌استارت در خط فرمان مجددا راه‌اندازی کنید تا ساختار جدید حافظه رم اختصاص داده شود.

02تفاوت اصلی Memcached با Redis در چیست و کدام یک بهتر است؟

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

03چگونه می‌توان متوجه شد که پورت این سرویس از خارج از سرور در دسترس نیست؟

برای تست امنیتی پورت، می‌توانید از ابزار NetCat یا Telnet در یک سیستم خارج از شبکه سرور استفاده کنید و تلاش کنید به پورت 11211 آی‌پي سرور متصل شوید. اگر اتصال برقرار نشد یا با خطای تایم‌اوت مواجه شدید، نشان‌دهنده عملکرد صحیح فایروال و ایمن بودن لایه حافظه پنهان است.

04آیا کمبود حافظه رم باعث از کار افتادن کامل این سیستم کش می‌شود؟

خیر، این سرویس از مکانیزم لغو داده‌های قدیمی استفاده می‌کند. این بدان معناست که وقتی فضای رم اختصاص‌یافته کاملا پر شود، سیستم به طور خودکار داده‌هایی را که کمترین استفاده را داشته‌اند حذف می‌کند تا فضا برای داده‌های جدید باز شود. این فرآیند باعث کرش کردن سرویس نمی‌شود اما نرخ درخواست‌های ناموفق را افزایش می‌دهد.

نظرات کاربران

شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.

logo
ثبت نام ناحیه کاربری راهنمای خرید پرداخت قسطی
ناحیه کاربری
ثبت نامناحیه کاربریداشبورد ابریارسال تیکتتماس تلفنی
تماس با ما
مشاوره تلفنی 1779 | 79625000
واحد مارکتینگ داخلی 1
واحد مشتریان داخلی 2
مالی و اداری داخلی 3
منابع انسانی داخلی 4