یک اصطلاح معروف در علوم مهندسی وجود داره که میگه اگر چیزی رو نتونی اندازه گیری کنی و بسنجی قطعا نمیتونی کنترل و مدیریتش کنی.پس لازمه بتونیم میزان مصرف منابع و درگیر بودن سیستممون رو بسنجیم تا بتونیم مدیریتش کنیم. تو علوم رایانه ما به این کار میگیم مانیتورینگ یا نظارت بر سیستم .
در مانیتورینگ ۴ منبع اصلی وجود داره که ممکنه به علت های مختلف توشون گلوگاه ایجاد بشه :
۱− حافظه اصلی (RAM) ۲-ورودی خروجی حافظه ثانویه (I/O) ۳-پردازنده(CPU) ۴-شبکه (Network)
برای عیب یابی سیستم به صورت realtime (در لحظه )تو یه مطلب جداگانه یه سری دستورات رو توضیح دادم که میتونید از این لینک بهش دسترسی داشته باشید. تو این مطلب قراره ما همون کارو کنیم در یک بازه زمانی طولانی تر. ترافیک مصرفی شبکه که تو یه پست جدا در بارش مینویسم.
دستور sar وضعیت کلیه منابع سیستم رو در بازه های زمانی خاصی که ما تعیین میکنیم ثبت میکنه و با استفاده از اون ما می تونیم ببینم پیک مصرف چه زمانی بوده و به اگر رفتار مشکوکی وجود داره اونو کشف و عیب یابی کنیم.
برای نصب این دستور ابتدا باید سرویس sysstsat رو از پکیج منیجر توزیع مورد نظرمون نصب کنیم.من از دبیان استفاده میکنم :
$sudo apt install sysstat
تو مرحله بعد فایل etc/default/sysstat/ رو با هر ویرایشگری که راحت ترید باز کنید و کلمه false رو به true تغییر بدید تا عملکرد دستور sar فعال بشه یادتون نره قبل از بستن حتما saveش کنید.
در قدم بعدی فایل etc/cron.d/sysstat/ رو ویرایش میکنیم تا بازه های زمانی دستور رو مقدار دهی کنیم . تو این فایل باید مقدار 55/10-5 که باعث میشه از دقیقه ۵ ام هر ساعت تا دقیقه ۵۵ ام هر ۱۰ دقیقه یکبار دستور یک ثبت انجام بده رو به 2/* تغییر بدید که باعث میشه در کلیه ساعات هر ۲ دقیقه یکبار این اتفاق بیوفته، طبیعتا ۵ برابر بیشتر لاگ تولید میشه ولی بجاش دقیق تره.
حالا باید سرویس sysstat رو یکبار ریستارت کنید تا قابل استفاده بشه :
$sudo systemctl restart sysstat
حالا دستور sar آماده استفاده است :
این دستور تعداد زیادی سوییچ داره که بسته به نیازتون میتونید اطلاعات خاصی رو با این سوییچ ها از لاگ های اون سرویس sysstat استخراج کنید به عنوان مثال :
سوییچ A- : مخفف All هست که همه اطلاعات رو نمایش میده .
سوییچ B- : پیجینگ های های مموری رو نمایش میده
سوییچ b- :با این سوییچ transfer rate I/Oرو نمایش میده .
سوییچ H- : پیک استفاده منابع رو مشخص میکنه.
و تعداد زیادی سوییچ دیگه که از طریق man pages می تویند کاراییشونو متوجه بشید.
البته به صورت realtime هم میتونید با این دستور کار بکنید . بررای مثال من میخوام ۱۰ بار وضعیت سیستم رو در فاصله های زمانی ۲ ثانیه ای ببینم ،خیلی ساده :
$sar -A 2 10
بعد از اتمام دستور یه summery بهتون میده از کل این logهایی که نشونتون داد.
امیدوارم بدردبخور بوده باشه.