MARIADB-SLAP(1) MariaDB Database System MARIADB-SLAP(1)

mariadb-slap - برنامه شبیه‌ساز بار کلاینت (دستور mariadb-slap اکنون یک پیوند نمادین به mariadb-slap است)

mariadb-slap [options]

mariadb-slap یک برنامه تشخیصی است که برای شبیه‌سازی بار کلاینت بر روی سرور MariaDB و گزارش زمان‌بندی هر مرحله طراحی شده است. این ابزار به گونه‌ای عمل می‌کند که گویی چندین کلاینت هم‌زمان در حال دسترسی به سرور هستند.

دستور mariadb-slap را به این صورت فراخوانی کنید:

shell> mariadb-slap [options]

برخی گزینه‌ها مانند --create یا --query به شما امکان می‌دهند رشته‌ای حاوی یک دستور SQL یا فایلی حاوی چندین دستور را مشخص کنید. اگر فایلی را مشخص کنید، به صورت پیش‌فرض باید در هر خط یک دستور قرار داشته باشد. (یعنی جداکننده پیش‌فرض و ضمنی دستورها نویسه خط جدید است.) از گزینه --delimiter برای تعیین یک جداکننده متفاوت استفاده کنید؛ این کار به شما امکان می‌دهد دستورهایی بنویسید که در چند خط امتداد دارند یا چندین دستور را در یک خط قرار دهید. شما نمی‌توانید در فایل از کامنت‌ها استفاده کنید؛ چرا که mariadb-slap آن‌ها را درک نمی‌کند.

mariadb-slap در سه مرحله اجرا می‌شود:

1.ایجاد طرحواره (schema)، جدول و در صورت تمایل هرگونه برنامه یا داده ذخیره‌شده‌ای که می‌خواهید برای آزمون استفاده کنید. این مرحله از یک اتصال کلاینت منفرد استفاده می‌کند.
2.اجرای آزمون بار. این مرحله می‌تواند از چندین اتصال کلاینت استفاده کند.
3.پاک‌سازی (قطع اتصال، حذف جدول در صورت مشخص شدن). این مرحله از یک اتصال کلاینت منفرد استفاده می‌کند.

مثال‌ها:

دستورهای SQL ایجاد و پرس‌وجوی دلخواه خود را مشخص کنید، با ۵۰ کلاینت که پرس‌وجو می‌کنند و ۲۰۰ دستور select برای هر کلاینت:

mariadb-slap --delimiter=";" \
  --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" \
  --query="SELECT * FROM a" --concurrency=50 --iterations=200

اجازه دهید mariadb-slap دستور SQL پرس‌وجو را با جدولی شامل دو ستون INT و سه ستون VARCHAR بسازد. از پنج کلاینت استفاده کنید که هر کدام ۲۰ بار پرس‌وجو می‌کنند. جدول را ایجاد نکنید و داده‌ها را درج نکنید (یعنی از طرحواره و داده‌های آزمون قبلی استفاده شود):

mariadb-slap --concurrency=5 --iterations=20 \
  --number-int-cols=2 --number-char-cols=3 \
  --auto-generate-sql

به برنامه بگویید دستورهای SQL ایجاد، درج و پرس‌وجو را از فایل‌های مشخص‌شده بارگذاری کند، به طوری که فایل create.sql شامل چندین دستور ایجاد جدول باشد که با ';' از هم جدا شده‌اند و چندین دستور درج با جداکننده ';'. فایل --query شامل چندین پرس‌وجو با جداکننده ';' خواهد بود. تمام دستورهای بارگذاری را اجرا کنید، سپس تمام پرس‌وجوهای فایل پرس‌وجو را با پنج کلاینت (هر کدام پنج بار) اجرا کنید:

mariadb-slap --concurrency=5 \
  --iterations=5 --query=query.sql --create=create.sql \
  --delimiter=";"

mariadb-slap از گزینه‌های زیر پشتیبانی می‌کند که می‌توان آن‌ها را در خط فرمان یا در گروه‌های [mariadb-slap] و [client] فایل‌های تنظیمات مشخص کرد. mariadb-slap همچنین از گزینه‌های پردازش فایل‌های تنظیمات پشتیبانی می‌کند.

