proc_pid_clear_refs -
بازنشانی
بیتهای PG_Referenced و
ACCESSED/YOUNG در حافظه
فرآیند
- /proc/pid/clear_refs (از
لینوکس 2.6.22)
- این یک فایل
فقطنوشتنی
(write-only) است که
تنها توسط
مالک
فرآیند
قابل نوشتن
میباشد.
- مقادیر زیر
را میتوان
در این فایل
نوشت:
- 1 (از لینوکس
2.6.22)
- بازنشانی
بیتهای PG_Referenced
و ACCESSED/YOUNG برای
تمام صفحات
مرتبط با
فرآیند.
(پیش از
لینوکس 2.6.32،
نوشتن هر
مقدار
غیرصفری در
این فایل
همین اثر را
داشت.)
- 2 (از لینوکس
2.6.32)
- بازنشانی
بیتهای PG_Referenced
و ACCESSED/YOUNG برای
تمام صفحات
ناشناس (anonymous pages)
مرتبط با
فرآیند.
- 3 (از لینوکس
2.6.32)
- بازنشانی
بیتهای PG_Referenced
و ACCESSED/YOUNG برای
تمام صفحات
نگاشتشده
به فایل (file-mapped pages)
مرتبط با
فرآیند.
- پاکسازی
بیتهای PG_Referenced
و ACCESSED/YOUNG روشی
برای
اندازهگیری
تقریبی
میزان
حافظهٔ
مصرفی یک
فرآیند
فراهم
میکند.
ابتدا
میتوان
مقادیر
موجود در
فیلدهای
"Referenced" را برای
VMAهای
نمایشیافته
در /proc/pid/smaps
بررسی کرد
تا تصویری
کلی از
ردپای
حافظه (memory footprint)
فرآیند به
دست آید.
سپس
بیتهای PG_Referenced
و ACCESSED/YOUNG
پاکسازی
میشوند و
پس از گذشت
یک بازهٔ
زمانی
معین،
مجدداً
مقادیر
فیلدهای
"Referenced" بررسی
میشوند تا
تغییرات
ردپای
حافظهٔ
فرآیند در
طول آن بازه
مشخص گردد.
چنانچه
تنها بررسی
نوع خاصی از
نگاشتها
مد نظر
باشد،
میتوان به
جای مقدار 1
از مقادیر 2
یا 3
استفاده
کرد.
- همچنین
مقادیر
دیگری را
میتوان
برای
تأثیرگذاری
بر
ویژگیهای
مختلف
نوشت:
- 4 (از لینوکس
3.11)
- پاکسازی
بیت soft-dirty برای
تمام صفحات
مرتبط با
فرآیند. این
ویژگی (در
ترکیب با
/proc/pid/pagemap) توسط
سیستم
بازنشانی
نقطه بررسی
(checkpoint/restore)
استفاده
میشود تا
مشخص شود
کدام صفحات
فرآیند از
زمان آخرین
نوشتن در
فایل /proc/pid/clear_refs
دستخوش
تغییر (dirtied)
شدهاند.
- 5 (از لینوکس
4.0)
- بازنشانی
اوج
اندازهٔ
مجموعهٔ
مقیم حافظه
("high water mark" یا
بیشینهٔ RSS)
به مقدار
فعلی
اندازهٔ
مجموعهٔ
مقیم (resident set size)
فرآیند.
- نوشتن هر
مقداری به
جز مقادیر
فهرستشده
در بالا در
فایل /proc/pid/clear_refs
هیچ اثری
نخواهد
داشت.
- فایل /proc/pid/clear_refs
تنها در
صورتی وجود
دارد که
گزینهٔ
پیکربندی
هستهٔ CONFIG_PROC_PAGE_MONITOR
فعال باشد.