'\" t .\" .\" Copyright (c) 2016-2018 Red Hat. .\" Copyright (c) 2009 Max Matveev .\" Copyright (c) 2009 Aconex. All Rights Reserved. .\" .\" This program is free software; you can redistribute it and/or modify it .\" under the terms of the GNU General Public License as published by the .\" Free Software Foundation; either version 2 of the License, or (at your .\" option) any later version. .\" .\" This program is distributed in the hope that it will be useful, but .\" WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY .\" or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License .\" for more details. .\" .\" .TH MMV 5 "" "Performance Co-Pilot" .SH "نام (NAME)" mmv \- مقادیر نگاشت‌شده در حافظه برای Performance Co-Pilot .SH "خلاصه (SYNOPSIS)" .I $PCP_TMP_DIR/mmv/ .SH "توضیحات (DESCRIPTION)" فایل‌های موجود در .I $PCP_TMP_DIR/mmv یا توسط توابع \f2mmv_stats_init\f1(3) و \f2mmv_stats2_init\f1(3) از کتابخانه .B libpcp_mmv تولید می‌شوند، یا توسط یک ماژول زبان بومی مانند Parfait (در Java)، Speed (در Golang) یا Hornet (در Rust). .PP ممکن است چندین فایل در این دایرکتوری وجود داشته باشد که هر فایل نمایانگر یک منبع واحد از معیارهای کارایی (Performance Metrics) است. این معیارها توسط .BR pmdammv (1) جمع‌آوری می‌شوند که آن‌ها را به سایر بخش‌های زیرساخت Performance Co-Pilot صادر می‌کند. .SH "قالب فایل (FILE FORMAT)" هر فایل با سرایند (Header) زیر آغاز می‌شود: .TS box,center; c | c | c n | n | l. Offset Length Name _ 0 4 tag == "MMV\\0" _ 4 4 Version (1 or 2) _ 8 8 Generation 1 _ 16 8 Generation 2 _ 24 4 Number of TOC entries _ 28 4 Flags _ 32 4 Process identifier (PID) _ 36 4 Cluster identifier .TE .PP شماره نسخه مشخص می‌کند که کدام قالب چیدمان نگاشت مورد استفاده قرار گرفته است. دو نسخه وجود دارد که هر دو بسیار شبیه به یکدیگرند، همان‌طور که در ادامه توضیح داده شده است. تنها هدف قالب نسخه ۲ MMV امکان استفاده از نام‌های طولانی‌تر برای معیارها و نمونه‌ها است. اگر نام‌های طولانی‌تر از MMV_NAMEMAX استفاده نمی‌شوند، بهتر است از قالب نسخه ۱ MMV استفاده شود زیرا به نسخه‌های قدیمی‌تر PCP نیز امکان مصرف داده‌ها را می‌دهد. پشتیبانی از قالب نسخه ۲ در انتشار pcp-3.11.4 اضافه شد. .PP شماره‌های نسل (Generation numbers) برچسب‌های زمانی هنگام ایجاد فایل هستند و برای اینکه فایل توسط MMV PMDA پردازش شود باید با یکدیگر مطابقت داشته باشند. .PP فلگ‌ها می‌توانند شیوه‌های رفتار مورد نظر کلاینت از MMV PMDA را مشخص کنند - برای مثال فلگ MMV_FLAG_PROCESS مشخص می‌کند که تنها در صورتی مقادیر صادر شوند که فرآیند مشخص‌شده توسط PID در حال حاضر در حال اجرا باشد. .PP در نهایت، در صورت تنظیم شدن، شناسه کلاستر راهنمایی برای MMV PMDA است تا مشخص کند هنگام تشکیل شناسه‌های تک‌تک معیارها، چه کلاستری باید برای این برنامه استفاده شود. یک شناسه معیار کارایی (به \f2PMDA\f1(3) مراجعه کنید) از شماره دامنه PMDA، شماره کلاستر و شماره‌های آیتم منفرد توصیف‌شده در بخش Metrics تشکیل می‌شود. .PP پس از سرایند حداقل ۲ بخش TOC (جدول محتویات) می‌آید: یک بخش برای معیارها (Metrics) و دیگری برای مقادیر (Values). بخش TOC ساختار زیر را دارد: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 4 Section Type (see \f2mmv_stats.h\f1) _ 4 4 Number of entries in the section _ 8 8 Section's offset from the start of the file .TE .PP انواع بخش‌ها عبارتند از: .IP 1: Indoms (تعاریف دامنه نمونه یا Instance Domain Definitions) .IP 2: Instances (نمونه‌ها) .IP 3: Metrics (تعاریف معیارها) .IP 4: Values (مقادیر) .IP 5: String (رشته) .IP 6: Labels (برچسب‌ها) .PP تنها بخش‌های الزامی، Metrics و Values هستند. بخش‌های Indoms و Instances در هر دو نسخه تنها در صورتی وجود دارند که معیارهایی با چندین نمونه موجود باشند. بخش‌های String تنها در صورتی ظاهر می‌شوند که معیارهایی با مقادیر رشته‌ای وجود داشته باشند، هنگامی که Metrics یا Indoms با متن راهنما تعریف شده باشند، یا در قالب نسخه ۲ MMV که در آن نام معیارها و نام نمونه‌ها در بخش‌های رشته‌ای ذخیره می‌شوند (که فضای به مراتب بیشتری نسبت به قالب نسخه ۱ MMV برای این نام‌ها فراهم می‌کند). بخش‌های Label تنها در صورتی ظاهر می‌شوند که معیارهایی با برچسب‌ها (جفت‌های نام/مقدار) نشانه‌گذاری شده باشند. برچسب‌ها در قالب نسخه ۳ MMV پشتیبانی می‌شوند. .PP مدخل‌های موجود در بخش‌های Indoms ساختار زیر را دارند: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 4 Unique serial number for this domain _ 4 4 Number of entries in the domain _ 8 8 Offset to first Instance or Instance2 _ 16 8 Short help text offset _ 24 8 Long help text offset .TE .PP مدخل‌های موجود در بخش Instances (نسخه ۱) ساختار زیر را دارند: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 8 Offset into the indom section _ 8 4 Unused padding (zero filled) _ 12 4 Internal instance identifier _ 16 64 External instance identifier .TE .PP مدخل‌های موجود در بخش Instances (نسخه ۲) ساختار زیر را دارند: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 8 Offset into the indom section _ 8 4 Unused padding (zero filled) _ 12 4 Internal instance identifier _ 16 8 External instance identifier string offset .TE .PP مدخل‌های موجود در بخش Metrics (نسخه ۱) ساختار زیر را دارند: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 64 Metric Name _ 64 4 Metric Item (see \f2PMDA\f1(3)) _ 68 4 Metric Type (see \f2mmv_stats.h\f1) _ 72 4 Semantics (see \f2PMAPI\f1(3)) _ 76 4 Dimensions (see \f2PMAPI\f1(3)) _ 80 4 Instance Domain ID _ 84 4 Unused padding (zero filled) _ 88 8 Short help text offset _ 96 8 Long help text offset .TE .PP مدخل‌های موجود در بخش Metrics (نسخه ۲) ساختار زیر را دارند: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 8 Metric Name string offset _ 8 4 Metric Item (see \f2PMDA\f1(3)) _ 12 4 Metric Type (see \f2mmv_stats.h\f1) _ 16 4 Semantics (see \f2PMAPI\f1(3)) _ 20 4 Dimensions (see \f2PMAPI\f1(3)) _ 24 4 Instance Domain ID _ 28 4 Unused padding (zero filled) _ 32 8 Short help text offset _ 40 8 Long help text offset .TE .PP مدخل‌های موجود در بخش Values ساختار زیر را دارند: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 8 \f3pmAtomValue\f1 (see \f2PMAPI\f1(3)) _ 8 8 Extra space for STRING and ELAPSED _ 16 8 Offset into the Metrics section _ 24 8 Offset into the Instances section .TE .PP هر مدخل در بخش رشته‌ها یک آرایه نویسه‌ای ۲۵۶ بایتی است که حاوی یک رشته کاراکتری پایان‌یافته با NULL است. بنابراین هر رشته حداکثر ۲۵۶ بایت طول دارد که شامل کاراکتر پایانی NULL نیز می‌شود. .PP مدخل‌های موجود در بخش Labels (نسخه ۳) ساختار زیر را دارند: .TS box,center; c | c | c n | n | l. Offset Length Value _ 0 4 T{ Flags - PM_LABEL_ CLUSTER, ITEM, INDOM, INSTANCES and OPTIONAL T} _ 4 4 T{ Identifier for given type (indom, cluster or item) T} _ 8 4 T{ Internal Instance or PM_IN_NULL T} _ 12 244 T{ Payload (Name and Value JSONB String) T} .TE .PP هر مدخل در بار داده (Payload) یک آرایه نویسه‌ای حداکثر ۲۴۴ بایتی است که حاوی یک جفت \fIname\fR:\fIvalue\fR پایان‌یافته با NULL در قالب JSON است. نویسه‌های فاصله خالی بی‌اهمیت (Insignificant whitespace) نباید وجود داشته باشند. نام برچسب‌ها تنها از نویسه‌های الفبایی-عددی یا زیرخط (Underscore) تشکیل می‌شوند و باید با یک نویسه الفبایی آغاز گردند. نویسه‌های بزرگ و کوچک متمایز از یکدیگر در نظر گرفته می‌شوند. .SH "همچنین ببینید (SEE ALSO)" .BR PCPIntro (1), .BR pmdammv (1), .BR PMAPI (3), .BR PMDA (3), .BR mmv_stats_registry (3), .BR pcp.conf (5) و .BR pcp.env (5).