•--help, -?

نمایش پیام راهنما و خروج.

•--auto-generate-sql, -a

تولید خودکار دستورهای SQL در صورتی که در فایل‌ها یا از طریق گزینه‌های خط فرمان ارائه نشده باشند.

•--auto-generate-sql-add-autoincrement

افزودن یک ستون AUTO_INCREMENT به جدول‌های تولیدشده به صورت خودکار.

•--auto-generate-sql-execute-number=N

مشخص کردن تعداد پرس‌وجوهایی که باید به صورت خودکار تولید شوند.

•--auto-generate-sql-guid-primary

افزودن یک کلید اصلی مبتنی بر GUID به جدول‌های تولیدشده به صورت خودکار.

•--auto-generate-sql-load-type=type

مشخص کردن نوع بار آزمون. مقادیر مجاز عبارتند از: read (پیمایش جدول‌ها)، write (درج در جدول‌ها)، key (خواندن کلیدهای اصلی)، update (به‌روزرسانی کلیدهای اصلی)، یا mixed (نیمی درج، نیمی پیمایش با select). مقدار پیش‌فرض mixed است.

•--auto-generate-sql-secondary-indexes=N

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

•--auto-generate-sql-unique-query-number=N

تعداد پرس‌وجوهای متفاوتی که برای آزمون‌های خودکار تولید می‌شوند. به عنوان مثال، اگر یک آزمون key را اجرا کنید که ۱۰۰۰ دستور select انجام می‌دهد، می‌توانید از این گزینه با مقدار ۱۰۰۰ برای اجرای ۱۰۰۰ پرس‌وجوی یکتا، یا با مقدار ۵۰ برای اجرای ۵۰ دستور select متفاوت استفاده کنید. مقدار پیش‌فرض ۱۰ است.

•--auto-generate-sql-unique-write-number=N

تعداد پرس‌وجوهای متفاوتی که برای --auto-generate-sql-write-number تولید می‌شوند. مقدار پیش‌فرض ۱۰ است.

•--auto-generate-sql-write-number=N

تعداد درج سطر که در هر رشته (thread) انجام می‌شود. مقدار پیش‌فرض ۱۰۰ است.

•--commit=N

تعداد دستورهایی که قبل از ثبت نهایی (commit) اجرا می‌شوند. مقدار پیش‌فرض 0 است (هیچ commit انجام نمی‌شود).

•--compress, -C

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

•--concurrency=N, -c N

تعداد کلاینت‌هایی که هنگام صدور دستور SELECT شبیه‌سازی می‌شوند.

•--create=value

فایل یا رشته‌ای حاوی دستوری که برای ایجاد جدول استفاده می‌شود.

•--create-schema=value

طرحواره‌ای (schema) که آزمون‌ها باید در آن اجرا شوند.

•--csv[=file_name]

تولید خروجی در قالب مقادیر جداشده با کاما (CSV). خروجی به فایل مشخص‌شده ارسال می‌شود، یا اگر فایلی داده نشود، به خروجی استاندارد هدایت می‌شود.

•--debug[=debug_options], -# [debug_options]

نوشتن یک لاگ اشکال‌زدایی. یک رشتهٔ معمول برای debug_options به صورت 'd:t:o,file_name' است. مقدار پیش‌فرض 'd:t:o,/tmp/mariadb-slap.trace' است.

•--debug-check

چاپ برخی اطلاعات اشکال‌زدایی هنگام خروج برنامه.

•--debug-info, -T

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

•--default-auth=name

پلاگین پیش‌فرض سمت کلاینت برای احراز هویت.

•--defaults-extra-file=filename

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

•--defaults-file=filename

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

•--delimiter=str, -F str

جداکننده‌ای که در دستورهای SQL ارائه‌شده در فایل‌ها یا از طریق گزینه‌های خط فرمان استفاده می‌شود.

•--detach=N

