VFS_AIO_RATELIMIT(8) System Administration tools VFS_AIO_RATELIMIT(8)

vfs_aio_ratelimit - پیاده‌سازی محدودسازی نرخ ورودی/خروجی ناهمگام (async-I/O) برای سامبا

vfs objects = aio_ratelimit

این ماژول VFS بخشی از مجموعه samba(7) است.

ماژول VFS با نام aio_ratelimit محدودسازی نرخ (rate-limiting) در زمان اجرا را روی اشتراک‌های مشخص از طریق اعمال حد بالا بر عملیات ورودی/خروجی ناهمگام (async I/O) فعال می‌کند. یک مدیر سیستم می‌تواند این حد را به‌صورت عملیات بر ثانیه یا بایت بر ثانیه تعریف کند. هنگامی که یکی از این محدودیت‌ها فراتر رود، مقداری تأخیر (به میکروثانیه) بر اساس بار ورودی/خروجی جاری محاسبه شده و به عملیات async I/O تزریق می‌شود، که سقفی ضمنی برای توان عملیاتی به وجود می‌آورد.

یک حد مجاز جهش (burst allowance) قابل پیکربندی از طریق ضریب جهش پشتیبانی می‌شود، که امکان جهش‌های کوتاه‌مدت فراتر از نرخ حالت پایدار را در عین اعمال سقف بلندمدت فراهم می‌سازد. وضعیت محدودکننده نرخ به‌طور دوره‌ای در یک TDB محلی ذخیره می‌شود، که امکان اعمال مداوم محدودیت‌ها را در اتصال‌های مجدد کلاینت و راه‌اندازی‌های مجدد smbd ممکن می‌سازد.

این ماژول تنها روی عملیات ناهمگام READ/WRITE در VFS عمل می‌کند.

این ماژول قابل پشته‌سازی (stackable) است.

استفاده سرراست:

[share]
path = /path/to/share
vfs objects = aio_ratelimit

aio_ratelimit:read_iops_limit = count

حد بالای عملیات READ بر ثانیه قبل از تزریق تأخیرها. مقدار صفر به معنای نبود محدودیت است.

پیش‌فرض: 0، بیشینه: 1000000

مثال: aio_ratelimit:read_iops_limit = 1000

aio_ratelimit:read_bw_limit = count

حد بالای پهنای باند READ (بایت بر ثانیه) قبل از تزریق تأخیرها. مقدار صفر به معنای نبود محدودیت است. از پسوندهای اندازه (K، M، G، T) پشتیبانی می‌کند.

پیش‌فرض: 0، بیشینه: 1T

مثال: aio_ratelimit:read_bw_limit = 2M

aio_ratelimit:read_burst_mult = value

ضریب جهش برای عملیات READ، بیان‌شده بر حسب دهم (مثلاً 15 = 1.5x). ظرفیت سطل توکن (token bucket) را به‌صورت مضربی از حد نرخ تعریف می‌کند، که امکان جهش‌های کوتاه‌مدت فراتر از نرخ حالت پایدار را می‌دهد.

پیش‌فرض: 15 (1.5x)، بیشینه: 100 (10x)

مثال: aio_ratelimit:read_burst_mult = 20

aio_ratelimit:write_iops_limit = count

حد بالای عملیات WRITE بر ثانیه قبل از تزریق تأخیرها. مقدار صفر به معنای نبود محدودیت است.

پیش‌فرض: 0، بیشینه: 1000000

مثال: aio_ratelimit:write_iops_limit = 1000

aio_ratelimit:write_bw_limit = count

حد بالای پهنای باند WRITE (بایت بر ثانیه) قبل از تزریق تأخیرها. مقدار صفر به معنای نبود محدودیت است. از پسوندهای اندازه (K، M، G، T) پشتیبانی می‌کند.

پیش‌فرض: 0، بیشینه: 1T

مثال: aio_ratelimit:write_bw_limit = 1M

aio_ratelimit:write_burst_mult = value

ضریب جهش برای عملیات WRITE، بیان‌شده بر حسب دهم (مثلاً 15 = 1.5x). ظرفیت سطل توکن را به‌صورت مضربی از حد نرخ تعریف می‌کند، که امکان جهش‌های کوتاه‌مدت فراتر از نرخ حالت پایدار را می‌دهد.

پیش‌فرض: 15 (1.5x)، بیشینه: 100 (10x)

مثال: aio_ratelimit:write_burst_mult = 15

پارامترهای read_burst_mult و write_burst_mult حداکثر ظرفیت جهش محدودکننده نرخ را نسبت به حدود نرخ پیکربندی‌شده کنترل می‌کنند. ظرفیت جهش مؤثر به‌صورت زیر محاسبه می‌شود: rate_limit * (burst_mult / 10).

برای مثال، با read_iops_limit = 1000 و read_burst_mult = 15، ظرفیت جهش 1000 * 1.5 = 1500 IOPS خواهد بود.

این ویژگی امکان جهش‌های کوتاه‌مدت ورودی/خروجی فراتر از نرخ حالت پایدار را فراهم می‌کند در حالی که همچنان حد بلندمدت پیکربندی‌شده اعمال می‌شود.

ضریب جهش مناسب به ویژگی‌های بار کاری بستگی دارد. بارهای کاری با درخواست‌های ورودی/خروجی ناهمگام بزرگ‌تر یا متغیرتر ممکن است برای جلوگیری از کاهش سرعت زودهنگام (throttling) به مقدار جهش بالاتری نیاز داشته باشند، در حالی که بارهای کاری کوچک‌تر یا حساس به تاخیر ممکن است از مقادیر پایین‌تر بهره‌مند شوند.


نکته

پارامترهای read_burst_mult و write_burst_mult میانگین توان عملیاتی بلندمدت را تغییر نمی‌دهند، که به ترتیب توسط read_iops_limit/read_bw_limit و write_iops_limit/write_bw_limit محدود باقی می‌ماند. مقادیر جهش بالاتر تنها روی شتاب اولیه و بازیابی از دوره‌های بی‌باری اثر می‌گذارند.

این صفحه راهنما بخشی از نسخه 4.24.6 مجموعه Samba است.

نرم‌افزار اصلی Samba و ابزارهای مرتبط توسط Andrew Tridgell ساخته شده‌اند. Samba اکنون توسط تیم Samba به‌صورت یک پروژه متن‌باز مشابه نحوه توسعه هسته لینوکس توسعه می‌یابد.

08/16/2026 Samba 4.24.6