SADC(8) Linux User's Manual SADC(8)

sadc - جمع‌آوری‌کننده داده‌های فعالیت سیستم

/usr/lib/sa/sadc [ -C comment ] [ -D ] [ -F ] [ -f ] [ -L ] [ -V ] [ -S { keyword[,...] | ALL | XALL } ] [ interval [ count ] ] [ outfile ]

دستور sadc داده‌های سیستم را به تعداد دفعات مشخص (count) و در فواصل زمانی معین بر حسب ثانیه (interval) نمونه‌برداری می‌کند. این دستور داده‌ها را با قالب دودویی (binary) در فایل خروجی مشخص‌شده outfile یا در خروجی استاندارد می‌نویسد. اگر outfile روی - تنظیم شود، آنگاه sadc از فایل روزانه استاندارد داده‌های فعالیت سیستم استفاده می‌کند (به زیر مراجعه کنید). در این حالت، اگر فایل از قبل موجود باشد، چنانچه مربوط به ماه قبل باشد sadc روی آن بازنویسی خواهد کرد. به صورت پیش‌فرض sadc بیشتر داده‌های موجود از هسته سیستم را جمع‌آوری می‌کند. اما معیارهای اختیاری دیگری نیز وجود دارند که برای جمع‌آوری آن‌ها باید گزینه‌های مربوطه صریحاً به sadc ارسال شوند (به گزینه -S در زیر مراجعه کنید).

فایل روزانه داده‌های فعالیت سیستم به نام saDD نام‌گذاری می‌شود، مگر اینکه گزینه -D استفاده شود که در آن صورت نام آن saYYYYMMDD خواهد بود؛ که در آن YYYY نشان‌دهنده سال جاری، MM نشان‌دهنده ماه جاری و DD نشان‌دهنده روز جاری است. به صورت پیش‌فرض این فایل در دایرکتوری /var/log/sa قرار دارد. با این حال امکان تعیین یک مکان جایگزین برای آن وجود دارد: اگر outfile یک دایرکتوری باشد (به جای یک فایل معمولی)، آنگاه به عنوان دایرکتوری ذخیره فایل روزانه استاندارد فعالیت سیستم در نظر گرفته می‌شود.

هنگامی که پارامتر count مشخص نشود، sadc داده‌های خود را به صورت نامحدود و مداوم می‌نویسد. هنگامی که هر دو پارامتر interval و count مشخص نشده باشند و از گزینه -C نیز استفاده نشده باشد، یک رکورد ساختگی (dummy) نوشته می‌شود که هنگام راه‌اندازی سیستم برای علامت‌گذاری زمانی که شمارنده از ۰ شروع به کار مجدد می‌کند، استفاده می‌شود. به عنوان مثال، یکی از اسکریپت‌های راه‌اندازی سیستم ممکن است با اجرای این دستور علامت شروع مجدد را در فایل داده روزانه ثبت کند:

/usr/lib/sa/sadc -

دستور sadc به گونه‌ای طراحی شده است که به عنوان موتور پشتیبان (backend) برای دستور sar استفاده شود.

نکته: دستور sadc تنها فعالیت‌های محلی را گزارش می‌کند.

