یک برنامه پایتون بنویسید که هر ثانیه مقدار مصرف حافظه و بار CPU را از فایل‌های سیستمی /proc خوانده، آن‌ها را پارس کرده و در یک فایل لاگ با زمان‌سنجی ثبت کند و در صورتی که بار CPU از آستانه مشخصی بالاتر رفت پیام هشدار را در لاگ اضافه کند.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:29

0.0

برای حل این مسئله از قابلیت‌های سیستم‌عامل لینوکس و فایل‌های مجازی /proc استفاده کنید: مثلاً /proc/meminfo برای اطلاعات حافظه و /proc/loadavg برای بار سیستم. با استفاده از کتابخانه‌های استاندارد پایتون (open برای خواندن فایل‌ها، time.sleep برای تکرار هر ثانیه، datetime برای زمان‌گذاری و فایل‌نویسی) مقادیر را خوانده، به عدد تبدیل و پارس کنید و در یک فایل متنی بنویسید. نکات: بررسی خطاها با try/except، تعیین آستانه بار به صورت متغیر قابل تنظیم، و تست روی دستگاه‌های تعبیه‌شده مثل Raspberry Pi که برای IoT و Systems Programming معمول است؛ برای اجرای مداوم می‌توانید اسکریپت را با systemd یا cron اجرا کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:29
دسته بندی ها: Python Python for beginner
nima در 221 روز قبل ساعت 13:07

نکته مهم این است که بار CPU را با تعداد هسته‌های فعال مقایسه کنید، مثلاً بارِ 2.0 در سیستمی با 4 هسته معادل استفادهٔ 50% است. بهتر است از مقدار 1 دقیقهٔ loadavg (/proc/loadavg) استفاده کرده و آن را بر تعداد cores تقسیم کنید تا شاخصی مقایسه‌پذیر به دست آید. برای حافظه، به‌جای MemFree از MemAvailable استفاده کنید تا تخمین واقع‌بینانه‌تری از فضای در دسترس بدهد و مانع نتیجهٔ گمراه‌کننده شوید. همچنین خطاها را با try/except مهار کنید و در محیط‌های مانند Raspberry Pi یا کانتینرها مطمئن شوید که فایل‌های /proc قابل دسترسی‌اند و داشبورد لاگ مناسب را فراهم کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری