.\" Copyright (c) 2001 Andreas Dilger (adilger@turbolinux.com) .\" and Copyright (c) 2017 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .TH slabinfo 5 2024-05-02 "Linux man-pages 6.9.1" .SH "نام (NAME)" slabinfo \- آمار تخصیشدهنده حافظه اسلب هسته (Kernel Slab Allocator) .SH "خلاصه دستور (SYNOPSIS)" .nf .B cat /proc/slabinfo .fi .SH "توضیحات (DESCRIPTION)" اشیاء پرکاربرد در هسته لینوکس (مانند سرآیندهای بافر، inodeها، مدخل‌های dentry و غیره) دارای کش (cache) اختصاصی خود هستند. فایل .I /proc/slabinfo آمارهای مربوط به این کش‌ها را ارائه می‌دهد. خروجی (ویرایش‌شده) زیر نمونه‌ای از محتویات این فایل را نشان می‌دهد: .P .EX $ \fBsudo cat /proc/slabinfo\fP slabinfo \- version: 2.1 # name ... sigqueue 100 100 160 25 1 : tunables 0 0 0 : slabdata 4 4 0 sighand_cache 355 405 2112 15 8 : tunables 0 0 0 : slabdata 27 27 0 kmalloc\-8192 96 96 8192 4 8 : tunables 0 0 0 : slabdata 24 24 0 \&... .EE .P خط اول خروجی شامل شماره نسخه است که به برنامه‌های خواننده این فایل امکان می‌دهد تغییرات در قالب فایل را مدیریت کنند (بخش .B "نسخه‌ها (VERSIONS)" در زیر را ببینید). خط بعدی نام ستون‌ها را در خطوط باقی‌مانده فهرست می‌کند. .P هر یک از خطوط باقی‌مانده اطلاعات مربوط به یک کش مشخص را نمایش می‌دهد. پس از نام کش، خروجی در هر خط سه بخش را برای هر کش نمایش می‌دهد: .IP \[bu] 3 آماره‌ها (statistics) .IP \[bu] پارامترهای قابل تنظیم (tunables) .IP \[bu] داده‌های اسلب (slabdata) .P آماره‌ها به شرح زیر هستند: .TP .I active_objs تعداد اشیایی که در حال حاضر فعال هستند (یعنی در حال استفاده می‌باشند). .TP .I num_objs تعداد کل اشیاء تخصیص‌یافته (یعنی اشیایی که هم در حال استفاده هستند و هم آزاد). .TP .I objsize اندازه اشیاء در این اسلب بر حسب بایت. .TP .I objperslab تعداد اشیاء ذخیره‌شده در هر اسلب. .TP .I pagesperslab تعداد صفحات تخصیص‌یافته برای هر اسلب. .P مدخل‌های .I tunables در هر خط، پارامترهای قابل تنظیم را برای کش متناظر نشان می‌دهند. هنگام استفاده از تخصیص‌دهنده پیش‌فرض SLUB، هیچ پارامتر قابل تنظیمی وجود ندارد، فایل .I /proc/slabinfo قابل نوشتن نیست و مقدار 0 در این فیلدها نمایش داده می‌شود. هنگام استفاده از تخصیص‌دهنده قدیمی‌تر SLAB، پارامترهای قابل تنظیم برای یک کش خاص را می‌توان با نوشتن خطوطی به شکل زیر در .I /proc/slabinfo تنظیم کرد: .P .in +4n .EX # \fBecho \[aq]name limit batchcount sharedfactor\[aq] > /proc/slabinfo\fP .EE .in .P در اینجا، .I name نام کش است، و .IR limit ، .IR batchcount و .I sharedfactor اعداد صحیحی هستند که مقادیر جدید را برای پارامترهای قابل تنظیم متناظر تعیین می‌کنند. مقدار .I limit باید یک مقدار مثبت باشد، .I batchcount باید یک مقدار مثبت و کوچک‌تر یا مساوی با .I limit باشد، و .I sharedfactor باید نامنفی باشد. اگر هر یک از مقادیر مشخص‌شده نامعتبر باشد، تنظیمات کش بدون تغییر باقی می‌مانند. .P مدخل‌های .I tunables در هر خط شامل فیلدهای زیر هستند: .TP .I limit حداکثر تعداد اشیایی که در کش نگهداری خواهند شد. .TP .I batchcount در سامانه‌های SMP (چندپردازنده‌ای متقارن)، این مقدار مشخص‌کننده تعداد اشیایی است که هنگام پر کردن مجدد فهرست اشیاء موجود، در یک نوبت منتقل می‌شوند. .TP .I sharedfactor [مستندسازی خواهد شد] .P مدخل‌های .I slabdata در هر خط شامل فیلدهای زیر هستند: .TP .I active_slabs تعداد اسلب‌های فعال. .TP .I nums_slabs تعداد کل اسلب‌ها. .TP .I sharedavail [مستندسازی خواهد شد] .P توجه داشته باشید که به دلیل تراز کردن اشیاء و سربار کش اسلب، اشیاء معمولاً به‌طور فشرده درون صفحات قرار نمی‌گیرند. صفحاتی که حتی دارای یک شیء در حال استفاده باشند، در حال استفاده تلقی می‌شوند و نمی‌توان آن‌ها را آزاد کرد. .P هسته‌های پیکربندی‌شده با .B CONFIG_DEBUG_SLAB همچنین دارای فیلدهای آماری اضافی در هر خط خواهند بود و خط اول فایل شامل رشته "(statistics)" خواهد بود. فیلدهای آماری شامل این موارد هستند: بالاترین میزان اشیاء فعال؛ تعداد دفعاتی که اشیاء تخصیص یافته‌اند؛ تعداد دفعاتی که کش گسترش یافته است (صفحات جدید اضافه شده به این کش)؛ تعداد دفعاتی که کش هرس شده است (صفحات استفاده‌نشده حذف شده از این کش)؛ و تعداد دفعاتی که در تخصیص صفحات جدید به این کش خطا رخ داده است. .SH "نسخه‌ها (VERSIONS)" فایل .I /proc/slabinfo اولین بار در لینوکس 2.1.23 ظاهر شد. این فایل دارای نسخه است و در طول زمان چندین نسخه با ساختارهای متفاوت از آن منتشر شده است: .TP .B 1.0 در سرتاسر سری هسته لینوکس 2.2.x وجود داشت. .TP .B 1.1 در سری هسته لینوکس 2.4.x وجود داشت. .TP .B 1.2 قالبی که به مدت کوتاهی در سری توسعه لینوکس 2.5 وجود داشت. .TP .B 2.0 در هسته‌های لینوکس 2.6.x تا و خود لینوکس 2.6.9 وجود داشت. .TP .B 2.1 قالب فعلی که نخستین بار در لینوکس 2.6.10 پدیدار شد. .SH "نکات (NOTES)" تنها کاربر ریشه (root) می‌تواند فایل .I /proc/slabinfo را بخواند و (در صورتی که هسته با .B CONFIG_SLAB پیکربندی شده باشد) در آن بنویسد. .P مقدار کل حافظه تخصیص‌یافته به کش SLAB/SLUB در فیلد .I Slab از فایل .I /proc/meminfo نمایش داده می‌شود. .SH "فایلها (FILES)" .TP .I /proc/slabinfo اطلاعات و آمارهای تخصیص‌دهنده حافظه اسلب هسته. .TP .I /proc/meminfo اطلاعات کلی حافظه سیستم. .SH "همچنین ببینید (SEE ALSO)" .BR slabtop (1) .P فایل منبع هسته .I Documentation/vm/slub.txt و .IR tools/vm/slabinfo.c .