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