.\" Copyright (C) 1994, 1995, Daniel Quinlan .\" Copyright (C) 2002-2008, 2017, Michael Kerrisk .\" Copyright (C) 2023, Alejandro Colomar .\" .\" SPDX-License-Identifier: GPL-3.0-or-later .\" .TH "PROC_MEMINFO" "5" "مه ۲۰۲۵" "man-pages" "فایلهای پیکربندی" .SH "نام (NAME)" /proc/meminfo \- گزارش جامع آمار و وضعیت مصرف حافظه سامانه (RAM) .SH "توضیحات (DESCRIPTION)" پرونده \fI/proc/meminfo\fR آمار دقیق میزان مصرف، حافظه آزاد، بافرها، کش، صفحات فعال/غیرفعال و سایر معیارهای حافظه اصلی سیستم را نمایش میدهد و ابزارهایی مانند free(1) از آن استفاده میکنند. .PP این پرونده آمارهای مربوط به مصرف حافظه را در سامانه گزارش می‌دهد. ابزار .BR free (1) از آن برای گزارش مقدار حافظه آزاد و مصرف‌شده (هم حافظه فیزیکی و هم swap) در سامانه، و همچنین حافظه اشتراکی و بافرهای مصرف‌شده توسط هسته استفاده می‌کند. هر خط از این پرونده شامل یک نام پارامتر، یک دونقطه، مقدار پارامتر، و یک واحد اندازه‌گیری اختیاری (مانند "kB") است. فهرست زیر نام پارامترها و مشخص‌کننده فرمت (format specifier) مورد نیاز برای خواندن مقدار فیلد را تشریح می‌کند. به‌جز مواردی که در ادامه قید شده، تمام این فیلدها حداقل از لینوکس 2.6.0 به بعد در دسترس بوده‌اند. برخی از فیلدها فقط در صورتی نمایش داده می‌شوند که هسته با گزینه‌های مشخصی پیکربندی شده باشد؛ این وابستگی‌ها در فهرست ذکر شده‌اند. .RS .TP .IR MemTotal " %lu" کل حافظه فیزیکی (RAM) قابل استفاده (یعنی رم فیزیکی منهای چند بیت رزروشده و کد باینری هسته). .TP .IR MemFree " %lu" مجموع مقادیر .IR LowFree " + " HighFree . .TP .IR MemAvailable " %lu (از لینوکس 3.14)" تخمینی از مقدار حافظه آزاد و در دسترس برای راه‌اندازی برنامه‌های جدید، بدون نیاز به مبادله به دیسک (swapping). .TP .IR Buffers " %lu" فضای ذخیره‌سازی نسبتاً موقت برای بلوک‌های خام دیسک که نباید بیش از حد بزرگ شود (حدود ۲۰ مگابایت). .TP .IR Cached " %lu" حافظه نهان درون‌رم برای پرونده‌های خوانده‌شده از دیسک (کش صفحات یا page cache). شامل .I SwapCached نمی‌شود. .TP .IR SwapCached " %lu" حافظه‌ای که زمانی به دیسک منتقل شده بود (swapped out)، دوباره به حافظه بازگردانده شده (swapped in) اما کماکان در پرونده swap نیز باقی مانده است. (در صورت فشار بالای حافظه، نیازی به نوشتن مجدد این صفحات روی دیسک نیست، زیرا پیش‌تر در پرونده swap ذخیره شده‌اند؛ این امر موجب صرفه‌جویی در ورودی/خروجی دیسک می‌شود). .TP .IR Active " %lu" حافظه‌ای که اخیراً بیشتر مورد استفاده قرار گرفته و معمولاً بازپس‌گیری (reclaim) نمی‌شود مگر در شرایطی که کاملاً ضروری باشد. .TP .IR Inactive " %lu" حافظه‌ای که اخیراً کمتر مورد استفاده بوده است. این حافظه اولویت بیشتری برای بازپس‌گیری به منظور مقاصد دیگر دارد. .TP .IR Active(anon) " %lu (از لینوکس 2.6.28)" صفحات حافظه ناشناس (anonymous) فعال که در حافظه رم قرار دارند و اخیراً مورد استفاده بوده‌اند. .TP .IR Inactive(anon) " %lu (از لینوکس 2.6.28)" صفحات حافظه ناشناس غیرفعال که کاندیدای انتقال به فضای مبادله (swap) هستند. .TP .IR Active(file) " %lu (از لینوکس 2.6.28)" صفحات مبتنی بر پرونده (file-backed) فعال در حافظه نهان (کش) که اخیراً استفاده شده‌اند. .TP .IR Inactive(file) " %lu (از لینوکس 2.6.28)" صفحات مبتنی بر پرونده غیرفعال در کش که کاندیدای بازپس‌گیری و پاک‌سازی هستند. .TP .IR Unevictable " %lu (از لینوکس 2.6.28)" صفحات غیرقابل‌تخلیه که در حافظه قفل شده‌اند و امکان بازپس‌گیری آن‌ها وجود ندارد. (از لینوکس 2.6.28 تا 2.6.30 نیازمند \fBCONFIG_UNEVICTABLE_LRU\fP بود). .TP .IR Mlocked " %lu (از لینوکس 2.6.28)" میزان حافظه‌ای که با فراخوانی‌های سیستمی mlock در رم قفل شده است. (از لینوکس 2.6.28 تا 2.6.30 نیازمند \fBCONFIG_UNEVICTABLE_LRU\fP بود). .TP .IR HighTotal " %lu" (با شروع از لینوکس 2.6.19، نیازمند \fBCONFIG_HIGHMEM\fP است.) مقدار کل حافظه بالا (Highmem). حافظه Highmem به تمام حافظه‌های فیزیکی بالاتر از حدود ۸۶۰ مگابایت در معماری‌های ۳۲ بیتی گفته می‌شود. نواحی Highmem برای برنامه‌های فضای کاربری یا برای کش صفحات استفاده می‌شوند. هسته برای دسترسی به این حافظه باید از روش‌های خاص نگاشت استفاده کند که دسترسی به آن را نسبت به Lowmem کندتر می‌کند. .TP .IR HighFree " %lu" (با شروع از لینوکس 2.6.19، نیازمند \fBCONFIG_HIGHMEM\fP است.) مقدار حافظه بالای آزاد. .TP .IR LowTotal " %lu" (با شروع از لینوکس 2.6.19، نیازمند \fBCONFIG_HIGHMEM\fP است.) مقدار کل حافظه پایین (Lowmem). حافظه Lowmem حافظه‌ای است که برای تمام اهداف Highmem قابل استفاده است، اما علاوه بر آن در دسترس هسته برای ساختارهای داده‌ای خودش نیز قرار دارد. در میان موارد دیگر، تمامی تخصیص‌های مربوط به .I Slab از این فضا انجام می‌شود. تمام شدن حافظه Lowmem موجب بروز مشکلات اساسی در سامانه می‌شود. .TP .IR LowFree " %lu" (با شروع از لینوکس 2.6.19، نیازمند \fBCONFIG_HIGHMEM\fP است.) مقدار حافظه پایین آزاد. .TP .IR MmapCopy " %lu (از لینوکس 2.6.29)" .RB ( CONFIG_MMU مورد نیاز است.) حافظه کپی‌شده برای نگاشت‌های mmap در سامانه‌های فاقد واحد مدیریت حافظه (MMU). .TP .IR SwapTotal " %lu" کل فضای مبادله (Swap) در دسترس سامانه. .TP .IR SwapFree " %lu" مقدار فضای مبادله که در حال حاضر استفاده نشده و آزاد است. .TP .IR Dirty " %lu" حافظه‌ای که در صف انتظار برای بازنویسی و ذخیره بر روی دیسک قرار دارد. .TP .IR Writeback " %lu" حافظه‌ای که در حال حاضر فعالانه در حال بازنویسی بر روی دیسک است. .TP .IR AnonPages " %lu (از لینوکس 2.6.18)" صفحات بدون پشتوانه پرونده (ناشناس) که در جدول صفحات فضای کاربری نگاشت شده‌اند. .TP .IR Mapped " %lu" پرونده‌هایی که با فراخوانی .BR mmap (2) در حافظه نگاشت شده‌اند، مانند کتابخانه‌ها. .TP .IR Shmem " %lu (از لینوکس 2.6.32)" مقدار حافظه مصرف‌شده در سامانه‌های پرونده‌ای .BR tmpfs (5) . .TP .IR KReclaimable " %lu (از لینوکس 4.20)" تخصیص‌های درون هسته که هسته در شرایط فشار کمبود حافظه برای آزادسازی آن‌ها تلاش می‌کند. شامل .I SReclaimable (در ادامه)، و دیگر تخصیص‌های مستقیم دارای shrinker است. .TP .IR Slab " %lu" حافظه نهان ساختارهای داده‌ای درون هسته. (به .BR slabinfo (5) مراجعه کنید). .TP .IR SReclaimable " %lu (از لینوکس 2.6.19)" بخشی از .IR Slab که امکان آزادسازی و بازپس‌گیری آن وجود دارد، مانند حافظه نهان ساختارها (dentries و inodes). .TP .IR SUnreclaim " %lu (از لینوکس 2.6.19)" بخشی از .IR Slab که تحت فشار حافظه نیز قابل بازپس‌گیری نیست. .TP .IR KernelStack " %lu (از لینوکس 2.6.32)" مقدار حافظه اختصاص‌یافته به پشته‌های فرایندهای هسته (Kernel Stacks). .TP .IR PageTables " %lu (از لینوکس 2.6.18)" مقدار حافظه اختصاص‌یافته به پایین‌ترین لایه از جداول صفحات (Page Tables). .TP .IR Quicklists " %lu (از لینوکس 2.6.27)" (\fBCONFIG_QUICKLIST\fP مورد نیاز است.) لیست‌های سریع برای تسریع فرایند تخصیص جداول صفحات. .TP .IR NFS_Unstable " %lu (از لینوکس 2.6.18)" صفحات مربوط به پروتکل NFS که به سرور ارسال شده‌اند اما هنوز در حافظه ذخیره‌سازی دائمی تثبیت نشده‌اند. .TP .IR Bounce " %lu (از لینوکس 2.6.18)" حافظه استفاده‌شده برای بافرهای جهشی (bounce buffers) دستگاه‌های بلوکی. .TP .IR WritebackTmp " %lu (از لینوکس 2.6.26)" حافظه استفاده‌شده توسط FUSE برای بافرهای بازنویسی موقت. .TP .IR CommitLimit " %lu (از لینوکس 2.6.10)" کل مقدار حافظه‌ای که در حال حاضر امکان تخصیص آن در سامانه وجود دارد، به کیلوبایت. این محدودیت تنها در صورتی اعمال می‌شود که حسابداری سخت‌گیرانه overcommit فعال باشد (حالت ۲ در .IR /proc/sys/vm/overcommit_memory ). این حد مطابق فرمول شرح‌داده‌شده در .I /proc/sys/vm/overcommit_memory محاسبه می‌شود. برای جزئیات بیشتر، پرونده مستندات هسته .I Documentation/vm/overcommit\-accounting.rst را مشاهده کنید. .TP .IR Committed_AS " %lu" مقدار حافظه‌ای که هم‌اکنون در سامانه تخصیص داده شده است. حافظه متعهدشده (Committed memory) مجموع تمام حافظه‌ای است که توسط فرایندها تخصیص یافته، حتی اگر تا این لحظه واقعاً مورد "استفاده" قرار نگرفته باشد. فرایندی که ۱ گیگابایت حافظه تخصیص می‌دهد (با استفاده از .BR malloc (3) یا توابع مشابه)، اما تنها ۳۰۰ مگابایت از آن را لمس کرده است، مصرف حافظه آن ۳۰۰ مگابایت نمایش داده می‌شود، حتی اگر کل ۱ گیگابایت فضای آدرس برای آن اختصاص یافته باشد. .IP این ۱ گیگابایت حافظه‌ای است که توسط VM به فرایند "تعهد" داده شده و در هر زمان می‌تواند توسط برنامه تخصیص‌دهنده استفاده شود. اگر سیاست سخت‌گیرانه overcommit روی سامانه فعال باشد (حالت ۲ در .IR /proc/sys/vm/overcommit_memory )، تخصیص‌هایی که از .I CommitLimit فراتر بروند مجاز نخواهند بود. این سازوکار زمانی مفید است که بخواهید تضمین کنید پس از تخصیص موفق حافظه، فرایندها هرگز به دلیل کمبود حافظه دچار شکست و فروپاشی نشوند. .TP .IR VmallocTotal " %lu" اندازه کل ناحیه حافظه vmalloc. .TP .IR VmallocUsed " %lu" مقدار مصرف‌شده از ناحیه vmalloc. از لینوکس 4.4 به بعد، این فیلد دیگر محاسبه نمی‌شود و مقدار آن به صورت ثابت 0 بازگردانده می‌شود. به .I /proc/vmallocinfo مراجعه کنید. .TP .IR VmallocChunk " %lu" بزرگ‌ترین بلوک پیوسته آزاد در ناحیه vmalloc. از لینوکس 4.4 به بعد، این فیلد دیگر محاسبه نمی‌شود و مقدار آن به صورت ثابت 0 بازگردانده می‌شود. به .I /proc/vmallocinfo مراجعه کنید. .TP .IR HardwareCorrupted " %lu (از لینوکس 2.6.32)" (\fBCONFIG_MEMORY_FAILURE\fP مورد نیاز است.) میزان حافظه فیزیکی خرابی که دارای خطای سخت‌افزاری بوده و توسط هسته شناسایی و کنار گذاشته شده است. .TP .IR LazyFree " %lu (از لینوکس 4.12)" مقدار حافظه علامت‌گذاری‌شده توسط .BR madvise (2) با گزینه .BR MADV_FREE را نمایش می‌دهد. .TP .IR AnonHugePages " %lu (از لینوکس 2.6.38)" (\fBCONFIG_TRANSPARENT_HUGEPAGE\fP مورد نیاز است.) صفحات عظیم ناشناس (فاقد پشتیبانی پرونده) نگاشت‌شده در جدول صفحات فضای کاربری. .TP .IR ShmemHugePages " %lu (از لینوکس 4.8)" (\fBCONFIG_TRANSPARENT_HUGEPAGE\fP مورد نیاز است.) حافظه استفاده‌شده توسط حافظه اشتراکی (shmem) و .BR tmpfs (5) تخصیص‌یافته با صفحات عظیم. .TP .IR ShmemPmdMapped " %lu (از لینوکس 4.8)" (\fBCONFIG_TRANSPARENT_HUGEPAGE\fP مورد نیاز است.) حافظه اشتراکی نگاشت‌شده در فضای کاربری با صفحات عظیم. .TP .IR CmaTotal " %lu (از لینوکس 3.1)" کل صفحات تخصیص‌دهنده حافظه پیوسته (CMA). (\fBCONFIG_CMA\fP مورد نیاز است.) .TP .IR CmaFree " %lu (از لینوکس 3.1)" صفحات آزاد تخصیص‌دهنده حافظه پیوسته (CMA). (\fBCONFIG_CMA\fP مورد نیاز است.) .TP .IR HugePages_Total " %lu" (\fBCONFIG_HUGETLB_PAGE\fP مورد نیاز است.) اندازه استخر (pool) صفحات عظیم. .TP .IR HugePages_Free " %lu" (\fBCONFIG_HUGETLB_PAGE\fP مورد نیاز است.) تعداد صفحات عظیم در استخر که هنوز تخصیص نیافته‌اند. .TP .IR HugePages_Rsvd " %lu (از لینوکس 2.6.17)" (\fBCONFIG_HUGETLB_PAGE\fP مورد نیاز است.) تعداد صفحات عظیمی که تعهد تخصیص آن‌ها از استخر صادر شده، اما هنوز تخصیص واقعی صورت نگرفته است. این صفحات رزروشده تضمین می‌کنند که برنامه در هنگام وقوع نقص صفحه (fault time) بتواند صفحه عظیم را از استخر دریافت نماید. .TP .IR HugePages_Surp " %lu (از لینوکس 2.6.24)" (\fBCONFIG_HUGETLB_PAGE\fP مورد نیاز است.) تعداد صفحات عظیم مازاد موجود در استخر فراتر از مقدار قیدشده در .IR /proc/sys/vm/nr_hugepages . حداکثر تعداد صفحات عظیم مازاد توسط .I /proc/sys/vm/nr_overcommit_hugepages کنترل می‌شود. .TP .IR Hugepagesize " %lu" (\fBCONFIG_HUGETLB_PAGE\fP مورد نیاز است.) اندازه هر صفحه عظیم (Huge Page). .TP .IR DirectMap4k " %lu (از لینوکس 2.6.27)" تعداد بایت‌های حافظه رم که توسط هسته به صورت خطی در قالب صفحات ۴ کیلوبایتی نگاشت شده‌اند. (معماری x86). .TP .IR DirectMap4M " %lu (از لینوکس 2.6.27)" تعداد بایت‌های حافظه رم که توسط هسته به صورت خطی در قالب صفحات ۴ مگابایتی نگاشت شده‌اند. (در x86 با فعال بودن .B CONFIG_X86_64 یا .BR CONFIG_X86_PAE ). .TP .IR DirectMap2M " %lu (از لینوکس 2.6.27)" تعداد بایت‌های حافظه رم که توسط هسته به صورت خطی در قالب صفحات ۲ مگابایتی نگاشت شده‌اند. (در x86 در صورتی که هیچ‌یک از .B CONFIG_X86_64 یا .B CONFIG_X86_PAE فعال نباشند). .TP .IR DirectMap1G " %lu (از لینوکس 2.6.27)" (در x86 با فعال بودن .B CONFIG_X86_64 و .BR CONFIG_X86_DIRECT_GBPAGES ). .RE .SH "همچنین ببینید (SEE ALSO)" .BR proc (5)