MEMCACHED(1) General Commands Manual MEMCACHED(1)

memcached - سامانه نهان‌سازی اشیاء در حافظه با کارایی بالا

memcached [گزینه‌ها]

این صفحهٔ راهنما به‌طور خلاصه دیمن نهان‌سازی اشیاء در حافظهٔ memcached را مستند می‌کند.

memcached یک دیمن منعطف نهان‌سازی اشیاء در حافظه است که برای کاهش بار پایگاه داده در برنامه‌های کاربردی وب پویا از طریق ذخیره‌سازی اشیاء در حافظه طراحی شده است. این دیمن بر پایهٔ libevent ساخته شده تا در صورت نیاز به هر مقیاسی گسترش یابد، و به‌طور ویژه بهینه‌سازی شده تا از سوآپینگ (swapping) جلوگیری کرده و همیشه از ورودی/خروجی غیرمسدودکننده (non-blocking I/O) استفاده کند.

این برنامه‌ها از قواعد دستوری معمول خط فرمان گنو (GNU) پیروی می‌کنند. خلاصه‌ای از گزینه‌ها در ادامه آمده است.

مسیر سوکت یونیکس (Unix socket) برای گوش دادن به آن (پشتیبانی از شبکه را غیرفعال می‌کند).
فعال‌سازی دستور اسکی (ASCII) "shutdown".
مجوزها (در قالب هشت‌هشتی / octal) برای سوکت یونیکس ایجادشده با گزینهٔ -s.
گوش دادن روی <addr>؛ پیش‌فرض INADDR_ANY است. <addr> می‌تواند به‌صورت host:port مشخص شود. اگر شماره پورت را مشخص نکنید، مقداری که با -p یا -U تعیین کرده‌اید استفاده می‌شود. می‌توانید چند آدرس را با کاما جدا کنید یا چند بار از -l استفاده نمایید. این گزینه بسیار مهم است چرا که روش دیگری برای ایمن‌سازی راه‌اندازی وجود ندارد. متصل شدن به یک رابط شبکهٔ داخلی یا محافظت‌شده با فایروال پیشنهاد می‌شود.
اجرای memcached در قالب یک دیمن (daemon).
تغییر هویت کاربری به <username> (فقط هنگامی که با دسترسی ریشه / root اجرا شود).
استفاده از حداکثر <num> مگابایت حافظه برای ذخیرهٔ اشیاء؛ پیش‌فرض ۶۴ مگابایت است.
استفاده از حداکثر <num> اتصال هم‌زمان؛ پیش‌فرض ۱۰۲۴ است.
این گزینه با تعیین محدودیتی برای تعداد درخواست‌های متوالی که سرور از یک اتصال کلاینت پردازش می‌کند، سعی در جلوگیری از محروم‌ماندن کلاینت‌ها (client starvation) دارد. هنگامی که یک اتصال از این مقدار فراتر رود، سرور پیش از رسیدگی به هرگونه درخواست دیگر از این اتصال، تلاش می‌کند ورودی/خروجی سایر اتصالات را پردازش کند. مقدار پیش‌فرض این گزینه ۲۰ است.
قفل کردن تمام حافظهٔ صفحه‌بندی‌شده (paged memory). این گزینه برای کش‌های بزرگ تا حدی خطرناک است، بنابراین برای پیشنهادهای پیکربندی به فایل README و وبگاه memcached مراجعه کنید.
گوش دادن روی پورت TCP با شمارهٔ <num>؛ پیش‌فرض پورت ۱۱۲۱۱ است. مقدار ۰ به‌معنای خاموش بودن است.
گوش دادن روی پورت UDP با شمارهٔ <num>؛ پیش‌فرض پورت ۰ است که به‌معنای غیرفعال بودن است.
غیرفعال‌سازی حذف خودکار آیتم‌ها از کش در هنگام اتمام حافظه. تا زمانی که فضای کافی آزاد نشود، افزودن موارد جدید امکان‌پذیر نخواهد بود.
افزایش محدودیت اندازهٔ فایل core به حداکثر مقدار مجاز.
استفاده از <factor> به‌عنون ضریب محاسبهٔ اندازهٔ تکه‌های حافظه (chunks) که آیتم‌ها در آن ذخیره می‌شوند. بسته به مقدار کل حافظهٔ در دسترس و توزیع اندازهٔ آیتم‌ها، مقدار کمتر ممکن است به هدررفت کمتر حافظه منجر شود. مقدار پیش‌فرض ۱.۲۵ است.
تخصیص حداقل <size> بایت برای کلید (key)، مقدار (value) و پرچم‌های (flags) آیتم. پیش‌فرض ۴۸ است. اگر تعداد زیادی کلید و مقدار کوچک دارید، می‌توانید با مقداری کمتر بهبود قابل‌توجهی در بازدهی حافظه به دست آورید. از سوی دیگر، اگر از ضریب رشد تکهٔ بالایی (گزینهٔ -f) استفاده می‌کنید، ممکن است بخواهید اندازه را افزایش دهید تا درصد بیشتری از آیتم‌های شما در متراکم‌ترین (کوچک‌ترین) تکه‌ها جای گیرند.
غیرفعال کردن استفاده از CAS (و کاهش ۸ بایت از اندازهٔ هر آیتم).
نمایش نگارش memcached و خلاصه‌ای از گزینه‌ها.
نمایش اطلاعات با جزئیات در طول حلقهٔ رویداد (event loop)؛ چاپ خطاها و هشدارها.
نمایش اطلاعات با جزئیات بیشتر؛ مشابه -v به همراه چاپ دستورها و پاسخ‌های کلاینت.
نمایش حداکثر جزئیات؛ مشابه موارد بالا به همراه چاپ انتقال وضعیت‌های داخلی.
چاپ مجوزهای memcached و libevent.
نوشتن pidfile در <filename>، تنها همراه با گزینهٔ -d استفاده می‌شود.
تعداد رشته‌ها (threads) مورد استفاده برای پردازش درخواست‌های ورودی. این گزینه تنها در صورتی معنادار است که memcached با فعال بودن پشتیبانی از thread کامپایل شده باشد. معمولاً تنظیم این مقدار به بیش از تعداد هسته‌های پردازنده (CPU) در سرور memcached مفید نیست. تنظیم تعداد بالایی از رشته‌های کاری (۶۴ یا بیشتر) توصیه نمی‌شود. مقدار پیش‌فرض ۴ است.
استفاده از <char> به‌عنوان جداکننده بین پیشوندهای کلید و شناسه‌ها (IDs). این گزینه برای گزارش آماری به ازای هر پیشوند به کار می‌رود. مقدار پیش‌فرض ":" (دونقطه) است. اگر این گزینه مشخص شود، جمع‌آوری آمار به‌طور خودکار فعال می‌شود؛ در غیر این صورت، می‌توان آن را با ارسال دستور "stats detail on" به سرور فعال کرد.
تلاش برای استفاده از صفحات بزرگ حافظه (large pages) در صورت در دسترس بودن. افزایش اندازهٔ صفحهٔ حافظه می‌تواند تعداد خطاهای TLB را کاهش داده و کارایی را بهبود بخشد. برای دریافت صفحات بزرگ از سیستم‌عامل، memcached کل حافظهٔ کش آیتم‌ها را در یک تکهٔ بزرگ تخصیص می‌دهد. این قابلیت تنها در صورتی فعال است که توسط سیستم‌عامل شما پشتیبانی شود.
تنظیم محدودیت صف backlog به <num> اتصال. مقدار پیش‌فرض ۱۰۲۴ است.
مشخص کردن پروتکل اتصالی مورد استفاده. به‌طور پیش‌فرض، سرور پروتکل اتصالات کلاینت را به‌طور خودکار مذاکره می‌کند (autonegotiate). با استفاده از این گزینه، می‌توانید پروتکلی را که کلاینت‌ها باید استفاده کنند مشخص کنید. گزینه‌های ممکن عبارتند از "auto" (پیش‌فرض، رفتار مذاکرهٔ خودکار)، "ascii" و "binary".
تنظیم این مقدار، محدودیت اندازهٔ آیتم را تغییر می‌دهد. مقدار پیش‌فرض برای این پارامتر 1m، حداقل 1k و حداکثر 1G (1024 * 1024 * 1024) است.
فعال‌سازی احراز هویت SASL. این گزینه تنها در صورتی معنادار است که memcached با فعال بودن پشتیبانی از SASL کامپایل شده باشد.
غیرفعال کردن دستور "flush_all". شمارندهٔ cmd_flush افزایش خواهد یافت، اما کلاینت‌ها پیام خطا دریافت کرده و تخلیه رخ نخواهد داد.
غیرفعال کردن دستورهای "stats cachedump" و "lru_crawler metadump".
فهرستی از گزینه‌های گسترش‌یافته یا آزمایشی که با کاما از هم جدا شده‌اند. برای فهرست به‌روز به -h یا ویکی مراجعه کنید.
چاپ نگارش و خروج.

حق کپی‌رایت دیمن memcached متعلق به Danga Interactive است و تحت مجوز BSD توزیع می‌شود. توجه داشته باشید که کلاینت‌های دیمن به‌طور جداگانه مجوزدهی شده‌اند.

فایل README که همراه با memcached ارائه می‌شود
https://www.memcached.org

دیمن memcached توسط Anatoly Vorobey <mellon@pobox.com> و Brad Fitzpatrick <brad@danga.com> و سایر اعضای تیم Danga Interactive نوشته شده است https://www.danga.com

April 11, 2005