هنگامی که هیچ‌یک از پارامترهای interval یا count مشخص نشده باشند، این گزینه به sadc می‌گوید که یک رکورد ساختگی حاوی رشته توضیحی comment مشخص‌شده بنویسد. این توضیح سپس می‌تواند با گزینه -C در دستور sar نمایش داده شود.
استفاده از saYYYYMMDD به جای saDD به عنوان نام فایل روزانه استاندارد داده‌های فعالیت سیستم.
ایجاد outfile اجباری خواهد بود. اگر فایل از قبل موجود باشد و قالبی ناشناخته برای sadc داشته باشد، خالی (truncate) خواهد شد. این گزینه ممکن است برای فایل‌های داده روزانه‌ای که توسط نسخه قدیمی‌تری از sadc ایجاد شده‌اند و قالب آن‌ها دیگر با نسخه فعلی سازگار نیست، مفید باشد.
برای اطمینان از نوشته شدن داده‌ها روی دیسک از fdatasync()‎ استفاده می‌شود. این با عملکرد معمول تفاوت دارد زیرا راه‌اندازی مجدد ناگهانی سیستم کمتر باعث خرابی فایل‌های داده saDD می‌شود. با این حال این کار به قیمت کاهش کارایی فرآیند sadc تمام می‌شود؛ زیرا تا زمانی که داده‌ها به جای حافظه موقت (cache) مستقیماً روی دیسک نوشته شوند، پیشرفت فرآیند متوقف خواهد شد.
دستور sadc تلاش خواهد کرد پیش از نوشتن یا خالی کردن فایل outfile ، یک قفل انحصاری روی آن دریافت کند. عدم موفقیت در دریافت قفل مرگبار است، به جز در حالتی که تلاش برای نوشتن یک رکورد عادی (یعنی غیر ساختگی و غیر هدر) در یک فایل موجود باشد؛ که در این حالت sadc در فاصله زمانی بعدی دوباره تلاش خواهد کرد. معمولاً تنها دلیلی که ممکن است قفل ناموفق شود این است که فرآیند دیگری از sadc نیز در حال نوشتن در فایل باشد. این اتفاق می‌تواند زمانی رخ دهد که از cron برای اجرای sadc استفاده شود؛ اگر سیستم تحت بار سنگین باشد ممکن است فرآیند قبلی sadc همچنان در حال اجرا باشد در حالی که cron فرآیند جدیدی را آغاز می‌کند. بدون قفل‌گذاری، این وضعیت می‌تواند منجر به خراب شدن فایل فعالیت سیستم شود.
کلیدواژه‌های ممکن عبارتند از: DISK, INT, IPV6, POWER, SNMP, XDISK, ALL و XALL.
مشخص می‌کند کدام فعالیت‌های اختیاری باید توسط sadc جمع‌آوری شوند. برخی فعالیت‌ها برای جلوگیری از حجیم شدن بیش از حد فایل‌های داده به صورت اختیاری درآمده‌اند. کلیدواژه DISK مشخص می‌کند که sadc باید داده‌های مربوط به دستگاه‌های بلوکی را جمع‌آوری کند. کلیدواژه INT مشخص می‌کند که باید داده‌های وقفه‌های سیستم جمع‌آوری شوند. کلیدواژه IPV6 نشان می‌دهد آمار IPv6 باید جمع‌آوری شود. کلیدواژه POWER مشخص می‌کند که باید آمار مدیریت مصرف انرژی جمع‌آوری شود. کلیدواژه SNMP مشخص می‌کند که آمار SNMP باید توسط sadc جمع‌آوری شود. کلیدواژه ALL معادل مشخص کردن تمام کلیدواژه‌های فوق است و در نتیجه تمام فعالیت‌های قبلی جمع‌آوری می‌شوند.
کلیدواژه XDISK توسعه‌یافته گزینه DISK است و مشخص می‌کند علاوه بر آمار دیسک، آمار پارتیشن‌ها و فایل‌سیستم‌ها نیز باید توسط sadc جمع‌آوری شود. این گزینه تنها بر روی هسته‌های ۲.۶.۲۵ و بالاتر کار می‌کند. کلیدواژه XALL معادل مشخص کردن تمام کلیدواژه‌های فوق (شامل کلیدواژه‌های توسعه‌یافته) است و بنابراین تمامی فعالیت‌های ممکن جمع‌آوری خواهند شد.
نکته مهم: فعالیت‌های (شامل موارد اختیاری) ذخیره‌شده در یک فایل داده موجود، بر فعالیت‌های انتخاب‌شده با گزینه -S ارجحیت دارند. در نتیجه، الحاق داده به یک فایل موجود باعث نادیده گرفته شدن گزینه -S خواهد شد.
چاپ شماره نسخه و سپس خروج.

دستور sadc متغیر محیطی زیر را مد نظر قرار می‌دهد:

اگر این متغیر وجود داشته باشد و مقدار آن UTC باشد، آنگاه sadc داده‌های خود را بر اساس زمان UTC ذخیره خواهد کرد. همچنین sadc از زمان UTC به جای زمان محلی برای تعیین فایل داده روزانه فعلی مستقر در دایرکتوری /var/log/sa استفاده خواهد کرد.

/usr/lib/sa/sadc 1 10 /tmp/datafile
نوشتن ۱۰ رکورد در فواصل یک ثانیه‌ای در فایل دودویی /tmp/datafile.
/usr/lib/sa/sadc -C "Backup Start" /tmp/datafile
درج عبارت توضیحی "Backup Start" در فایل /tmp/datafile.

برای اینکه دستور sadc کار کند باید فایل‌سیستم /proc سوار (mount) شده باشد.

بسته به نسخه هسته مورد استفاده، همه آمارها لزوماً در دسترس نیستند. sadc فرض می‌کند که شما حداقل از یک هسته ۲.۶ استفاده می‌کنید.

/var/log/sa/saDD
/var/log/sa/saYYYYMMDD

فایل‌های روزانه استاندارد داده‌های فعالیت سیستم و مکان پیش‌فرض آن‌ها. YYYY نشان‌دهنده سال جاری، MM ماه جاری و DD روز جاری است.
دایرکتوری‌های /proc و /sys شامل فایل‌های مختلفی با آمارهای سیستمی هستند.

Sebastien Godard (sysstat <at> orange.fr)

sar(1), sa1(8), sa2(8), sadf(1), sysstat(5)

https://github.com/sysstat/sysstat
https://sysstat.github.io

AUGUST 2023 Linux