bup-memtest(1) General Commands Manual bup-memtest(1)

bup-memtest - آزمایش و تحلیل میزان مصرف حافظه رم در bup

bup memtest [گزینه‌ها...]

دستور bup memtest فهرست نمایه‌های بسته‌ها (pack indexes) را در مخزن bup شما باز می‌کند، سپس فهرست را برای یافتن مجموعه‌ای از اشیاء ناموجود جستجو کرده و پس از هر چرخه، آمار مصرف حافظه را چاپ می‌کند.

به دلیل شیوه کارکرد سیستم‌های یونیکس، خروجی معمولاً مقدار بزرگی (و بدون تغییر) را در ستون VmSize نشان می‌دهد، زیرا نگاشت پرونده‌های نمایه در گام نخست، مقدار مشخصی از فضای آدرس مجازی را اشغال می‌کند. با این حال، این میزان مصرف حافظه کاملاً مجازی است و هیچ فضایی از حافظه رم (RAM) شما را اشغال نمی‌کند. با گذشت زمان، bup از بخش‌هایی از نمایه‌ها استفاده می‌کند که باید از دیسک بارگذاری شوند، و همین امر دلیل افزایش مقدار ستون VmRSS است.

تعیین تعداد اشیایی که در طول هر چرخه جستجو می‌شوند (یعنی پیش از چاپ یک خط خروجی).
تعیین تعداد چرخه‌ها (یعنی تعداد خطوط خروجی پس از خط اول). خط نخست خروجی همواره ۰ است (یعنی خط پایه پیش از جستجو برای هرگونه شیء).
نادیده گرفتن هرگونه پرونده .midx ایجادشده توسط bup midx. این گزینه به شما امکان می‌دهد کارایی حافظه را با و بدون استفاده از midx مقایسه کنید.
جستجو برای اشیاء موجود به جای جستجو برای اشیاء تصادفی و ناموجود. این کار می‌تواند تأثیر زیادی بر میزان مصرف حافظه و کارایی بگذارد. توجه داشته باشید که در بیشتر مواقع، bup save بیشتر زمان خود را صرف جستجوی اشیاء ناموجود می‌کند، زیرا اشیاء موجود احتمالاً در پرونده‌های تغییرنیافته‌ای هستند که در هر صورت قصد پشتیبان‌گیری از آن‌ها را نداریم. بنابراین رفتار پیش‌فرض، عملکرد واقعی bup را با دقت بیشتری منعکس می‌کند. اما ممکن است بخواهید از این گزینه استفاده کنید تا مطمئن شوید که جستجوی اشیاء موجود نسبت به قبل بسیار بدتر نشده باشد.

$ bup memtest -n300 -c5
PackIdxList: using 1 index.
               VmSize      VmRSS     VmData      VmStk
        0    20824 kB    4528 kB    1980 kB      84 kB
      300    20828 kB    5828 kB    1984 kB      84 kB
      600    20828 kB    6844 kB    1984 kB      84 kB
      900    20828 kB    7836 kB    1984 kB      84 kB
     1200    20828 kB    8736 kB    1984 kB      84 kB
     1500    20828 kB    9452 kB    1984 kB      84 kB
$ bup memtest -n300 -c5 --ignore-midx
PackIdxList: using 361 indexes.
               VmSize      VmRSS     VmData      VmStk
        0    27444 kB    6552 kB    2516 kB      84 kB
      300    27448 kB   15832 kB    2520 kB      84 kB
      600    27448 kB   17220 kB    2520 kB      84 kB
      900    27448 kB   18012 kB    2520 kB      84 kB
     1200    27448 kB   18388 kB    2520 kB      84 kB
     1500    27448 kB   18556 kB    2520 kB      84 kB

هنگام بهینه‌سازی نمایه‌سازی در bup، نخستین هدف پایین نگه داشتن VmRSS در حدی معقول است. با این حال، ممکن است در نهایت تعویض (swap in) تمام نمایه‌ها ضروری شود، صرفاً به این دلیل که اشیاء زیادی را جستجو می‌کنید و این امر در نهایت باعث می‌شود مقدار RSS شما به اندازه VmSize رشد کند.

کلمه کلیدی در اینجا در نهایت است. تا زمانی که VmRSS با سرعتی معقول و آهسته رشد کند، میزان فعالیت دیسک ناشی از دسترسی به نمایه‌های بسته‌ها نسبتاً کم است. اگر این مقدار به سرعت رشد کند، bup احتمالاً بیشتر زمان خود را صرف جابجایی داده‌های نمایه از دیسک به حافظه می‌کند تا اینکه در عمل نسخه پشتیبان شما را تهیه نماید، بنابراین پشتیبان‌گیری بسیار کند اجرا خواهد شد.

هدف از bup memtest این است که به شما تصوری از سرعت رشد مصرف حافظه بدهد و به بهینه‌سازی bup برای استفاده بهتر از حافظه کمک کند. اگر با مشکلات حافظه روبرو هستید، ممکن است از شما خواسته شود خروجی bup memtest را برای کمک به تشخیص و عیب‌یابی مشکلات ارسال کنید.

نکته: دستور bup midx -a یا bup midx -f را امتحان کنید تا ببینید آیا به کاهش مصرف حافظه شما کمک می‌کند یا خیر.

نکته جانبی: مصرف حافظه نمایه در bup (یا git) تنها زمانی یک مشکل واقعی به شمار می‌رود که تعداد زیادی شیء جدید که قبلاً دیده نشده‌اند افزوده شود. زیرا برای هر شیء، باید کاملاً مطمئن شویم که پیش‌تر در پایگاه داده وجود ندارد، که این امر مستلزم جستجو در میان تمام نمایه‌های بسته‌های موجود است تا اطمینان حاصل شود هیچ‌یک از آن‌ها حاوی شیء مورد نظر نیستند. در حالت واضح‌تر جستجو برای اشیایی که وجود دارند، اشیایی که جستجو می‌شوند معمولاً به نحوی با یکدیگر مرتبط هستند؛ به این معنی که احتمالاً همگی در تعداد کمی از پرونده‌های بسته (packfiles) قرار دارند، بنابراین مصرف حافظه تنها به همان نمایه‌های پرونده‌های بسته محدود خواهد شد.

از آنجا که کاربران git معمولاً در یک بار اجرا پرونده‌های زیادی اضافه نمی‌کنند، git واقعاً به برنامه‌ای مانند bup midx نیازی ندارد. از طرف دیگر، bup بیشتر زمان خود را صرف پشتیبان‌گیری از پرونده‌هایی می‌کند که قبلاً ندیده است، بنابراین الگوهای مصرف حافظه آن متفاوت است.

bup-midx(1)

بخشی از مجموعه bup(1).

Avery Pennarun apenwarr@gmail.com.

2026-09-01 Bup 0.34+