نصب memcached بر روی سرور سرعت لود وبسایتها را به طور چشمگیری افزایش میدهد، memcached یک سیستم کش از نوع distributed memory object caching میباشد که درخواستهای ارسال شده به سمت پایگاه داده (mysql) را به طور موقت بر روی Ram سرور ذخیره میکند.
با ذخیره شدن query های تکرار شونده بر روی رم در مواقع بعدی درخواست، این اطلاعات دیگر از روی پایگاه داده فراخوانی نشده و ram سرور مسئول پاسخدهی به این درخواستها خواهد شد و همین امر لود سرور را به طرز قابل توجهی کاهش داده و باعث میشود mysql بتواند به طور همزمان به درخواستهای بیشتری پاسخ بدهد.
بهترین حالت استفاده از نصب memcached بر روی سرورهای توزیع شده میباشد. بدین معنی که این سیستم کش بر روی سروری جداگانه از سرور اصلی نصب شود. ولی در حالتی که امکان استفاده بدین شکل نباشد استفاده بر روی یک سرور مشترک نیز به طور مناسبی در بهبود وضعیت لود سرور تأثیرگذار خواهد بود.
در رابطه با قدرت memcahed همین را بگوییم که سایتهای بزرگی که از این سیستم کش استفاده میکنند سایتهای youtube,faceboot و… هستند که خود این امر نشان از عملکرد فوقالعاده این سیستم کش دارد.
روش سریع نصب memcached توسط مخزن epel
بهترین و سریعترین روش نصب memcached استفاده از مخزن epel توسط yum میباشد. ابتدا باید با توجه به معماری و ورژن سرور لینوکس خود اقدام به دانلود فایل rpm این مخزن کرده و آن را بر روی سرور خود نصب کنید.
برای عملیات کانفیگ سرور در هر مقیاسی که باشد شما باید دسترسی روت سرور را داشته باشید تا بتوانید دستورات سطح بالا را با پرمیژن ادمین اجرا کنید در غیر اینصورت نمیتوانید تغییراتی همچون نصب پکیج را روی سرور انجام دهید.
لینوکس سرور من ورژن ۶ و از نوع ۶۴ بیت هستش، برای نصب مخزن epel از دستور زیر استفاده میکنم، اگر ورژن سرور شما متفاوت است، میتوانید با سرچ در گوگل به دنبال پکیج مناسب خود بگردید.
Wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6-8.noarch.rpm
حالا با فعال شدن مخزن Epel شما با دستور yum میتوانید اقدام به نصب memcached بر روی سرور لینوکسی خود بکنید.
مرحله اول: برای نصب، دستور زیر را با دسترسی root در محیط ssh سرور خودتان وارد کنید.
yum install memcached
بسته به سختافزار و سرعت اینترنت، پروسه نصب در حدود ۱ تا ۳ دقیقه به طول خواهد کشید.
خوب نصب memcached به همین راحتی بود، حالا باید کانفیگ مناسب سرور خود را بر روی فایل کانفیگ آن لحاظ کنید و تغییرات را ذخیره کنید، یک نمونه از تنظیمات خودمان را برای شما هم قرار میدهیم که میتوانید از اون استفاده کنید.
مرحله دوم: پارامترهای زیر را درون فایل کانفیگ memcached سرور خود لحاظ کنید. از دستور زیر جهت ادیت کردن فایل کانفیگ استفاده کنید.
nano /etc/sysconfig/memcached
# Running on Port 11211 "PORT="11211 # Start as memcached daemon "USER="memcached # Set max simultaneous connections to 1024 "MAXCONN="1024 # Set Memory size to 2048 - 4GB(4096) "CACHESIZE="2048 #Set server IP address "OPTIONS="-l 127.0.0.1
PORT: بیانگر شماره پورتی است که memcached بر روی آن فعالیت میکند.
USER: سرویس memcached توسط این یوزر استارت شده و فعالیت میکند.
MAXCONN: حداکثر تعداد کانکشنهایی که اجازه اتصال همزمان را دارند مشخص میکند اگر سرور شما ترافیک زیادی دارد این پارامتر را افزایش دهید.
CACHESIZE: بیانگر حداکثر مقدار استفاده از رم سرور به صورت رزرو شده را مشخص میکند، اگر سرور شما دارای حافظه رم قابل قبولی است میتوانید این مقدار را افزایش دهید.
OPTIONS: در این قسمت آدرس آی پی سرور خودتان را وارد کنید تا وب سرور شما بتواند به آن متصل گردد.
از دستورات زیر هم میتوانید برای کنترل سرویس memcached استفاده کنید، اگر آشنایی با دستورات ذکر شده ندارید میتوانید از آموزش دستورات لینوکس استفاده کنید.
chkconfig --levels 235 memcached on etc/init.d/memcached start/ etc/init.d/memcached restart/
برای اطمینان از عملکرد سرویس کش دستور زیر را وارد کنید، باید برای شما خروجی نمایش داده شود. در غیر اینصورت سرویس مربوطه بر روی سرور هنوز فعال نیست.
netstat -tulpn | grep :11211
در انتها برای اعمال تغییرات وب سرور خود را توسط دستور زیر یکبار ریست کنید.
service httpd restart
حال باید پورت memcached را نیز بر روی فایروال سرور خود باز کنید، در غیر اینصورت اتصال به memcached میسر نخواهد شد.
توصیه ما به شما نصب csf بر روی سرور و باز کردن پورت در csf به جای iptables هستش، بدلیل اینکه کار با فایروال csf بسیار منعطفتر و آسانتر است.
برای بررسی وضعیت کش نیز دستور زیر را وارد میکنیم اگر خروجی همانند عکس زیر دریافت کردید کار به درستی انجام شده است.
برای مطالعه رفرنس اصلی نیز میتوانید از سایت tecmint نیز استفاده کنید.