جدا کردن (بستن و بازگشایی مجدد) هر اتصال پس از هر N دستور. مقدار پیش‌فرض 0 است (اتصالات جدا نمی‌شوند).

•--engine=engine_name, -e engine_name

فهرستی از موتورهای ذخیره‌سازی جداشده با کاما برای استفاده در ایجاد جدول. آزمون برای هر موتور اجرا می‌شود. همچنین می‌توانید گزینه‌ای را برای یک موتور پس از دونقطه مشخص کنید؛ برای مثال memory:max_row=2300.

•--host=host_name, -h host_name

اتصال به سرور MariaDB روی میزبان داده‌شده.

•--init-command=str

دستور SQL برای اجرا هنگام اتصال به سرور MariaDB. هنگام اتصال مجدد به صورت خودکار دوباره اجرا خواهد شد.

•--iterations=N, -i N

تعداد دفعات اجرای آزمون‌ها.

•--no-defaults

عدم خواندن گزینه‌های پیش‌فرض از هیچ فایل تنظیمی. این گزینه باید به عنوان نخستین آرگومان داده شود.

•--no-drop

حذف نکردن هیچ طرحواره‌ای که در طول آزمون پس از پایان آزمون ایجاد شده است.

•--number-char-cols=N, -x N

تعداد ستون‌های VARCHAR مورد استفاده در صورت تعیین --auto-generate-sql.

•--number-int-cols=N, -y N

تعداد ستون‌های INT مورد استفاده در صورت تعیین --auto-generate-sql.

•--number-of-queries=N

محدود کردن هر کلاینت به حدود این تعداد پرس‌وجو. شمارش پرس‌وجوها جداکننده دستورها را مد نظر قرار می‌دهد. برای مثال، اگر mariadb-slap را به صورت زیر فراخوانی کنید، جداکننده ; تشخیص داده می‌شود تا هر بار اجرای رشته پرس‌وجو به عنوان دو پرس‌وجو شمرده شود. در نتیجه، ۵ سطر (نه ۱۰ سطر) درج می‌شود.

shell> mariadb-slap --delimiter=";" --number-of-queries=10
         --query="use test;insert into t values(null)"
•--only-print

عدم اتصال به پایگاه‌های داده. mariadb-slap تنها آنچه را که قرار بود انجام دهد چاپ می‌کند.

•--password[=password], -p[password]

گذرواژه مورد استفاده هنگام اتصال به سرور. اگر از فرم کوتاه گزینه (-p) استفاده می‌کنید، نمی‌توانید بین گزینه و گذرواژه فاصله بگذارید. اگر مقدار password را پس از گزینه --password یا -p در خط فرمان وارد نکنید، mariadb-slap آن را از شما درخواست می‌کند.

مشخص کردن گذرواژه در خط فرمان ناامن تلقی می‌شود. می‌توانید از یک فایل تنظیمات برای اجتناب از وارد کردن گذرواژه در خط فرمان استفاده کنید.

•--pipe, -W

در ویندوز، اتصال به سرور از طریق یک لوله نام‌گذاری‌شده (named pipe). این گزینه تنها در صورتی اعمال می‌شود که سرور از اتصالات لوله نام‌گذاری‌شده پشتیبانی کند.

•--plugin-dir=dir_name

دایرکتوری پلاگین‌های سمت کلاینت.

•--port=port_num, -P port_num

شماره درگاه (پورت) TCP/IP برای برقراری اتصال. در صورت مشخص شدن در خط فرمان بدون سایر ویژگی‌های اتصال، استفاده از --protocol=tcp را تحمیل می‌کند.

•--post-query=value

فایل یا رشته‌ای حاوی دستوری که پس از پایان آزمون‌ها اجرا می‌شود. این اجرا برای اهداف زمان‌بندی محاسبه نمی‌شود.

•--post-system=str

رشته‌ای برای اجرا از طریق system() پس از پایان آزمون‌ها. این اجرا برای اهداف زمان‌بندی محاسبه نمی‌شود.

•--pre-query=value

