.\" Man page generated from reStructuredText .\" by the Docutils 0.22.3 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "MEMASLAP" "1" "Mar 07, 2026" "1.1" "libmemcached-awesome" .SH "نام (NAME)" memaslap \- ابزار تست بار و بنچ‌مارک کارایی سرورهای Memcached .SH "خلاصه دستور (SYNOPSIS)" .sp \fBmemaslap\fP [\fIگزینه‌ها\fR] .INDENT 0.0 .TP .B \-\-help .UNINDENT .INDENT 0.0 .TP .B \-\-servers .UNINDENT .INDENT 0.0 .TP .B MEMCACHED_SERVERS .UNINDENT .SH "توضیحات (DESCRIPTION)" .sp دستور \fBmemaslap\fP یک ابزار تولید بار کاری و سنجش کارایی (بنچ‌مارک) برای سرورهای memcached است. این ابزار بارهای کاری قابل‌پیکربندی مانند تعداد نخ‌ها، همزمانی، تعداد اتصالات، مدت زمان اجرا، بازنویسی (overwrite)، نرخ خطا در کش (miss rate)، اندازه کلیدها، اندازه مقادیر، نسبت دستورات get/set، توان عملیاتی مورد انتظار (throughput) و موارد دیگر را تولید می‌کند. علاوه بر این، اعتبارسنجی داده‌ها، اعتبارسنجی زمان انقضا، پروتکل‌های UDP و باینری، آزمون فیس‌بوک (facebook test)، آزمون رونوشت‌برداری (replication)، درخواست‌های چندگانه (multi\-get) و اتصال مجدد را نیز ارزیابی و تست می‌کند. .sp ابزار Memaslap اتصالات شبکه را همانند memcached با استفاده از libevent مدیریت می‌کند. هر نخ از memaslap به یک هسته پردازنده (CPU) مقید می‌شود، نخ‌ها هیچ ارتباطی با یکدیگر ندارند و درون هر نخ چندین اتصال سوکت وجود دارد. هر اتصال توزیع اندازه کلید، توزیع اندازه مقدار و توزیع دستورات را به صورت مستقل درون خود حفظ و مدیریت می‌کند. .sp می‌توانید سرورها را با گزینه \fBmemaslap \-\-servers\fP یا از طریق متغیر محیطی \fBMEMCACHED_SERVERS\fP \%<#\:envvar-MEMCACHED_SERVERS> مشخص کنید. .SH "ویژگی‌ها (FEATURES)" .sp ابزار Memslap برای اهداف و با قابلیت‌های زیر توسعه یافته است: .sp مدیریت ناهمگام اتصالات شبکه به کمک libevent. .sp تنظیم هر دو پروتکل TCP و UDP برای استفاده از ورودی/خروجی غیرمسدودکننده (Non\-blocking I/O). .sp بهبود موازی‌سازی: کارایی بالاتر در محیط‌های چندنخی. .sp بهبود بهره‌وری زمانی: سرعت پردازش بالاتر. .sp تولید بهینه‌تر کلیدها و مقادیر؛ توزیع اندازه کلید و اندازه مقدار قابل‌پیکربندی است. .sp پشتیبانی از دستورات get، multi\-get و set؛ توزیع فراوانی دستورات قابل‌پیکربندی است. .sp پشتیبانی از نرخ خطای کش (miss rate) و نرخ بازنویسی (overwrite rate) قابل‌کنترل. .sp پشتیبانی از اعتبارسنجی داده‌ها و زمان انقضا. .sp پشتیبانی از تخلیه و ثبت دوره‌ای اطلاعات آماری. .sp پشتیبانی از هزاران اتصال همزمان TCP. .sp پشتیبانی از پروتکل باینری (دودویی). .sp پشتیبانی از آزمون فیس‌بوک (دستور set با TCP و multi\-get با UDP) و آزمون رونوشت‌برداری (Replication). .SH "جزئیات (DETAILS)" .SS "پیاده‌سازی بهینه شبکه" .sp در memaslap، هر دو پروتکل TCP و UDP از ورودی/خروجی شبکه غیرمسدودکننده استفاده می‌کنند. تمام رخدادهای شبکه مانند memcached توسط libevent مدیریت می‌شوند. ماژول شبکه memaslap مشابه memcached است. استفاده از libevent تضمین می‌کند که memaslap بتواند ترافیک شبکه را با بازدهی بسیار بالایی مدیریت کند. .SS "پیاده‌سازی بهینه چندنخی و همزمانی" .sp ابزار Memslap پیاده‌سازی چندنخی مشابهی با memcached دارد. این ابزار یک یا چند نخ مستقل ایجاد می‌کند؛ اگر سیستم از تنظیم وابستگی هسته پردازنده (CPU core affinity) پشتیبانی کند، هر نخ به یک هسته اختصاصی متصل می‌شود. .sp علاوه بر این، هر نخ نمونه‌ای از libevent برای مدیریت رویدادهای شبکه دارد؛ هر نخ دارای یک یا چند تسک همزمانی خودگردان است و هر همزمانی دارای یک یا چند اتصال سوکت است. تمام تسک‌های همزمان، حتی اگر در یک نخ یکسان باشند، با یکدیگر ارتباط برقرار نمی‌کنند. .sp ابزار Memslap می‌تواند هزاران اتصال سوکت ایجاد کند و هر تسک همزمانی دارای ده‌ها اتصال سوکت است. هر همزمانی به صورت تصادفی یا ترتیبی یک اتصال سوکت را از استخر اتصالات خود انتخاب کرده و اجرا می‌کند؛ بنابراین memaslap تضمین می‌کند که هر همزمانی در هر لحظه مشخص فقط با یک اتصال سوکت کار کند. کاربران می‌توانند تعداد همزمانی‌ها و تعداد اتصالات سوکت هر همزمانی را متناسب با بار کاری مورد نظر خود تعیین کنند. .SS "پیاده‌سازی بهینه تولید کلید و مقدار" .sp به منظور افزایش بهره‌وری زمانی و صرفه‌جویی در حافظه، memaslap یک جدول کاراکتر تصادفی با ۱۰ میلیون کاراکتر ایجاد می‌کند. تمام پسوندهای کلیدها و مقادیر از این جدول کاراکتر تصادفی تولید می‌شوند. .sp ابزار Memslap از آفست درون جدول کاراکتر و طول رشته برای شناسایی رشته‌ها استفاده می‌کند که این کار موجب صرفه‌جویی چشمگیر در مصرف حافظه می‌شود. هر کلید شامل دو بخش است: پیشوند و پسوند. پیشوند یک عدد uint64_t به اندازه ۸ بایت است. برای امکان اعتبارسنجی داده‌های قبلی، memaslap باید اطمینان حاصل کند که هر کلید یکتا است، بنابراین از این پیشوند برای شناسایی کلید استفاده می‌کند. پیشوند نباید شامل کاراکترهای غیرمجاز مانند \(aqr\(aq، \(aqn\(aq، \(aq0\(aq یا فاصله (\(aq \(aq) باشد؛ memaslap از الگوریتمی اختصاصی برای تضمین این امر بهره می‌برد. .sp ابزار Memslap در ابتدای کار تمام اشیا (جفت‌های کلید\-مقدار) را یکجا تولید نمی‌کند، بلکه تنها به اندازه‌ای شیء ایجاد می‌کند که پنجره تسک (task window به طور پیش‌فرض ۱۰ هزار شیء) برای هر همزمانی پر شود. هر شیء دارای اطلاعات پایه‌ای شامل پیشوند کلید، آفست پسوند کلید در جدول کاراکتر، طول کلید، آفست مقدار در جدول کاراکتر و طول مقدار است. .sp در حین فرایند کار، هر تسک همزمانی به صورت ترتیبی یا تصادفی شیئی را از پنجره کاری انتخاب کرده و عملیات set یا get را روی آن انجام می‌دهد. همزمان، هر همزمانی اشیای قدیمی را از پنجره کاری خود خارج کرده و اشیای جدیدی جایگزین آن‌ها می‌کند. .SS "زمان‌بندی ساده اما کارآمد تسک‌ها" .sp ابزار Memslap از libevent برای زمان‌بندی تمام تسک‌های همزمان نخ‌ها استفاده می‌کند و هر همزمانی تسک‌ها را بر اساس پنجره محلی خود زمان‌بندی می‌نماید. فرضیه Memslap این است که اگر هر همزمانی توزیع کلید، توزیع مقدار و توزیع دستورات یکسانی را حفظ کند، از دید بیرونی، memaslap تمام توزیع‌ها را در مقیاس کلی حفظ خواهد کرد. هر پنجره کاری شامل اشیای متعددی است که هر شیء مشخصات پایه‌ای خود مانند کلید، مقدار، زمان انقضا و غیره را نگهداری می‌کند. در هر لحظه، تمام اشیای درون پنجره، توزیع ثابت و یکسانی از کلید و مقدار را حفظ می‌کنند. در صورت بازنویسی (overwrite) یک شیء، مقدار آن به‌روزرسانی می‌شود. Memslap صحت داده‌ها یا زمان انقضا را بر اساس اطلاعات ذخیره‌شده شیء در پنجره کاری اعتبارسنجی می‌کند. .sp کتابخانه libevent بر اساس رویداد شبکه مشخص، تعیین می‌کند کدام همزمانی پاسخگو باشد. سپس آن همزمانی بر اساس توزیع دستورات، دستور مورد نظر (get یا set) را برای اجرا برمی‌گزیند. اگر نیاز باشد شیء قدیمی حذف و شیء جدیدی اضافه گردد، به منظور حفظ ثبات توزیع کلید و مقدار، شیء جدید باید دقیقاً همان طول کلید و طول مقدار شیء قبلی را داشته باشد. .sp اگر سرور memcached دارای دو لایه کش (حافظه رم و SSD) باشد، اجرای memaslap با اندازه‌های مختلف پنجره کاری می‌تواند نرخ‌های مختلف خطای کش (miss rate) را شبیه‌سازی کند. اگر memaslap در ابتدا اشیای کافی به پنجره‌ها اضافه کند و حافظه کش اولیه memcached نتواند تمام اشیای مقداردهی‌شده را ذخیره کند، memaslap برخی اشیا را از لایه دوم کش فراخوانی خواهد کرد که این موضوع باعث miss در لایه اول می‌شود. بنابراین کاربر می‌تواند اندازه پنجره را طوری تنظیم کند که نرخ خطای مورد انتظار لایه اول کش شبیه‌سازی شود. .SS "پیاده‌سازی کاربردی چندسروری، UDP، TCP، چند-دریافتی و پروتکل دودویی" .sp از آنجا که هر نخ به صورت خودگردان عمل می‌کند، memaslap می‌تواند نخ‌های مختلف را به سرورهای مختلف memcached اختصاص دهد. این تنها یکی از روش‌های آزمایش چند سرور همزمان در memaslap است. تنها محدودیت این است که تعداد سرورها نباید بیشتر از تعداد نخ‌ها باشد. روش دیگر برای آزمایش چند سرور، آزمون رونوشت‌برداری (Replication) است. هر همزمانی یک اتصال سوکت به هر سرور memcached دارد. در این پیاده‌سازی، memaslap می‌تواند برخی اشیا را روی یک سرور memcached ذخیره کرده (set) و همان اشیا را از سرورهای دیگر دریافت کند (get). .sp به طور پیش‌فرض، Memslap عملیات get تک‌موردی را اجرا می‌کند. اگر کاربر گزینه multi\-get را فعال کند، memaslap تعداد کافی دستور get را جمع‌آوری کرده و آن‌ها را در قالب یک بسته مشترک ارسال می‌کند. .sp ابزار Memslap هم از پروتکل ASCII و هم پروتکل باینری (دودویی) پشتیبانی می‌کند، اما به طور پیش‌فرض روی پروتکل ASCII اجرا می‌شود. همچنین به طور پیش‌فرض از پروتکل TCP استفاده می‌کند ولی آزمون روی UDP را نیز پوشش می‌دهد. از آنجا که UDP غیرقابل‌اعتماد است، ممکن است ریزش بسته‌ها (packet loss) و بسته‌های خارج از ترتیب رخ دهد. Memslap یک بافر حافظه اختصاصی برای مدیریت این شرایط ایجاد می‌کند. این ابزار تلاش می‌کند تمام داده‌های پاسخ یک دستور را از سرور خوانده و آن‌ها را مرتب‌سازی مجدد کند. در صورت مفقود شدن بسته‌ها، سازوکار انقضای زمان انتظار (timeout) تضمین می‌کند بسته‌های ناقص دور ریخته شده و دستور بعدی ارسال گردد. .SH "نحوه استفاده (USAGE)" .sp نمونه‌های استفاده از دستور: .sp memaslap \-s 127.0.0.1:11211 \-S 5s .sp memaslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b .sp memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2 .sp memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k .sp memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40 .sp memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m .sp memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2 .sp برای اجرای memaslap کاربر باید حداقل یک سرور را مشخص کند. سایر پارامترها دارای مقادیر پیش‌فرض هستند که در جدول زیر آمده است: .sp تعداد نخ‌ها = 1 همزمانی = 16 .sp مدت زمان اجرا = 600 ثانیه فایل پیکربندی = NULL .sp اندازه کلید = 64 اندازه مقدار = 1024 .sp نسبت Get/set = 9:1 اندازه پنجره = 10k .sp تعداد اجرا = 0 دریافت تکی (Single get) = true .sp دریافت چندگانه (Multi\-get) = false تعداد سوکت‌های هر همزمانی = 1 .sp اتصال مجدد = false اعتبارسنجی داده‌ها = false .sp اعتبارسنجی زمان انقضا = false پروتکل ASCII = true .sp پروتکل باینری = false ثبت دوره‌ای اطلاعات آماری = false .sp نسبت بازنویسی = 0% پروتکل UDP = false .sp پروتکل TCP = true محدودیت توان عملیاتی = false .sp آزمون فیس‌بوک = false آزمون رونوشت‌برداری = false .SS "اندازه کلید، اندازه مقدار و توزیع دستورات" .sp تمامی توزیع‌ها از فایل پیکربندی مشخص‌شده توسط کاربر با گزینه \(dq\-\-cfg_cmd\(dq خوانده می‌شوند. در صورتی که فایلی تعیین نشود، memaslap با مقادیر پیش‌فرض (اندازه کلید = ۶۴، اندازه مقدار = ۱۰۲۴ و نسبت get/set = 9:1) اجرا خواهد شد. برای مشاهده چگونگی ویرایش فایل، به بخش \(dqفایل پیکربندی\(dq مراجعه نمایید. .sp حداقل اندازه کلید ۱۶ بایت و حداکثر آن ۲۵۰ بایت است. دقت نسبت‌ها ۰.۰۰۱ است و درصد توزیع تا ۳ رقم اعشار گرد می‌شود. .sp حداقل اندازه مقدار ۱ بایت و حداکثر آن ۱ مگابایت است. دقت نسبت‌ها ۰.۰۰۱ است و درصد توزیع تا ۳ رقم اعشار گرد می‌شود. در حال حاضر memaslap تنها دستورات set و get را ارزیابی می‌کند و توانایی تست ۱۰۰٪ دستورات set و ۱۰۰٪ دستورات get را دارد. در حالت ۱۰۰٪ get، ابتدا تعدادی شیء از پیش روی سرور مقداردهی می‌شوند. .SS "چندنخی و همزمانی" .sp کارایی بالای memaslap مدیون زمان‌بندی ویژه نخ‌ها و همزمانی‌ها است. تعیین تعداد مناسب آن‌ها اهمیت بسزایی دارد. تعداد پیش‌فرض نخ‌ها ۱ و تعداد پیش‌فرض همزمانی‌ها ۱۶ است. کاربر می‌تواند با گزینه‌های \(dq\-\-threads\(dq و \(dq\-\-concurrency\(dq این مقادیر را تنظیم کند. .sp اگر سیستم از تنظیم وابستگی پردازنده پشتیبانی کند و تعداد نخ‌های تعیین‌شده بیشتر از ۱ باشد، memaslap تلاش می‌کند هر نخ را به یک هسته پردازنده مجزا متصل نماید. بنابراین برای دستیابی به بالاترین کارایی، توصیه می‌شود تعداد نخ‌ها برابر با تعداد هسته‌های پردازنده تنظیم شود. تعداد نخ‌ها می‌تواند کمتر یا بیشتر از تعداد هسته‌ها نیز باشد. با توجه به محدودیت‌های پیاده‌سازی، تعداد همزمانی‌ها باید مضربی از تعداد نخ‌ها باشد. .INDENT 0.0 .IP 1. 3 برای سیستمی با ۸ هسته پردازنده: .UNINDENT .sp برای مثال: .sp \-\-threads=2 \-\-concurrency=128 .sp \-\-threads=8 \-\-concurrency=128 .sp \-\-threads=8 \-\-concurrency=256 .sp \-\-threads=12 \-\-concurrency=144 .INDENT 0.0 .IP 2. 3 برای سیستمی با ۱۶ هسته پردازنده: .UNINDENT .sp برای مثال: .sp \-\-threads=8 \-\-concurrency=128 .sp \-\-threads=16 \-\-concurrency=256 .sp \-\-threads=16 \-\-concurrency=512 .sp \-\-threads=24 \-\-concurrency=288 .sp ابزار memaslap هنگام سنجش کارایی سرورهای memcached عملکرد بسیار بالایی از خود نشان می‌دهد. در اکثر مواقع گلوگاه اصلی پهنای باند شبکه یا خود سرور است. اگر به هر دلیلی نیاز به محدود کردن کارایی memaslap داشته باشید، دو راهکار وجود دارد: .sp کاهش تعداد نخ‌ها و همزمانی‌ها. استفاده از گزینه \(dq\-\-tps\(dq که memaslap برای محدودسازی توان عملیاتی ارائه می‌دهد. این گزینه به کاربر امکان می‌دهد توان عملیاتی را روی میزانی معین ثابت نگه دارد. به عنوان مثال، اگر حداکثر توان ۵۰ هزار عملیات در ثانیه (kops/s) باشد، می‌توانید با این گزینه مقداری برابر یا کمتر از سقف توان را اعمال کنید. .SS "اندازه پنجره کاری" .sp در اغلب شرایط نیازی به تعیین دستی اندازه پنجره نیست. اندازه پیش‌فرض پنجره 10k است. برای Schooner Memcached کاربر می‌تواند اندازه‌های پنجره متفاوتی را متناسب با سناریوی آزمون جهت سنجش نرخ خطای کش بین ۰٪ تا ۱۰۰٪ تعیین کند. فرمول محاسبه اندازه پنجره به صورت زیر است: .sp فرض کنید اندازه کلید ۱۲۸ بایت، اندازه مقدار ۲۰۴۸ بایت و همزمانی ۱۲۸ باشد: .sp ۱. برای کش کوچک (cache_size=1M) با نرخ خطای ۱۰۰٪ (فراخوانی داده‌ها از SSD): win_size=10k .INDENT 0.0 .IP 2. 3 برای کش با ظرفیت 4G: .UNINDENT .sp (۱) نرخ خطای کش ۰٪: .sp win_size=8k .sp (۲) نرخ خطای کش ۵٪: .sp win_size=11k .INDENT 0.0 .IP 3. 3 برای کش با ظرفیت 16G: .UNINDENT .sp (۱) نرخ خطای کش ۰٪: .sp win_size=32k .sp (۲) نرخ خطای کش ۵٪: .sp win_size=46k .sp فرمول محاسبه اندازه پنجره برای نرخ خطای ۰٪: .sp cache_size / concurrency / (key_size + value_size) * 0.5 .sp فرمول محاسبه اندازه پنجره برای نرخ خطای ۵٪: .sp cache_size / concurrency / (key_size + value_size) * 0.7 .SS "اعتبارسنجی" .sp ابزار Memslap از اعتبارسنجی صحت داده‌ها و زمان انقضا پشتیبانی می‌کند. کاربر می‌تواند از \(dq\-\-verify=\(dq یا \(dq\-v\(dq برای تعیین نسبت اعتبارسنجی داده‌ها استفاده کند (از نظر تئوری تا ۱۰۰٪ اعتبارسنجی داده‌ها). همچنین با \(dq\-\-exp_verify=\(dq یا \(dq\-e\(dq می‌توان نسبت اعتبارسنجی زمان انقضا را مشخص کرد. با فعال کردن گزینه \(dq\-\-verbose\(dq جزئیات خطاهای اعتبارسنجی نمایش داده می‌شود. .sp برای مثال: \-\-exp_verify=0.01 \-\-verify=0.1 به این معنی است که ۱٪ اشیا با زمان انقضا ثبت می‌شوند و ۱۰٪ اشیای خوانده‌شده اعتبارسنجی خواهند شد. در صورت دریافت شیء، memaslap مقدار و زمان انقضای آن را بررسی و تایید می‌کند. .SS "چندسروری و چندپیکربندی" .sp ابزار Memslap بر مبنای نخ‌های مستقل از چند سرور پشتیبانی می‌کند. محدودیت ساختاری این است که تعداد سرورها نمی‌تواند بیشتر از تعداد نخ‌ها باشد. Memslap حداقل یک نخ را به ازای هر سرور اختصاص می‌دهد. برای معرفی چندین سرور از گزینه \(dq\-\-servers=\(dq یا \(dq\-s\(dq استفاده کنید. .sp برای مثال: .sp \-\-servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 \-\-threads=6 \-\-concurrency=36 .sp دستور فوق بدین معناست که ۶ نخ اجرا می‌شوند، هر نخ دارای ۶ تسک همزمانی است، نخ‌های ۰ و ۳ با سرور ۰ (10.1.1.1)، نخ‌های ۱ و ۴ با سرور ۱ (10.1.1.2) و نخ‌های ۲ و ۵ با سرور ۲ (10.1.1.3) ارتباط برقرار می‌کنند. .sp تمام نخ‌ها و همزمانی‌ها در memaslap مستقل و خودگردان هستند. .sp همچنین کاربر می‌تواند چندین نمونه مستقل از memaslap را اجرا کند. اجرای همزمان memaslap روی کلاینت‌های مختلف برای اتصال به یک سرور یکسان memcached امکان‌پذیر است؛ توصیه می‌شود نمونه‌های memaslap روی ماشین‌های مجزا با پیکربندی مشابه اجرا شوند. .SS "اجرا در حالت تعداد دستورات یا حالت زمانی" .sp به طور پیش‌فرض memaslap در حالت زمانی اجرا می‌شود و مدت زمان پیش‌فرض ۱۰ دقیقه است که با اتمام زمان، برنامه خاتمه می‌یابد. نباید هر دو حالت تعداد دستور و زمان را همزمان تعیین کنید، بلکه تنها یکی را انتخاب نمایید. .sp برای مثال: .sp \-\-time=30s (اجرای تست به مدت ۳۰ ثانیه) .sp \-\-execute_number=100000 (خروج از برنامه پس از اجرای ۱۰۰٬۰۰۰ دستور) .SS "تخلیه دوره‌ای اطلاعات آماری" .sp کاربر می‌تواند از \(dq\-\-stat_freq=\(dq یا \(dq\-S\(dq برای تنظیم تناوب ثبت آمار استفاده کند. .sp برای مثال: .sp \-\-stat_freq=20s .sp ابزار Memslap هر ۲۰ ثانیه یک‌بار آمار دستورات get و set را چاپ می‌کند. .sp برای مشاهده جزئیات ساختار خروجی، بخش \(dqفرمت خروجی\(dq را ملاحظه کنید. .SS "دریافت چندگانه (Multi-get)" .sp کاربر می‌تواند با \(dq\-\-division=\(dq یا \(dq\-d\(dq تعداد کلیدهای دریافت چندگانه (multi\-get) در هر نوبت را مشخص کند. به طور پیش‌فرض، get تک‌موردی روی TCP انجام می‌شود. اعتبارسنجی داده‌ها و زمان انقضا برای multi\-get نیز پشتیبانی می‌شود. .sp ابزار Memslap آزمون multi\-get را روی هر دو پروتکل TCP و UDP پوشش می‌دهد. با توجه به تفاوت پیاده‌سازی پروتکل‌های ASCII و باینری: در پروتکل ASCII یک دستور \(dqmulti\-get\(dq ارسال می‌شود، در حالی که در پروتکل باینری چندین دستور تک‌موردی get به صورت تجمیعی تحت عنوان \(dqmulti\-get\(dq فرستاده می‌شوند. .SS "پروتکل‌های UDP و TCP" .sp ابزار Memslap از هر دو پروتکل UDP و TCP پشتیبانی می‌کند. در حالت TCP، در صورت قطع سوکت، memaslap به طور خودکار متصل نمی‌شود و در صورت قطعی تمام اتصالات یا کرش سرور، خارج خواهد شد؛ مگر اینکه گزینه \(dq\-\-reconnect\(dq برای اتصال مجدد تنظیم شده باشد. .sp با گزینه \(dq\-\-udp\(dq می‌توان حالت UDP را فعال کرد؛ با این حال UDP محدودیت‌های زیر را دارد: .sp حجم داده ارسالی با UDP نمی‌تواند بیشتر از ۱۴۰۰ بایت باشد. .sp پروتکل باینری از UDP پشتیبانی نمی‌کند زیرا پیاده‌سازی باینری memcached فاقد این قابلیت است. .sp پروتکل UDP از اتصال مجدد پشتیبانی نمی‌کند. .SS "آزمون فیس‌بوک (Facebook test)" .sp ثبت داده‌ها با TCP و دریافت چندگانه با UDP. برای فعال‌سازی از گزینه‌های زیر استفاده کنید: .sp \(dq\-\-facebook \-\-division=50\(dq .sp برای ایجاد هزاران اتصال TCP، گزینه زیر را تعیین کنید: .sp \(dq\-\-conn_sock=\(dq .sp برای مثال: \-\-facebook \-\-division=50 \-\-conn_sock=200 .sp دستور فوق بدین معناست که memaslap آزمون فیس‌بوک را اجرا می‌کند و هر همزمانی دارای ۲۰۰ اتصال سوکت TCP و یک سوکت UDP خواهد بود. .sp ابزار Memslap اشیا را با سوکت TCP ذخیره کرده و در هر نوبت ۵۰ شیء را با سوکت UDP به صورت چندگانه دریافت می‌کند. .sp در صورت تعیین \(dq\-\-division=50\(dq، اندازه کلید باید کمتر از ۲۵ بایت باشد زیرا حداکثر اندازه بسته UDP برابر با ۱۴۰۰ بایت است. .SS "آزمون رونوشت‌برداری (Replication test)" .sp برای این آزمون، کاربر باید حداقل دو سرور memcached را معرفی کند و با گزینه \(dq\-\-rep_write=\(dq قابلیت را فعال نماید. .sp برای مثال: .sp \-\-servers=10.1.1.1:11211,10.1.1.2:11212 \-\-rep_write=2 .sp دستور فوق بدین معناست که با ۲ سرور رونوشت، memaslap داده‌ها را روی هر دو سرور ذخیره کرده و داده‌های ثبت‌شده روی سرور ۰ را از سرور ۱، و داده‌های سرور ۱ را از سرور ۰ می‌خواند. در صورت خرابی سرور ۰، داده‌ها تنها از سرور ۱ خوانده می‌شوند و با بازگشت سرور ۰، اتصال به آن مجدداً برقرار می‌گردد. در صورت خرابی هر دو سرور، memaslap متوقف خواهد شد. .SS "پشتیبانی از هزاران اتصال TCP" .sp اجرای memaslap با گزینه \(dq\-\-conn_sock=\(dq یا \(dq\-n\(dq این قابلیت را فعال می‌کند. اطمینان حاصل کنید که سیستم عامل شما توانایی باز کردن هزاران فایل و ایجاد هزاران سوکت را دارد. این حالت در صورت قطعی سوکت‌ها از اتصال مجدد پشتیبانی نمی‌کند. .sp برای مثال: .sp \-\-threads=8 \-\-concurrency=128 \-\-conn_sock=128 .sp دستور فوق بدین معناست که memaslap با ۸ نخ اجرا می‌شود، هر نخ دارای ۱۶ همزمانی و هر همزمانی دارای ۱۲۸ اتصال سوکت TCP است که مجموع کل اتصالات به ۱۲۸ * ۱۲۸ = ۱۶۳۸۴ می‌رسد. .SS "پشتیبانی از پروتکل دودویی (Binary Protocol)" .sp با گزینه \(dq\-\-binary\(dq یا \(dq\-B\(dq این ویژگی فعال می‌شود. تمامی قابلیت‌های فوق به جز UDP پشتیبانی می‌شوند (زیرا memcached از نسخه 1.3.3 پروتکل باینری UDP را پیاده‌سازی نکرده است). .sp برای مثال: .sp \-\-binary .sp از آنجا که memcached پروتکل باینری UDP را پیاده‌سازی نکرده، memaslap از UDP در این حالت پشتیبانی نمی‌کند. علاوه بر این، در نسخه 1.3.3 دریافت چندگانه واقعی باینری وجود ندارد و در صورت استفاده از \(dq\-\-division=50\(dq، ۵۰ دستور get تکی به صورت همزمان ارسال می‌شوند. .SH "فایل پیکربندی (CONFIGURATION FILE)" .sp این بخش فرمت فایل پیکربندی را شرح می‌دهد. در صورتی که فایلی تعیین نشود، memaslap به طور پیش‌فرض فایل پیکربندی موجود در مسیر ‎~/.memaslap.cnf را می‌خواند. .sp نمونه‌ای از ساختار فایل پیکربندی در زیر آمده است: .INDENT 0.0 .INDENT 3.5 .sp .EX \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- #comments should start with \(aq#\(aq #key #start_len end_len proportion # #key length range from start_len to end_len #start_len must be equal to or greater than 16 #end_len must be equal to or less than 250 #start_len must be equal to or greater than end_len #memaslap will generate keys according to the key range #proportion: indicates keys generated from one range accounts for the total generated keys # #example1: key range 16~100 accounts for 80% # key range 101~200 accounts for 10% # key range 201~250 accounts for 10% # total should be 1 (0.8+0.1+0.1 = 1) # # 16 100 0.8 # 101 200 0.1 # 201 249 0.1 # #example2: all keys length are 128 bytes # # 128 128 1 key 128 128 1 #value #start_len end_len proportion # #value length range from start_len to end_len #start_len must be equal to or greater than 1 #end_len must be equal to or less than 1M #start_len must be equal to or greater than end_len #memaslap will generate values according to the value range #proportion: indicates values generated from one range accounts for the total generated values # #example1: value range 1~1000 accounts for 80% # value range 1001~10000 accounts for 10% # value range 10001~100000 accounts for 10% # total should be 1 (0.8+0.1+0.1 = 1) # # 1 1000 0.8 # 1001 10000 0.1 # 10001 100000 0.1 # #example2: all value length are 128 bytes # # 128 128 1 value 2048 2048 1 #cmd #cmd_type cmd_proportion # #currently memaslap only testss get and set command. # #cmd_type #set 0 #get 1 # #example: set command accounts for 50% # get command accounts for 50% # total should be 1 (0.5+0.5 = 1) # # cmd # 0 0.5 # 1 0.5 cmd 0 0.1 1.0 0.9 .EE .UNINDENT .UNINDENT .SH "فرمت خروجی (FORMAT OF OUTPUT)" .sp در آغاز، memaslap برخی اطلاعات پیکربندی را به صورت زیر نمایش می‌دهد: .sp servers : 127.0.0.1:11211 .sp threads count: 1 .sp concurrency: 16 .sp run time: 20s .sp windows size: 10k .sp set proportion: set_prop=0.10 .sp get proportion: get_prop=0.90 .SS "توضیح متغیرها" .sp servers .INDENT 0.0 .INDENT 3.5 سرورهای استفاده‌شده توسط memaslap. .UNINDENT .UNINDENT .sp threads count .INDENT 0.0 .INDENT 3.5 تعداد نخ‌های اجرایی memaslap. .UNINDENT .UNINDENT .sp concurrency .INDENT 0.0 .INDENT 3.5 تعداد تسک‌های همزمانی فعال. .UNINDENT .UNINDENT .sp run time .INDENT 0.0 .INDENT 3.5 مدت زمان کل اجرای آزمون. .UNINDENT .UNINDENT .sp windows size .INDENT 0.0 .INDENT 3.5 اندازه پنجره کاری هر همزمانی. .UNINDENT .UNINDENT .sp set proportion .INDENT 0.0 .INDENT 3.5 نسبت و سهم دستورات set. .UNINDENT .UNINDENT .sp get proportion .INDENT 0.0 .INDENT 3.5 نسبت و سهم دستورات get. .UNINDENT .UNINDENT .sp خروجی آماری پویا به صورت زیر نمایش داده می‌شود: .INDENT 0.0 .INDENT 3.5 .sp .EX \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Get Statistics Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) Avg(us) Std_dev Geo_dist Period 5 345826 69165 65.3 0 27 2198 203 95.43 177.29 Global 20 1257935 62896 71.8 0 26 3791 224 117.79 192.60 Set Statistics Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) Avg(us) Std_dev Geo_dist Period 5 38425 7685 7.3 0 42 628 240 88.05 220.21 Global 20 139780 6989 8.0 0 37 3790 253 117.93 224.83 Total Statistics Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) Avg(us) Std_dev Geo_dist Period 5 384252 76850 72.5 0 27 2198 207 94.72 181.18 Global 20 1397720 69886 79.7 0 26 3791 227 117.93 195.60 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .EE .UNINDENT .UNINDENT .SS "توضیح متغیرهای آماری" .sp Get Statistics .INDENT 0.0 .INDENT 3.5 اطلاعات آماری مربوط به دستورات get. .UNINDENT .UNINDENT .sp Set Statistics .INDENT 0.0 .INDENT 3.5 اطلاعات آماری مربوط به دستورات set. .UNINDENT .UNINDENT .sp Total Statistics .INDENT 0.0 .INDENT 3.5 اطلاعات آماری تجمیعی هر دو دستور get و set. .UNINDENT .UNINDENT .sp Period .INDENT 0.0 .INDENT 3.5 نتایج مربوط به بازه زمانی اخیر. .UNINDENT .UNINDENT .sp Global .INDENT 0.0 .INDENT 3.5 نتایج تجمیعی از آغاز اجرای آزمون. .UNINDENT .UNINDENT .sp Ops .INDENT 0.0 .INDENT 3.5 تعداد کل عملیات‌های انجام‌شده. .UNINDENT .UNINDENT .sp TPS .INDENT 0.0 .INDENT 3.5 توان عملیاتی بر حسب عملیات در ثانیه (Operations/Second). .UNINDENT .UNINDENT .sp Net .INDENT 0.0 .INDENT 3.5 نرخ تبادل داده در شبکه بر حسب مگابایت بر ثانیه. .UNINDENT .UNINDENT .sp Get_miss .INDENT 0.0 .INDENT 3.5 تعداد اشیایی که در کش یافت نشدند. .UNINDENT .UNINDENT .sp Min .INDENT 0.0 .INDENT 3.5 حداقل زمان پاسخ‌دهی (میکروثانیه). .UNINDENT .UNINDENT .sp Max .INDENT 0.0 .INDENT 3.5 حداکثر زمان پاسخ‌دهی (میکروثانیه). .UNINDENT .UNINDENT .sp Avg .INDENT 0.0 .INDENT 3.5 میانگین زمان پاسخ‌دهی (میکروثانیه). .UNINDENT .UNINDENT .sp Std_dev .INDENT 0.0 .INDENT 3.5 انحراف معیار زمان پاسخ‌دهی. .UNINDENT .UNINDENT .sp Geo_dist .INDENT 0.0 .INDENT 3.5 توزیع هندسی بر مبنای تابع نمایی طبیعی. .UNINDENT .UNINDENT .sp در پایان آزمون، memaslap خروجی جامعی مشابه زیر تولید می‌کند: .INDENT 0.0 .INDENT 3.5 .sp .EX \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Get Statistics (1257956 events) Min: 26 Max: 3791 Avg: 224 Geo: 192.60 Std: 116.23 Log2 Dist: 4: 0 10 84490 215345 8: 484890 459823 12543 824 12: 31 Set Statistics (139782 events) Min: 37 Max: 3790 Avg: 253 Geo: 224.84 Std: 116.83 Log2 Dist: 4: 0 0 4200 16988 8: 50784 65574 2064 167 12: 5 Total Statistics (1397738 events) Min: 26 Max: 3791 Avg: 227 Geo: 195.60 Std: 116.60 Log2 Dist: 4: 0 10 88690 232333 8: 535674 525397 14607 991 12: 36 cmd_get: 1257969 cmd_set: 139785 get_misses: 0 verify_misses: 0 verify_failed: 0 expired_get: 0 unexpired_unget: 0 written_bytes: 242516030 read_bytes: 1003702556 object_bytes: 152086080 packet_disorder: 0 packet_drop: 0 udp_timeout: 0 Run time: 20.0s Ops: 1397754 TPS: 69817 Net_rate: 59.4M/s \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .EE .UNINDENT .UNINDENT .SS "توضیح پارامترهای خروجی نهایی" .sp Get Statistics .INDENT 0.0 .INDENT 3.5 آمار زمان پاسخ‌دهی دستورات get. .UNINDENT .UNINDENT .sp Set Statistics .INDENT 0.0 .INDENT 3.5 آمار زمان پاسخ‌دهی دستورات set. .UNINDENT .UNINDENT .sp Total Statistics .INDENT 0.0 .INDENT 3.5 آمار تجمیعی زمان پاسخ‌دهی هر دو دستور get و set. .UNINDENT .UNINDENT .sp Min .INDENT 0.0 .INDENT 3.5 حداقل زمان پاسخ‌دهی ثبت‌شده. .UNINDENT .UNINDENT .sp Max .INDENT 0.0 .INDENT 3.5 حداکثر زمان پاسخ‌دهی ثبت‌شده. .UNINDENT .UNINDENT .sp Avg .INDENT 0.0 .INDENT 3.5 میانگین زمان پاسخ‌دهی در طول آزمون. .UNINDENT .UNINDENT .sp Std .INDENT 0.0 .INDENT 3.5 انحراف معیار زمان پاسخ‌دهی. .UNINDENT .UNINDENT .sp Log2 Dist .INDENT 0.0 .INDENT 3.5 توزیع هندسی بر مبنای لگاریتم ۲. .UNINDENT .UNINDENT .sp cmd_get .INDENT 0.0 .INDENT 3.5 تعداد کل دستورات get انجام‌شده. .UNINDENT .UNINDENT .sp cmd_set .INDENT 0.0 .INDENT 3.5 تعداد کل دستورات set انجام‌شده. .UNINDENT .UNINDENT .sp get_misses .INDENT 0.0 .INDENT 3.5 تعداد اشیایی که از سرور دریافت نشدند (miss). .UNINDENT .UNINDENT .sp verify_misses .INDENT 0.0 .INDENT 3.5 تعداد اشیایی که نیاز به اعتبارسنجی داشتند اما دریافت نشدند. .UNINDENT .UNINDENT .sp verify_failed .INDENT 0.0 .INDENT 3.5 تعداد اشیایی که مقادیر آن‌ها نامعتبر یا مغایر بود. .UNINDENT .UNINDENT .sp expired_get .INDENT 0.0 .INDENT 3.5 تعداد اشیایی که منقضی شده بودند اما همچنان دریافت شدند. .UNINDENT .UNINDENT .sp unexpired_unget .INDENT 0.0 .INDENT 3.5 تعداد اشیایی که منقضی نشده بودند ولی دریافت نشدند. .UNINDENT .UNINDENT .sp written_bytes .INDENT 0.0 .INDENT 3.5 مجموع بایت‌های نوشته‌شده روی سرور. .UNINDENT .UNINDENT .sp read_bytes .INDENT 0.0 .INDENT 3.5 مجموع بایت‌های خوانده‌شده از سرور. .UNINDENT .UNINDENT .sp object_bytes .INDENT 0.0 .INDENT 3.5 مجموع حجم کل اشیا بر حسب بایت. .UNINDENT .UNINDENT .sp packet_disorder .INDENT 0.0 .INDENT 3.5 تعداد بسته‌های UDP که خارج از ترتیب دریافت شدند. .UNINDENT .UNINDENT .sp packet_drop .INDENT 0.0 .INDENT 3.5 تعداد بسته‌های UDP از دست رفته (Drop). .UNINDENT .UNINDENT .sp udp_timeout .INDENT 0.0 .INDENT 3.5 تعداد دفعات رخداد انقضای زمان انتظار در پروتکل UDP. .UNINDENT .UNINDENT .sp Run time .INDENT 0.0 .INDENT 3.5 مدت زمان کل اجرای تست. .UNINDENT .UNINDENT .sp Ops .INDENT 0.0 .INDENT 3.5 مجموع کل عملیات‌ها. .UNINDENT .UNINDENT .sp TPS .INDENT 0.0 .INDENT 3.5 توان عملیاتی بر حسب عملیات در ثانیه. .UNINDENT .UNINDENT .sp Net_rate .INDENT 0.0 .INDENT 3.5 میانگین نرخ تبادل شبکه. .UNINDENT .UNINDENT .SH "گزینه‌ها (OPTIONS)" .INDENT 0.0 .TP .B \-s, \-\-servers= فهرستی از یک یا چند سرور برای اتصال. تعداد سرورها باید کمتر یا مساوی تعداد نخ‌ها باشد. مثال: ‎\-\-servers=localhost:1234,localhost:11211 .TP .B \-T, \-\-threads= تعداد نخ‌های اجرایی؛ ترجیحاً برابر با تعداد هسته‌های پردازنده تنظیم شود. پیش‌فرض 8. .TP .B \-c, \-\-concurrency= تعداد تسک‌های همزمانی برای شبیه‌سازی بار کاری. پیش‌فرض 128. .TP .B \-n, \-\-conn_sock= تعداد سوکت‌های TCP به ازای هر همزمانی. پیش‌فرض 1. .TP .B \-x, \-\-execute_number= تعداد کل عملیات‌ها (get و set) برای اجرای آزمون. پیش‌فرض 1000000. .TP .B \-t, \-\-time= مدت زمان اجرای آزمون با پسوندهای: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز). مثال: ‎\-\-time=2h .TP .B \-F, \-\-cfg_cmd= بارگذاری فایل پیکربندی جهت دریافت توزیع دستورات، کلیدها و مقادیر. .TP .B \-w, \-\-win_size= اندازه پنجره تسک برای هر همزمانی با پسوندهای K یا M. مثال: ‎\-\-win_size=10k. پیش‌فرض 10k. .TP .B \-X, \-\-fixed_size= اندازه ثابت و یکنواخت برای مقدارها (Value). .TP .B \-v, \-\-verify= نسبت اعتبارسنجی داده‌ها. مثال: ‎\-\-verify=0.01 .TP .B \-d, \-\-division= تعداد کلیدها در هر بار دریافت چندگانه (multi\-get). پیش‌فرض 1 به معنی دریافت تکی است. .TP .B \-S, \-\-stat_freq= تناوب زمانی تخلیه و ثبت اطلاعات آماری با پسوندهای: s (ثانیه)، m (دقیقه). مثال: ‎\-\-stat_freq=10s .TP .B \-e, \-\-exp_verify= نسبت اشیای دارای زمان انقضا. مثال: ‎\-\-exp_verify=0.01. پیش‌فرض بدون زمان انقضا. .TP .B \-o, \-\-overwrite= نسبت اشیایی که نیاز به بازنویسی دارند. مثال: ‎\-\-overwrite=0.01. پیش‌فرض ۰٪ (عدم بازنویسی). .UNINDENT .INDENT 0.0 .TP .B \-R\fP,\fB \-\-reconnect آزمون اتصال مجدد؛ در صورت بسته شدن اتصال سوکت، مجدداً متصل می‌شود. .TP .B \-U\fP,\fB \-\-udp آزمون روی UDP؛ به طور پیش‌فرض از TCP استفاده می‌شود. پورت TCP و UDP سرور باید یکسان باشند. .TP .B \-a\fP,\fB \-\-facebook فعال‌سازی آزمون فیس‌بوک (ذخیره با TCP و دریافت چندگانه با UDP). .TP .B \-B\fP,\fB \-\-binary فعال‌سازی پروتکل باینری (دودویی). به طور پیش‌فرض پروتکل ASCII استفاده می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-P, \-\-tps= توان عملیاتی مورد انتظار با پسوند K. مثال: ‎\-\-tps=10k .TP .B \-p, \-\-rep_write= تعداد n سرور نخست که قابلیت نوشتن داده‌ها را دارند. مثال: ‎\-\-rep_write=2 .UNINDENT .INDENT 0.0 .TP .B \-b\fP,\fB \-\-verbose نمایش اطلاعات و جزئیات بیشتر در صورت شکست اعتبارسنجی. .TP .B \-h\fP,\fB \-\-help نمایش پیام راهنما و خروج. .TP .B \-V\fP,\fB \-\-version نمایش نسخه برنامه و خروج. .UNINDENT .SH "مثال‌ها (EXAMPLES)" .sp memaslap \-s 127.0.0.1:11211 \-S 5s .sp memaslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b .sp memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2 .sp memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k .sp memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40 .sp memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m .sp memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2 .SH "نکات (NOTES)" .sp پیشوند این برنامه متغیر است؛ یعنی می‌تواند در زمان کامپایل و ساخت برنامه پیکربندی شود. .sp به طور معمول برنامه‌های کلاینت \fBlibmemcached\-awesome\fP دارای پیشوند \fBmem\fP هستند، مانند \fBmemcat\fP یا \fBmemcp\fP\&. .sp با این حال می‌توان آن را پیکربندی کرد تا پیشوند با چیز دیگری مانند \fBmc\fP جایگزین شود؛ در این صورت برنامه‌های کلاینت \fBlibmemcached\-awesome\fP به ترتیب \fBmccat\fP، \fBmccp\fP و غیره نامیده خواهند شد. .sp این یک برنامه مشارکتی (contributed) است. .sp این برنامه از ساختار و الگوی استاندارد فلگ‌ها/گزینه‌ها پیروی نمی‌کند. .SH "همچنین ببینید (SEE ALSO)" .sp \fBmemcached(1)\fP \%، \fBlibmemcached(3)\fP \% .\" End of generated man page.