فایل یا رشته‌ای حاوی دستوری که پیش از اجرای آزمون‌ها اجرا می‌شود. این اجرا برای اهداف زمان‌بندی محاسبه نمی‌شود.

•--pre-system=str

رشته‌ای برای اجرا از طریق system() پیش از اجرای آزمون‌ها. این اجرا برای اهداف زمان‌بندی محاسبه نمی‌شود.

•--print-defaults

چاپ فهرست آرگومان‌های برنامه و خروج. این گزینه باید به عنوان نخستین آرگومان داده شود.

•--protocol={TCP|SOCKET|PIPE|MEMORY}

پروتکل ارتباطی مورد استفاده برای اتصال به سرور. این گزینه زمانی مفید است که سایر پارامترهای اتصال به طور معمول پروتکلی غیر از پروتکل مورد نظر شما را انتخاب کنند.

•--query=value, -q value

فایل یا رشته‌ای حاوی دستور SELECT برای بازیابی داده‌ها.

•--shared-memory-base-name=name

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

•--silent, -s

حالت بی‌صدا. بدون خروجی.

•--socket=path, -S path

برای اتصال به localhost، فایل سوکت یونیکس مورد استفاده، یا در ویندوز، نام لوله نام‌گذاری‌شده مورد استفاده. در صورت مشخص شدن در خط فرمان بدون سایر ویژگی‌های اتصال، استفاده از --protocol=socket را تحمیل می‌کند؛ در ویندوز استفاده از --protocol=pipe را تحمیل می‌کند.

•--ssl

فعال‌سازی SSL برای اتصال (با سایر گزینه‌ها به طور خودکار فعال می‌شود). برای غیرفعال‌سازی از --skip-ssl استفاده کنید.

•--ssl-ca=name

فایل CA با قالب PEM (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-capath=name

دایرکتوری CA (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-cert=name

گواهی X509 با قالب PEM (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-cipher=name

رمز (cipher) اس‌اس‌ال مورد استفاده (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-key=name

کلید X509 با قالب PEM (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-crl=name

فهرست ابطال گواهی (CRL) (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-crlpath=name

مسیر فهرست ابطال گواهی (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-verify-server-cert

بررسی «نام مشترک» (Common Name) سرور در گواهی آن در برابر نام میزبان مورد استفاده هنگام اتصال. این گزینه به صورت پیش‌فرض غیرفعال است.

•--user=user_name, -u user_name

نام کاربری MariaDB مورد استفاده برای اتصال به سرور.

•--verbose, -v

حالت پرگو (verbose). چاپ اطلاعات بیشتر درباره آنچه برنامه انجام می‌دهد. این گزینه می‌تواند چندین بار برای افزایش میزان اطلاعات تکرار شود.

•--version, -V

نمایش اطلاعات نسخه و خروج.

حق نشر 2007-2008 متعلق به MySQL AB، 2008-2010 متعلق به Sun Microsystems, Inc.، 2010-2025 متعلق به MariaDB Foundation

این مستندات یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط «بنیاد نرم‌افزار آزاد» (Free Software Foundation) منتشر شده است؛ نسخه ۲ این مجوز، بازتوزیع کرده و/یا تغییر دهید.

این مستندات به این امید که مفید واقع شود توزیع شده است، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی «قابل فروش بودن» یا «مناسب بودن برای یک هدف خاص». برای جزئیات بیشتر «مجوز عمومی همگانی گنو» را ببینید.

شما باید همراه با این برنامه، نسخه‌ای از «مجوز عمومی همگانی گنو» را دریافت کرده باشید؛ در غیر این صورت، به بنیاد نرم‌افزارهای آزاد با نشانی زیر مکاتبه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA یا به پیوند http://www.gnu.org/licenses مراجعه کنید.

برای کسب اطلاعات بیشتر، لطفاً به مستندات MariaDB که به صورت آنلاین در https://mariadb.com/docs در دسترس است مراجعه کنید.

بنیاد MariaDB (http://www.mariadb.org).

5 March 2025 MariaDB 11.8