.\" Man page generated from reStructuredText .\" by the Docutils 0.22.4 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "vinyld" "1" "" "" .SH "نام (NAME)" vinyld \- دیمن شتاب‌دهنده HTTP .\" Copyright (c) 2010-2020 Varnish Software AS .\" SPDX-License-Identifier: BSD-2-Clause .\" See LICENSE file for full text of license . .SH "خلاصه دستور (SYNOPSIS)" .INDENT 0.0 .TP .B vinyld [\-a [name=][listen_address[,PROTO|,option=value,...]] [\-b [host[:port]|path]] [\-C] [\-d] [\-E extension] [\-F] [\-f config] [\-h type[,options]] [\-I clifile] [\-i identity] [\-j jail[,jailoptions]] [\-l vsl] [\-M address:port] [\-n workdir] [\-P file] [\-p param=value] [\-r param[,param...]] [\-S secret\-file] [\-s [name=]kind[,options]] [\-T address[:port]] [\-t TTL] [\-V] [\-W waiter] .UNINDENT .sp vinyld [\-x parameter|vsl|cli|builtin|optstring] .sp vinyld [\-?] .SH "توضیحات (DESCRIPTION)" .sp دیمن \fIvinyld\fP درخواست‌های HTTP را از کلاینت‌ها می‌پذیرد، آن‌ها را به یک سرور پس‌زمینه (backend) منتقل می‌کند و اسناد بازگردانده‌شده را کَش می‌کند تا به درخواست‌های آتی برای همان سند با کارایی بهتری پاسخ دهد. .SH "گزینه‌ها (OPTIONS)" .SS "گزینه‌های پایه (Basic options)" .INDENT 0.0 .TP .BI \-a \ <[name=][listen_address[,PROTO|,option=value,...]]> ساختار کلی برای پذیرش درخواست‌های کلاینت روی یک listen_address. برای جزئیات به ادامه مراجعه کنید. .sp نام (Name) در گزارش‌ها ارجاع داده می‌شود و در VCL با عنوان \fBlocal.socket\fP در دسترس است. اگر نام مشخص نشود، از حرف \fBa\fP همراه با یک توالی عددی (\(dqa0\(dq، \(dqa1\(dq و غیره) استفاده می‌شود. .sp هر آرگومان پس از listen_address که با ویرگول جدا شده باشد، در صورتی که حاوی \fB=\fP باشد به عنوان یک جفت \fBoption=value\fP گیرنده (acceptor)، و در غیر این صورت به عنوان انتخاب پروتکل (PROTO) در نظر گرفته می‌شود. .sp گزینه‌های معتبر به نوع گیرنده بستگی دارند؛ به ادامه متن مراجعه کنید. .sp مقدار PROTO می‌تواند \(dqHTTP\(dq (پیش‌فرض) یا \(dqPROXY\(dq باشد. هر دو نسخه ۱ و ۲ پروتکل proxy قابل استفاده هستند. .sp استفاده از چند آرگومان \-a مجاز است. .sp اگر هیچ آرگومان \-a داده نشود، پیش‌فرض \fI\-a :80\fP روی تمام رابط‌های IPv4 و IPv6 گوش فرا می‌دهد. .TP .BI \-a \ <[name=][ip_address][:port][,PROTO]> مقدار ip_address می‌تواند یک نام میزبان (\(dqlocalhost\(dq)، یک نشانی IPv4 چهاربخشی نقطه‌دار (\(dq127.0.0.1\(dq) یا یک نشانی IPv6 محصور در قلاب (\(dq[::1]\(dq) باشد. .sp مقدار port می‌تواند یک شماره درگاه (80)، نام یک سرویس (http) یا یک محدوده درگاه (80\-81) باشد. محدوده‌های درگاه فراگیر هستند و نمی‌توانند همپوشانی داشته باشند. اگر port مشخص نشود، درگاه 80 (http) استفاده می‌شود. .sp مشخص کردن حداقل یکی از موارد ip_address یا port الزامی است. .TP .BI \-a \ <[name=][path][,PROTO][,user=name][,group=name][,mode=octal]> (VCL نسخه 4.1 و بالاتر) .sp پذیرش اتصالات روی یک سوکت دامنه یونیکس (Unix domain socket). مسیر path باید به صورت مطلق (\(dq/path/to/listen.sock\(dq) باشد یا با \(dq@\(dq و به دنبال آن نام یک سوکت انتزاعی بیاید (\(dq@myvinyld\(dq). .sp زیرآرگومان‌های user، group و mode می‌توانند برای تعیین مجوزهای دسترسی فایل سوکت استفاده شوند \-\- برای user و group از نام‌ها و برای mode از یک مقدار ۳ رقمی اکتال استفاده کنید. این زیرآرگومان‌ها برای سوکت‌های انتزاعی اعمال نمی‌شوند. .TP .BI \-b \ <[host[:port]|path]> استفاده از میزبان مشخص‌شده به عنوان سرور پس‌زمینه (backend). اگر port مشخص نشود، پیش‌فرض 8080 است. .sp اگر مقدار \fB\-b\fP با \fB/\fP آغاز شود، به عنوان مسیر مطلق یک سوکت دامنه یونیکس تفسیر می‌شود که \fIvinyld\fP به آن متصل می‌گردد. در این حالت، مقدار \fB\-b\fP باید شرایط لازم برای فیلد \fB\&.path\fP در تعریف backend را برآورده کند؛ به \fIvcl(7)\fP مراجعه کنید. سرورهای پس‌زمینه با آدرس‌های سوکت یونیکس فقط با نسخه‌های VCL بالاتر یا مساوی 4.1 قابل استفاده هستند. .sp گزینه \-b فقط یک بار می‌تواند استفاده شود و نمی‌توان آن را همراه با f به کار برد. .TP .BI \-f \ config استفاده از فایل پیکربندی VCL مشخص‌شده به جای مقدار پیش‌فرض داخلی. برای جزئیات در مورد نحو VCL به \fIvcl(7)\fP مراجعه کنید. .sp اگر تنها از یک گزینه \-f استفاده شود، نمونه VCL بارگذاری‌شده از فایل، \(dqboot\(dq نام‌گذاری می‌شود و بلافاصله فعال می‌گردد. اگر بیش از یک گزینه \-f استفاده شود، نمونه‌های VCL به ترتیبی متناظر با آرگومان‌های \-f با نام‌های \(dqboot0\(dq، \(dqboot1\(dq و به همین ترتیب نام‌گذاری می‌شوند و آخرین مورد \(dqboot\(dq نامیده شده و فعال می‌گردد. .sp باید یا \-b یا یک یا چند گزینه \-f مشخص شوند، اما نه هر دو، و هیچ‌کدام نیز نمی‌توانند حذف شوند؛ مگر اینکه \-d برای راه‌اندازی \fIvinyld\fP در حالت اشکال‌زدایی (debugging) استفاده شود. اگر یک رشته خالی به عنوان تنها گزینه \-f مشخص گردد، \fIvinyld\fP بدون شروع فرایند کارگر راه‌اندازی می‌شود و فرایند مدیریتی دستورات CLI را می‌پذیرد. همچنین می‌توانید یک گزینه خالی \-f را با یک اسکریپت مقداردهی اولیه (گزینه \-I) ترکیب کنید؛ در این صورت اگر در پایان مقداردهی اولیه یک VCL فعال وجود داشته باشد، فرایند فرزند راه‌اندازی خواهد شد. .sp هنگامی که با یک نام فایل نسبی استفاده شود، config در \fBvcl_path\fP جستجو می‌شود. می‌توان این مسیر را قبل از استفاده از گزینه‌های \fB\-f\fP با استفاده از گزینه \fB\-p\fP تنظیم کرد. در حین راه‌اندازی، \fIvinyld\fP نسبت به مسیرهای ناامن VCL هشداری نمی‌دهد: برخلاف \fIvinyl\-cli(7)\fP که ممکن است بعداً از راه دور قابل دسترسی باشد، راه‌اندازی \fIvinyld\fP نیازمند دسترسی‌های محلی است. .UNINDENT .INDENT 0.0 .TP .BI \-n \ workdir دایرکتوری زمان اجرا برای حافظه اشتراکی، VCLهای کامپایل‌شده و غیره. .sp در کاربردهایی که کارایی بسیار حیاتی است، این دایرکتوری باید روی یک سیستم‌فایل مبتنی بر حافظه RAM قرار گیرد. .sp هنگام اجرای چندین نمونه از vinyld، باید از دایرکتوری‌های جداگانه استفاده شود. .sp مقدار پیش‌فرض از متغیر محیطی \fBVINYL_DEFAULT_N\fP دریافت می‌شود. .sp مسیرهای نسبی به انتهای مسیر \fB/var/lib/lib/vinyl\-cache\fP افزوده خواهند شد. .sp اگر نه \fBVINYL_DEFAULT_N\fP و نه \fB\-n\fP وجود نداشته باشند، مقدار پیش‌فرض \fB/var/lib/lib/vinyl\-cache/vinyld\fP خواهد بود. .sp نکته: این مقادیر پیش‌فرض ممکن است مختص به توزیع باشند. .UNINDENT.SS "گزینه‌های مستندات (Documentation options)" .sp برای این گزینه‌ها، \fIvinyld\fP اطلاعات را در خروجی استاندارد چاپ کرده و خارج می‌شود. هنگامی که از گزینه \-x استفاده می‌شود، این گزینه باید تنها گزینه مشخص‌شده باشد (مستندات را در قالب reStructuredText که به RST نیز معروف است، خروجی می‌دهد). .sp \-? .INDENT 0.0 .INDENT 3.5 چاپ پیام راهنمای استفاده. .UNINDENT .UNINDENT .INDENT 0.0 .TP .BI \-x \ parameter چاپ مستندات پارامترهای زمان اجرا (گزینه‌های \-p)، بخش List of Parameters را ببینید\&. .TP .BI \-x \ vsl چاپ مستندات برچسب‌های استفاده‌شده در گزارش حافظه مشترک Vinyld Cache، \fIvsl(7)\fP را ببینید\&. .TP .BI \-x \ cli چاپ مستندات رابط خط فرمان، \fIvinyl\-cli(7)\fP را ببینید\&. .TP .BI \-x \ builtin چاپ محتویات برنامه پیش‌فرض VCL با نام \fBbuiltin.vcl\fP\&. .TP .BI \-x \ optstring چاپ پارامتر optstring برای \fBgetopt(3)\fP جهت کمک به نوشتن اسکریپت‌های پوششی (wrapper). .UNINDENT .SS "گزینه‌های عملیاتی (Operations options)" .INDENT 0.0 .TP .B \-F انشعاب ایجاد نشود (fork نشود)، در پیش‌زمینه اجرا شود. تنها یکی از گزینه‌های \-F یا \-d می‌تواند مشخص شود، و \-F را نمی‌توان همراه با \-C استفاده کرد. .TP .BI \-T \ ارائه یک رابط مدیریتی روی آدرس و درگاه مشخص‌شده. برای مستندات دستورهای مدیریتی \fIvinyl\-cli(7)\fP را ببینید. برای غیرفعال کردن رابط مدیریتی از \fBnone\fP استفاده کنید\&. .TP .BI \-M \ اتصال به این درگاه و ارائه رابط خط فرمان. آن را مانند یک شل معکوس (reverse shell) در نظر بگیرید. هنگام اجرا با \-M در صورتی که هیچ پس‌اندازی (backend) تعریف نشده باشد، فرایند فرزند (حافظه پنهان) در ابتدا آغاز به کار نخواهد کرد. .TP .BI \-P \ file نوشتن PID فرایند در فایل مشخص‌شده. .TP .BI \-i \ identity مشخص کردن شناسه کارساز Vinyl Cache. این مقدار با استفاده از \fBserver.identity\fP از طریق VCL قابل دسترسی است. .sp شناسه کارساز برای فیلد \fBreceived\-by\fP در هدرهای \fBVia\fP تولیدشده توسط Vinyl Cache استفاده می‌شود. به همین دلیل، باید یک نشانه (token) معتبر بر اساس دستور زبان HTTP باشد. .sp اگر مشخص نشود، از خروجی \fBgethostname(3)\fP استفاده می‌شود که در این حالت درستی ساختار نحوی آن فرض می‌شود. .TP .BI \-I \ clifile اجرای دستورهای مدیریتی موجود در فایل داده‌شده تحت عنوان \fBclifile\fP پیش از شروع فرایند کارگر (worker process)، بخش CLI Command File را ببینید\&. .TP .BI \-E \ extension بارگذاری افزونه با نام مشخص‌شده. افزونه‌ها ماژول‌هایی (VMODها) هستند که می‌توانند رفتار \fIvinyld\fP را خارج از VCL تغییر دهند؛ برای نمونه با افزودن پیاده‌سازی‌های ذخیره‌سازی یا پروتکل. افزونه‌ها همواره VMOD نیز هستند، حتی اگر هیچ قابلیتی به VCL ارائه ندهند، هرچند در بیشتر موارد ارائه می‌دهند. .sp هر VMOD می‌تواند به عنوان یک افزونه بارگذاری شود، که در این حالت صرفاً هنگام راه‌اندازی از پیش بارگذاری شده و از تخلیه شدن آن از حافظه جلوگیری می‌شود. .sp اگر \fIextension\fP دارای هرگونه ممیز \fB/\fP باشد، به عنوان یک مسیر مطلق در نظر گرفته می‌شود. در غیر این صورت، برای \fIextension\fP با نام \fBext\fP، فایل \fBvmod_ext.so\fP در \fBvmod_path\fP جستجو می‌شود\&. .sp در صورتی که بارگذاری افزونه به هر دلیلی با شکست مواجه شود، راه‌اندازی \fBvinyld\fP ناموفق خواهد بود. .UNINDENT.SS گزینه‌های تنظیم (Tuning options) .INDENT 0.0 .TP .BI \-t \ TTL طول عمر پیش‌فرض (TTL) را برای اشیاء ذخیره‌شده در حافظهٔ پنهان مشخص می‌کند. این گزینه یک میان‌بُر برای تعیین پارامتر زمان اجرای \fIdefault_ttl\fP است. .TP .BI \-p \ پارامتر مشخص‌شده توسط param را بر روی مقدار تعیین‌شده تنظیم می‌کند؛ برای جزئیات به بخش فهرست پارامترها (List of Parameters) مراجعه کنید. این گزینه می‌تواند چندین بار برای تعیین چندین پارامتر به کار رود. .TP .BI \-s \ <[name=]type[,options]> از پشتیبان ذخیره‌سازی (storage backend) مشخص‌شده استفاده می‌کند. بخش Storage Backend را ببینید. .sp این گزینه می‌تواند چندین بار برای تعیین چندین فایل ذخیره‌سازی به کار رود. از name در لاگ‌ها، VCL، آمارها و غیره استفاده می‌شود. اگر name مشخص نشده باشد، به ترتیب از \(dqs0\(dq، \(dqs1\(dq و موارد پس از آن استفاده خواهد شد. .TP .BI \-l \ اندازهٔ فضا برای رکوردهای VSL را مشخص می‌کند که کوتاه‌نوشتی برای \fB\-p vsl_space=\fP\& است. پسوندهای مقیاس‌بندی مانند \(aqK\(aq و \(aqM\(aq تا سقف گیگابایت (G) قابل استفاده هستند. برای اطلاعات بیشتر vsl_space را ببینید. .UNINDENT .SS گزینه‌های امنیتی (Security options) .INDENT 0.0 .TP .BI \-r \ پارامترهای فهرست‌شده را فقط‌خواندنی می‌کند. این کار به مدیر سیستم روشی برای محدود کردن توانایی‌های CLI نرم‌افزار Vinyl Cache می‌دهد. فقط‌خواندنی کردن پارامترهایی چون \fIcc_command\fP، \fIvcc_allow_inline_c\fP و \fIvmod_path\fP را مد نظر قرار دهید، چرا که این موارد به طور بالقوه می‌توانند برای ارتقای دسترسی از طریق CLI مورد استفاده قرار گیرند. .TP .BI \-S \ secret\-file مسیر فایلی حاوی یک کلید محرمانه که برای مجازشماری دسترسی به درگاه مدیریت استفاده می‌شود. برای غیرفعال کردن احراز هویت از \fBnone\fP\& استفاده کنید. .sp اگر این آرگومان ارائه نشود، یک کلید محرمانه برگرفته از PRNG سیستم در فایلی به نام \fB_.secret\fP در پوشهٔ کاری (گزینه opt_n را ببینید) با مالکیت و مجوزهای پیش‌فرض کاربری که \fIvinyld\fP\& را آغاز کرده نوشته خواهد شد. .sp بنابراین، کاربرانی که تمایل دارند کنترل \fIvinyld\fP\& را تفویض کنند احتمالاً مایل به ایجاد یک فایل محرمانهٔ سفارشی با مجوزهای دسترسی مناسب خواهند بود (یعنی قابل خواندن توسط یک گروه یونیکس که قرار است کنترل به آن تفویض شود). .TP .BI \-j \ سازوکار ایزوله‌سازی (jail) مورد استفاده را مشخص می‌کند. بخش Jail را ببینید. .UNINDENT .SS گزینه‌های پیشرفته، توسعه و اشکال‌زدایی (Advanced, development and debugging options) .INDENT 0.0 .TP .B \-d حالت اشکال‌زدایی (debugging) را فعال می‌کند: فرایند والد در پیش‌زمینه همراه با یک اتصال CLI روی stdin/stdout اجرا می‌شود، و فرایند فرزند باید صراحتاً با یک دستور CLI راه‌اندازی شود. خاتمه دادن به فرایند والد فرایند فرزند را نیز خاتمه خواهد داد. .sp تنها یکی از گزینه‌های \-d یا \-F می‌تواند تعیین شود، و \-d نمی‌تواند همراه با \-C استفاده شود. .TP .B \-C کد VCL کامپایل‌شده به زبان C را چاپ کرده و خارج می‌شود. فایل VCL مورد نظر برای کامپایل را با گزینهٔ \-f تعیین کنید. همراه با \-C باید حتماً یکی از گزینه‌های \-f یا \-b به کار رود، و \-C نمی‌تواند همراه با \-F یا \-d استفاده شود. .TP .B \-V شمارهٔ نسخه را نمایش داده و خارج می‌شود. این باید تنها گزینهٔ ارائه‌شده باشد. .TP .BI \-h \ الگوریتم درهم‌سازی (hash) را مشخص می‌کند. برای فهرستی از الگوریتم‌های پشتیبانی‌شده به بخش Hash Algorithm مراجعه کنید. .TP .BI \-W \ waiter نوع waiter مورد استفاده را مشخص می‌کند. .UNINDENT .SS الگوریتم درهم‌سازی (Hash Algorithm) .sp الگوریتم‌های درهم‌سازی زیر در دسترس هستند: .INDENT 0.0 .TP .BI \-h \ critbit یک ساختار درختی خودبزرگ‌شونده (self\-scaling). الگوریتم درهم‌سازی پیش‌فرض در Vinyl Cache نسخهٔ 2.1 و پس از آن. در مقایسه با درخت B سنتی، درخت critbit تقریباً کاملاً بدون قفل (lockless) است. این گزینه را تغییر ندهید مگر آن‌که دقیقاً بدانید چه کاری انجام می‌دهید. .TP .BI \-h \ simple_list یک فهرست پیوندی دوطرفهٔ ساده. برای استفاده در محیط‌های عملیاتی (production) توصیه نمی‌شود. .TP .BI \-h \ یک جدول درهم‌سازی استاندارد. کلید درهم‌سازی برابراست با باقیماندهٔ تقسیم مقدار CRC32 آدرس URL شیء بر اندازهٔ جدول درهم‌سازی. هر مدخل در جدول به فهرستی از عناصر اشاره می‌کند که کلید درهم‌سازی مشترکی دارند. پارامتر buckets تعداد مدخل‌های درون جدول درهم‌سازی را تعیین می‌کند. مقدار پیش‌فرض 16383 است. .UNINDENT.SS "بک‌اند ذخیره‌سازی (Storage Backend)" .sp می‌توان چندین بک‌اند ذخیره‌سازی (جایی که اشیاء کَش‌شده و در حال انتقال نگهداری می‌شوند) تعریف کرد، و VCL می‌تواند با تنظیم متغیر \fIberesp.storage\fP تعیین کند که از کدام حافظه استفاده شود (برای اطلاعات بیشتر \fIman vcl\-var\fP را ببینید). .sp قالب آرگومان برای تعریف بک‌اندهای ذخیره‌سازی به این صورت است: .INDENT 0.0 .TP .BI \-s \ <[name]=kind[,options]> اگر \fIname\fP حذف شود، \fIvinyld\fP ذخیره‌سازها را با \fBs\fP\fIN\fP نام‌گذاری می‌کند، که از \fBs0\fP شروع شده و به ازای هر ذخیره‌ساز جدید، مقدار \fIN\fP یکی افزایش می‌یابد. .sp برای \fIkind\fP و \fIoptions\fP به جزئیات زیر مراجعه کنید. .UNINDENT .sp ذخیره‌سازها می‌توانند در VCL به صورت \fBstorage.\fP\fIname\fP استفاده شوند؛ بنابراین، برای نمونه اگر \fBmyStorage\fP با \fB\-s myStorage=malloc,5G\fP تعریف شده باشد، می‌تواند در VCL به این شکل به کار رود: .INDENT 0.0 .INDENT 3.5 .sp .EX set beresp.storage = storage.myStorage; .EE .UNINDENT .UNINDENT .sp یک \fIname\fP ویژه، \fBTransient\fP است که ذخیره‌ساز پیش‌فرض برای اشیاء غیرقابل کَش ناشی از یک pass، hit\-for\-miss یا hit\-for\-pass به شمار می‌رود. .sp اگر هیچ گزینهٔ \fB\-s\fP داده نشود، مقدار پیش‌فرض چنین است: .INDENT 0.0 .INDENT 3.5 .sp .EX \-s default,100m .EE .UNINDENT .UNINDENT .sp اگر هیچ ذخیره‌ساز \fBTransient\fP تعریف نشود، پیش‌فرض یک ذخیره‌ساز نامحدود \fBdefault\fP خواهد بود، گویی به این صورت تعریف شده است: .INDENT 0.0 .INDENT 3.5 .sp .EX \-s Transient=default .EE .UNINDENT .UNINDENT .sp انواع ذخیره‌سازی و گزینه‌های زیر در دسترس هستند: .INDENT 0.0 .TP .BI \-s \ نوع ذخیره‌سازی پیش‌فرض، در صورت در دسترس بودن به \fBumem\fP و در غیر این صورت به \fBmalloc\fP تبدیل می‌شود. .TP .BI \-s \ ‏malloc یک بک‌اند مبتنی بر حافظه است. .TP .BI \-s \ ‏umem یک بک‌اند ذخیره‌سازی است که در بسترهایی که موجود باشد، کارایی بیشتری نسبت به malloc دارد. .sp برای جزئیات، بخش مربوط به umem را در فصل \fIStorage backends\fP از راهنمای \fIThe Vinyl Users Guide\fP ببینید. .TP .BI \-s \ بک‌اند file داده‌ها را در یک فایل روی دیسک ذخیره می‌کند. دسترسی به فایل با استفاده از mmap انجام خواهد شد. توجه داشته باشید که این ذخیره‌ساز هیچ ماندگاری کَشی ارائه نمی‌دهد. .sp مسیر (path) اجباری است. اگر مسیر به یک دایرکتوری اشاره کند، یک فایل موقت در آن دایرکتوری ایجاد شده و بلافاصله پیوند آن حذف (unlink) می‌شود. اگر مسیر به فایلی اشاره کند که وجود ندارد، آن فایل ایجاد خواهد شد. .sp اگر size مشخص نشود و path به فایلی موجود با اندازهٔ بزرگ‌تر از صفر اشاره کند، اندازهٔ همان فایل استفاده خواهد شد. در غیر این صورت، یک خطا گزارش می‌شود. .sp آرگومان Granularity اندازهٔ بلوک تخصیص را مشخص می‌کند. مقدار پیش‌فرض آن اندازهٔ صفحهٔ سیستم (page size) یا اندازهٔ بلوک سیستم‌فایل است، هرکدام که بزرگ‌تر باشد. .sp آرگومان Advice به هسته اعلام می‌کند که \fIvinyld\fP انتظار دارد چگونه از این ناحیهٔ نگاشت‌شده استفاده کند تا هسته بتواند تکنیک‌های مناسب پیش‌خوانی (read\-ahead) و کَش‌کردن را انتخاب کند. مقادیر ممکن عبارتند از \fBnormal\fP، \fBrandom\fP و \fBsequential\fP، که به ترتیب متناظر با آرگومان‌های توصیهٔ MADV_NORMAL ،MADV_RANDOM و MADV_SEQUENTIAL در ()madvise هستند. مقدار پیش‌فرض \fBrandom\fP\& است. .TP .BI \-s \ ذخیره‌سازی ماندگار (Persistent storage). ابزار \fIvinyld\fP اشیاء را به شیوه‌ای در یک فایل ذخیره می‌کند که بقای \fIبیشتر\fP اشیاء را در صورت خاموش شدن برنامه‌ریزی‌شده یا برنامه‌ریزی‌نشدهٔ \fIvinyld\fP تضمین نماید. بک‌اند ذخیره‌سازی persistent مشکلات متعددی دارد و احتمالاً در نسخه‌های آیندهٔ Vinyl Cache حذف خواهد شد. .UNINDENT.SS "زندان (Jail)" .sp زندان‌های Vinyl Cache تعمیمی بر روش‌های گوناگون و وابسته به پلتفرم برای کاهش امتیازات فرایندهای \fIvinyld\fP هستند. آن‌ها ممکن است گزینه‌های خاص خود را داشته باشند. زندان‌های در دسترس عبارتند از: .INDENT 0.0 .TP .BI \-j \ کاهش \fIprivileges(5)\fP برای \fIvinyld\fP و زیرفرایندها به حداقل مجموعه مورد نیاز. تنها روی پلتفرم‌هایی که از فراخوانی \fIsetppriv(2)\fP پشتیبانی می‌کنند در دسترس است. .sp آرگومان اختیاری \fIworker\fP می‌تواند برای مشخص کردن امتیازها (به \fIppriv(1)\fP مراجعه کنید) به منظور گسترش مجموعه مؤثر فرایند کارگر (worker) در \fIvinyld\fP استفاده شود. با اینکه ممکن است امتیازات گسترش‌یافته برای vmodهای سفارشی لازم باشد، اما \fIعدم\fP استفاده از گزینه \fIworker\fP همواره امن‌تر است. .sp مثال برای اعطای امتیازات پایه به فرایند worker: .INDENT 7.0 .INDENT 3.5 .sp .EX \-j solaris,worker=basic .EE .UNINDENT .UNINDENT .TP .BI \-j \ حالت پیش‌فرض در پلتفرم‌های لینوکس؛ این گزینه زندان UNIX را با سازوکارهای ویژه لینوکس گسترش می‌دهد: .INDENT 7.0 .IP \(bu 2 اگر \fIworkdir\fP روی یک \fBtmpfs\fP نباشد، هشدار می‌دهد. .IP \(bu 2 تلاش می‌کند تا پس از رهاسازی امتیازات، فرایند همچنان قابلیت اشکال‌زدایی و ثبت حافظه (dumpable) را حفظ کند. .IP \(bu 2 امکان کنترل تنظیمات transparent hugepage (THP) را فراهم می‌آورد. .UNINDENT .sp \fIthp_setting\fP می‌تواند مقادیر زیر را بپذیرد: .INDENT 7.0 .IP \(bu 2 \fBignore\fP: هیچ کاری انجام ندهد. .IP \(bu 2 \fBenable\fP: فعال‌سازی THP (یادداشت زیر را ببینید). .IP \(bu 2 \fBdisable\fP: غیرفعال‌سازی THP. .IP \(bu 2 \fBtry\-disable\fP (پیش‌فرض): تلاش برای غیرفعال‌سازی و نادیده گرفتن خطا در صورت شکست (همراه با صدور یک هشدار). .UNINDENT .sp نکته: از نظر فنی، مقدار \fBenable\fP به معنای «غیرفعال‌سازیِ غیرفعال‌سازی» (\(dqdisable the disable\(dq) است، بنابراین لزوماً به معنی فعال‌سازی قطعی THP نیست. این نام‌گذاری‌ها برای جلوگیری از نفی دوگانه گیج‌کننده انتخاب شده‌اند. .TP .BI \-j \ پیش‌فرض در تمام پلتفرم‌های دیگر، هنگامی که \fIvinyld\fP با شناسه کاربری مؤثر 0 (به‌عنوان کاربر ریشه یا «root») اجرا می‌شود. .sp با فعال بودن سازوکار زندان \fBunix\fP، برنامه \fIvinyld\fP برای زیرفرایندها به یک کاربر جایگزین تغییر وضعیت می‌دهد و در صورت امکان، شناسه کاربری مؤثر فرایند اصلی را نیز تغییر می‌دهد. .sp آرگومان اختیاری \fIuser\fP تعیین می‌کند که از کدام کاربر جایگزین استفاده شود. مقدار پیش‌فرض آن \fBvinyl\fP است. .sp آرگومان اختیاری \fIccgroup\fP گروهی را برای افزودن به زیرفرایندهای \fBvinyld\fP که نیازمند دسترسی به کامپایلر C هستند مشخص می‌کند. این گزینه مقدار پیش‌فرضی ندارد. .sp آرگومان اختیاری \fIworkuser\fP کاربر جایگزین برای اجرای فرایند worker را مشخص می‌کند. مقدار پیش‌فرض آن \fBvcache\fP است. .sp کاربرانی که برای آرگومان‌های \fIuser\fP و \fIworkuser\fP تعریف می‌شوند باید دارای گروه اصلی یکسانی باشند. .sp برای کاربرانی که از Varnish Cache مهاجرت می‌کنند، می‌توان از دستورات پوسته‌ای مشابه زیر برای حذف کاربر و گروه پیش‌فرض قبلی استفاده کرد: .INDENT 7.0 .INDENT 3.5 .sp .EX userdel varnish || true userdel vcache || true userdel varnishlog || true # to remove reference to varnish group groupdel varnish || true .EE .UNINDENT .UNINDENT .sp برای آماده‌سازی یک سیستم با کاربران پیش‌فرض تحت گروهی با نام \fBvinyl\fP، می‌توان از دستورات پوسته مشابه زیر استفاده کرد: .INDENT 7.0 .INDENT 3.5 .sp .EX groupadd vinyl useradd \-g vinyl \-d /nonexistent \-s /bin/false \e \-c \(dqVinyl Cache Daemon User\(dq vinyl useradd \-g vinyl \-d /nonexistent \-s /bin/false \e \-c \(dqVinyl Cache Worker User\(dq vcache useradd \-g vinyl \-d /nonexistent \-s /bin/false \e \-c \(dqVinyl Log User\(dq vinyllog .EE .UNINDENT .UNINDENT .sp توجه داشته باشید که تعریف کاربر \fBvinyllog\fP الزامی نبوده و تنها از روی عرف اضافه شده است تا بتوان از آن برای اجرای \fBvinyllog\fP، \fBvinylncsa\fP و دیگر ابزارهای مبتنی بر VSM/VSL استفاده کرد. .TP .BI \-j \ none گزینه زندان به‌عنوان آخرین چاره: با سازوکار زندان \fBnone\fP، برنامه \fIvinyld\fP تمام فرایندها را با همان امتیازاتی که با آن‌ها اجرا شده بود، اجرا خواهد کرد. .UNINDENT.SS رابط مدیریتی .sp اگر گزینهٔ \-T مشخص شده باشد، \fIvinyld\fP یک رابط مدیریت خط‌فرمان را روی نشانی و درگاه (port) مشخص‌شده ارائه خواهد داد. روش توصیه‌شده برای اتصال به رابط مدیریتی خط‌فرمان از طریق \fIvinyladm(1)\fP است\&. .sp دستورهای دردسترس در \fIvinyl\-cli(7)\fP مستند شده‌اند\&. .SS فایل دستورهای CLI .sp گزینهٔ \-I اجرای دستورهای مدیریتی دلخواه را هنگام راه‌اندازی \fIvinyld\fP، پیش از آغاز فرایند کارگر (worker process)، ممکن می‌سازد. به‌ویژه، این روش برای بارگذاری پیکربندی‌ها، اعمال برچسب‌ها به آن‌ها، و فعال‌سازی نمونهٔ VCL در زمان راه‌اندازی که از آن برچسب‌ها استفاده می‌کند به کار می‌رود: .INDENT 0.0 .INDENT 3.5 .sp .EX vcl.load panic /etc/vinyl\-cache/panic.vcl vcl.load siteA0 /etc/vinyl\-cache/siteA.vcl vcl.load siteB0 /etc/vinyl\-cache/siteB.vcl vcl.load siteC0 /etc/vinyl\-cache/siteC.vcl vcl.label siteA siteA0 vcl.label siteB siteB0 vcl.label siteC siteC0 vcl.load main /etc/vinyl\-cache/main.vcl vcl.use main .EE .UNINDENT .UNINDENT .sp هر خط در فایل، از جمله خط پایانی، باید با یک سطر تازه (newline) یا بازگشت به ابتدای سطر (carriage return) پایان یابد، در غیر این صورت ناقص در نظر گرفته می‌شود که یک خطای مهلک (fatal error) است. .sp اگر دستوری در فایل با پیشوند \(aq\-\(aq مشخص شده باشد، شکست در اجرای آن مانع از راه‌اندازی نخواهد شد. .sp توجه داشته باشید که هنگام تکیه بر فایل دستورهای CLI برای بارگذاری پیکربندی‌ها در زمان راه‌اندازی، درج یک دستور صریح \fIvcl.use\fP جهت انتخاب این‌که کدام VCL باید VCL فعال باشد، الزامی است. .SH "پارامترهای زمان اجرا (RUN TIME PARAMETERS)" .sp پارامترهای زمان اجرا می‌توانند هنگام راه‌اندازی با گزینهٔ خط‌فرمان \fB\-p\fP برای \fIvinyld(1)\fP یا از طریق CLI با استفاده از دستورهای \fBparam.set\fP یا \fBparam.reset\fP تنظیم شوند. همچنین می‌توان آن‌ها را در زمان راه‌اندازی با گزینهٔ خط‌فرمان \fB\-r\fP قفل کرد. .SS واحدهای پارامترهای زمان اجرا .sp انواع مختلفی از پارامترها وجود دارند که ممکن است فهرستی از مقادیر مشخص را بپذیرند، یا به‌صورت اختیاری یک پسوند واحد دریافت کنند. .SS bool .sp یک پارامتر بولی مقادیر \fBon\fP و \fBoff\fP را می‌پذیرد\&. .sp این پارامتر مقادیر زیر را نیز شناسایی می‌کند: .INDENT 0.0 .IP \(bu 2 \fByes\fP و \fBno\fP .IP \(bu 2 \fBtrue\fP و \fBfalse\fP .IP \(bu 2 \fBenable\fP و \fBdisable\fP .UNINDENT .SS bytes .sp یک پارامتر bytes به یکی از پسوندهای واحدهای زیر نیاز دارد: .INDENT 0.0 .IP \(bu 2 \fBb\fP (بایت) .IP \(bu 2 \fBk\fP (کیبی‌بایت، 1024 بایت) .IP \(bu 2 \fBm\fP (مبی‌بایت، 1024 کیبی‌بایت) .IP \(bu 2 \fBg\fP (گیبی‌بایت، 1024 مبی‌بایت) .IP \(bu 2 \fBt\fP (تبی‌بایت، 1024 گیبی‌بایت) .IP \(bu 2 \fBp\fP (پبی‌بایت، 1024 تبی‌بایت) .UNINDENT .sp واحدهای ضریب را می‌توان با یک \fBb\fP اضافی ضمیمه کرد\&. برای نمونه \fB32k\fP معادل \fB32kb\fP است\&. واحدهای بایت به بزرگی یا کوچکی حروف حساس نیستند (case\-insensitive)..SS ثانیه‌ها (seconds) .sp یک پارامتر مدت‌زمان (duration) می‌تواند پسوندهای یکای زیر را بپذیرد: .INDENT 0.0 .IP \(bu 2 \fBms\fP (میلی‌ثانیه) .IP \(bu 2 \fBs\fP (ثانیه) .IP \(bu 2 \fBm\fP (دقیقه) .IP \(bu 2 \fBh\fP (ساعت) .IP \(bu 2 \fBd\fP (روز) .IP \(bu 2 \fBw\fP (هفته) .IP \(bu 2 \fBy\fP (سال) .UNINDENT .sp اگر پارامتر از نوع مهلت زمانی (timeout) یا موعد (deadline) باشد، مقدار \(dqnever\(dq (در صورت مجاز بودن) تأثیر پارامتر را غیرفعال می‌کند. .SS پرچم‌های پارامترهای زمان اجرا (Run Time Parameter Flags) .sp پارامترهای زمان اجرا با پرچم‌های اختصاری مشخص شده‌اند تا از تکرار چندبارهٔ متن یکسان در جدول زیر جلوگیری شود. معنای این پرچم‌ها به شرح زیر است: .INDENT 0.0 .IP \(bu 2 \fIexperimental\fP .sp ما اطلاعات موثقی دربارهٔ مقادیر خوب/بد/بهینه برای این پارامتر نداریم. از بازخوردها بر اساس تجربیات و مشاهدات به‌گرمی استقبال می‌شود. .IP \(bu 2 \fIdelayed\fP .sp این پارامتر می‌تواند در حین اجرا تغییر یابد، اما بلافاصله اعمال نخواهد شد. .IP \(bu 2 \fIrestart\fP .sp پیش از اعمال این پارامتر، فرایند worker باید متوقف و مجدداً راه‌اندازی شود. .IP \(bu 2 \fIreload\fP .sp برای اعمال این پارامتر، برنامه‌های VCL باید مجدداً بارگذاری (reload) شوند. .IP \(bu 2 \fIwizard\fP .sp به آن دست نزنید مگر اینکه \fIواقعاً\fP بدانید چه کار می‌کنید. .IP \(bu 2 \fIonly_root\fP .sp تنها در صورتی کار می‌کند که \fIvinyld\fP با دسترسی ریشه (root) در حال اجرا باشد. .UNINDENT .SS استثنائات مقادیر پیش‌فرض در سیستم‌های ۳۲ بیتی (Default Value Exceptions on 32 bit Systems) .sp توجه داشته باشید که در سیستم‌های ۳۲ بیتی، به‌منظور صرفه‌جویی در فضای حافظهٔ مجازی (VM)، برخی مقادیر پیش‌فرض یا بیشینه نسبت به مقادیر فهرست‌شده در زیر کاهش یافته‌اند: .INDENT 0.0 .IP \(bu 2 workspace_client: 24k .IP \(bu 2 workspace_backend: 20k .IP \(bu 2 http_resp_size: 8k .IP \(bu 2 http_req_size: 12k .IP \(bu 2 gzip_buffer: 4k .IP \(bu 2 vsl_buffer: 4k .IP \(bu 2 vsl_space: 1G (بیشینه) .IP \(bu 2 thread_pool_stack: 64k .UNINDENT.SS فهرست پارامترها .sp این متن از همان متنی تولید شده است که در صورت استفاده از دستور param.show در CLI مشاهده خواهید کرد: .\" The following is the autogenerated output from vinyld -x parameter . .SS accept_filter .sp نکته: این پارامتر به قابلیتی وابسته است که در همهٔ پلتفرم‌ها در دسترس نیست. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: on (اگر پلتفرم شما از accept filterها پشتیبانی کند) .UNINDENT .UNINDENT .UNINDENT .sp فعال‌سازی accept\-filterهای هسته. در صورت فعال بودن، ممکن است برای اعمال اثر نیاز به بارگذاری یک ماژول هسته باشد. .sp فعال کردن accept_filter ممکن است در وهلهٔ اول از رسیدن برخی درخواست‌ها به Vinyl Cache جلوگیری کند. درخواست‌های بدریخت (malformed) ممکن است شناسایی‌نشده باقی بمانند و شمارندهٔ client_req_400 را افزایش ندهند. درخواست‌های GET یا HEAD دارای بدنه ممکن است به‌طور کامل مسدود شوند. .SS acceptor_sleep_decay .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 0.9 .IP \(bu 2 کمینه: 0 .IP \(bu 2 بیشینه: 1 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp اگر با کمبود منابعی مانند توصیف‌کننده‌های فایل (file descriptors) یا worker threadها مواجه شویم، acceptor بین پذیرش‌ها به خواب می‌رود. این پارامتر مدت‌زمان خواب را به ازای هر پذیرش موفق (به‌طور ضربی) کاهش می‌دهد (یعنی: 0.9 = ۱۰٪ کاهش). .SS acceptor_sleep_incr .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: seconds .IP \(bu 2 پیش‌فرض: 0.000 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 بیشینه: 1.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp اگر با کمبود منابعی مانند توصیف‌کننده‌های فایل یا worker threadها مواجه شویم، acceptor بین پذیرش‌ها به خواب می‌رود. این پارامتر کنترل می‌کند که با هر بار شکست در پذیرش یک اتصال جدید، چه میزان به مدت‌زمان خواب اضافه شود. .SS acceptor_sleep_max .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: seconds .IP \(bu 2 پیش‌فرض: 0.050 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 بیشینه: 10.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp اگر با کمبود منابعی مانند توصیف‌کننده‌های فایل یا worker threadها مواجه شویم، acceptor بین پذیرش‌ها به خواب می‌رود. این پارامتر حداکثر مدت‌زمانی را که می‌تواند بین تلاش‌ها برای پذیرش اتصالات جدید بخوابد، محدود می‌کند..SS auto_restart .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: on .UNINDENT .UNINDENT .UNINDENT .sp راه‌اندازی مجدد خودکار فرایند فرزند/کارگر (child/worker) در صورت از کار افتادن آن. .SS backend_idle_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 حداقل: 1.000 .UNINDENT .UNINDENT .UNINDENT .sp مدت‌زمان انتظار (تایم‌اوت) پیش از بستن اتصالات بدون استفادهٔ backend. .SS backend_local_error_holddown .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 10.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp هنگام برقراری اتصال به backendها، برخی کدهای خطا (EADDRNOTAVAIL, EACCESS, EPERM) نشان‌دهندهٔ کمبود منابع محلی یا مشکل در پیکربندی هستند که تلاش مجدد برای برقراری اتصال ممکن است به دلیل پیچیدگی عملیات‌های مربوطه در هسته (kernel)، شرایط را بدتر کند. این پارامتر از تلاش‌های مکرر برای برقراری اتصال به مدت‌زمان تعیین‌شده جلوگیری می‌کند. .SS backend_remote_error_holddown .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.250 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp هنگام برقراری اتصال به backendها، برخی کدهای خطا (ECONNREFUSED, ENETUNREACH) نشان‌دهندهٔ مشکلات اساسی در اتصال هستند، مانند نپذیرفتن اتصالات توسط backend یا مشکلات مسیریابی، که در چنین شرایطی تلاش‌های مکرر برای برقراری اتصال بی‌فایده تلقی می‌شود. این پارامتر از تلاش‌های مکرر برای برقراری اتصال به مدت‌زمان تعیین‌شده جلوگیری می‌کند. .SS backend_wait_limit .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 0 .IP \(bu 2 حداقل: 0 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد تراکنش‌هایی که می‌توانند در صف انتظار برای در دسترس قرار گرفتن یک اتصال backend قرار گیرند. این مقدار پیش‌فرض 0 (صفر) به این معنی است که هیچ صفی برای تراکنش‌ها تشکیل نمی‌شود. VCL می‌تواند این مقدار پیش‌فرض را برای هر backend بازنویسی (override) کند. .sp توجه داشته باشید که از این قابلیت باید با احتیاط استفاده شود، چرا که می‌تواند موجب انباشته شدن ریسه‌ها (threads) و افزایش زمان پاسخ‌دهی شود..SS backend_wait_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: timeout, experimental .UNINDENT .UNINDENT .UNINDENT .sp هنگامی که یک backend هیچ اتصال آزادی برای یک تراکنش ندارد، تراکنش می‌تواند در صف قرار گیرد (به backend_wait_limit مراجعه کنید) تا منتظر اتصال بماند. این مدت‌زمان پیش‌فرضی است که تراکنش پیش از انصراف منتظر خواهد ماند. VCL می‌تواند این مقدار پیش‌فرض را برای هر backend بازنویسی کند. .sp اکیداً توصیه می‌شود که این مقدار هرگز بیش از چند ثانیه تنظیم نشود. .SS ban_any_variant .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بررسی‌ها .IP \(bu 2 پیش‌فرض: 0 .IP \(bu 2 حداقل: 0 .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد گونه‌های (variants) احتمالاً ناسازگار که در حین جستجو (lookup) در برابر فهرست ban ارزیابی می‌شوند. تنظیم این مقدار روی 0 به این معنی است که تنها گونه‌های منطبق در برابر فهرست ban کنونی ارزیابی خواهند شد. .SS ban_cutoff .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: banها .IP \(bu 2 پیش‌فرض: 0 .IP \(bu 2 حداقل: 0 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp محتوای دنباله طولانی (long tail) را از حافظه پنهان پاکسازی می‌کند تا تعداد banها زیر این مقدار باقی بماند. مقدار 0 آن را غیرفعال می‌کند. .sp هنگامی که این پارامتر روی مقداری غیر از صفر تنظیم شود، ban lurker طبق معمول به بررسی فهرست ban از بالا به پایین ادامه می‌دهد، اما هنگامی که به ban شماره ban_cutoff برسد، با تمام اشیاء طوری رفتار می‌کند که گویی با یک ban منطبق شده‌اند و آن‌ها را از حافظه پنهان پاکسازی می‌کند. از آنجا که اشیاء فعالانه استفاده‌شده در زمان درخواست در برابر فهرست ban آزمایش می‌شوند و بنابراین احتمالاً با banهای نزدیک به بالای فهرست مرتبط هستند، با ban_cutoff، اشیائی که کمتر مورد دسترسی قرار گرفته‌اند (\(dqlong tail\(dq) حذف می‌شوند. .sp این پارامتر یک شبکه ایمنی برای جلوگیری از زمان‌های پاسخ‌دهی نامطلوب ناشی از آزمایش banها در زمان جستجو (lookup) است. تنظیم یک cutoff، زمان پاسخ‌دهی بهتر را با کارایی حافظه پنهان مبادله می‌کند. مقدار توصیه‌شده متناسب با rate(bans_lurker_tests_tested) / n_objects در حین کارکرد ban lurker است که بیانگر تعداد banهایی است که سیستم توان تحمل آن را دارد. تاخیر اضافی ناشی از آزمایش ban در زمان درخواست، از مرتبه ban_cutoff / rate(bans_lurker_tests_tested) است. به عنوان مثال، برای rate(bans_lurker_tests_tested) = 2M/s و تاخیر قابل تحمل 100 میلی‌ثانیه، یک مقدار مناسب برای ban_cutoff ممکن است 200K باشد. .SS ban_dups .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: on .UNINDENT .UNINDENT .UNINDENT .sp هنگام اضافه شدن یک ban جدید، banهای مشابه قدیمی‌تر را حذف می‌کند. این کار با عدم مقایسه اشیاء با banهای یکسان، در چرخه‌های CPU صرفه‌جویی می‌کند. اگر تعداد زیادی ban دارید که هرگز یکسان نیستند، این کار اتلاف وقت خواهد بود. .SS ban_lurker_age .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 حداقل: 0.000 .UNINDENT .UNINDENT .UNINDENT .sp فرآیند ban lurker، تا زمانی که banها به این سن نرسند آن‌ها را نادیده خواهد گرفت. هنگامی که یک ban اضافه می‌شود، ترافیک فعال به عنوان بخشی از جستجوی شیء در برابر آن آزمایش می‌شود. از آنجا که بسیاری از برنامه‌ها banها را به صورت انفجاری صادر می‌کنند، این پارامتر ban\-lurker را تا پایان یافتن هجوم اولیه متوقف نگه می‌دارد. این مقدار باید روی زمان تقریبی طول کشیدن یک انفجار ban تنظیم شود..SS ban_lurker_batch .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 1000 .IP \(bu 2 حداقل: 1 .UNINDENT .UNINDENT .UNINDENT .sp فرایند ban lurker پس از بررسی این تعداد شیء، به مدت ${ban_lurker_sleep} به خواب می‌رود. اگر ban\-lurker منابع زیادی مصرف می‌کند، از این گزینه برای تنظیم آهنگ آن استفاده کنید. .SS ban_lurker_holdoff .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.010 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp مدت زمانی که ban lurker هنگام کناره‌گیری به نفع جستجو (lookup) به دلیل تداخل قفل‌ها (lock contention)، به خواب می‌رود. .SS ban_lurker_sleep .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.010 .IP \(bu 2 حداقل: 0.000 .UNINDENT .UNINDENT .UNINDENT .sp مدت زمانی که ban lurker پس از بررسی ${ban_lurker_batch} شیء به خواب می‌رود. اگر ban\-lurker منابع زیادی مصرف می‌کند، از این مقدار برای تنظیم آهنگ آن استفاده کنید. مقدار صفر فرایند ban lurker را به‌طور کامل غیرفعال می‌کند. .SS between_bytes_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: timeout .UNINDENT .UNINDENT .UNINDENT .sp پیش از انصراف از واکشی (fetch)، تنها به این میزان ثانیه بین بایت‌های دریافتی از backend منتظر می‌مانیم. مقادیر VCL به‌ازای هر backend یا به‌ازای هر درخواست backend اولویت دارند. این پارامتر برای درخواست‌های pipe\(aqشده اعمال نمی‌شود. .SS cc_command .sp توجه: مقدار پیش‌فرض واقعی این پارامتر به محیط ساخت و گزینه‌های کامپایل Vinyl Cache بستگی دارد. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: exec $CC $CFLAGS %w \-shared \-o %o %s .IP \(bu 2 پرچم‌ها: must_reload .UNINDENT .UNINDENT .UNINDENT .sp دستوری که برای کامپایل کد منبع C به یک شیء قابل بارگذاری توسط dlopen(3) استفاده می‌شود. بسط‌های زیر قابل استفاده هستند: .INDENT 0.0 .IP \(bu 2 %s: نام فایل منبع .IP \(bu 2 %o: نام فایل خروجی .IP \(bu 2 %w: پارامتر cc_warnings .IP \(bu 2 %d: مقدار پیش‌فرض خام cc_command .IP \(bu 2 %D: مقدار پیش‌فرض بسط‌یافته cc_command .IP \(bu 2 %n: دایرکتوری کاری (گزینه \-n) .IP \(bu 2 %%: علامت درصد .UNINDENT .sp توالی‌های بسط درصد ناشناخته نادیده گرفته می‌شوند، و برای جلوگیری از ناسازگاری‌های آتی، نویسه‌های درصد باید با یک توالی درصد دوگانه گریز (escape) داده شوند. .sp بسط‌های %d و %D امکان ارسال مقدار پیش‌فرض پارامتر به یک اسکریپت پوششی (wrapper) جهت انجام پردازش‌های اضافی را فراهم می‌کنند..SS cc_warnings .sp توجه: مقدار پیش‌فرض واقعی این پارامتر به محیط ساخت و گزینه‌های Vinyl Cache بستگی دارد. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: \-Wall \-Werror .IP \(bu 2 پرچم‌ها: must_reload .UNINDENT .UNINDENT .UNINDENT .sp هشدارهایی که هنگام کامپایل کد منبع C با پارامتر cc_command استفاده می‌شوند. به‌طور پیش‌فرض، VCL با همان مجموعه هشدارهایی کامپایل می‌شود که خود Vinyl Cache با آن‌ها کامپایل شده است. .SS cli_limit .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 64k .IP \(bu 2 کمینه: 128b .IP \(bu 2 بیشینه: 99999999b .UNINDENT .UNINDENT .UNINDENT .sp بیشینه اندازه پاسخ CLI. اگر پاسخ از این حد فراتر رود، کد وضعیت پاسخ به‌جای 200 برابر با 201 خواهد بود و خط آخر نشان‌دهنده کوتاه شدن (truncation) پاسخ خواهد بود. .SS cli_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: timeout .UNINDENT .UNINDENT .UNINDENT .sp مهلت زمانی برای پاسخ‌های فرآیند فرزند به درخواست‌های CLI. .SS clock_skew .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 10 .IP \(bu 2 کمینه: 0 .UNINDENT .UNINDENT .UNINDENT .sp میزان اختلاف ساعت (clock skew) قابل‌پذیرش میان backend و ساعت محلی سیستم. .SS clock_step .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 1.000 .IP \(bu 2 کمینه: 0.000 .UNINDENT .UNINDENT .UNINDENT .sp میزان پرش یا تغییر ناگهانی ساعت (clock step) مشاهده‌شده‌ای که پیش از بروز وحشت سیستم (panic)، مایل به پذیرش آن هستیم. .SS connect_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 3.500 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: timeout .UNINDENT .UNINDENT .UNINDENT .sp مهلت زمانی پیش‌فرض اتصال برای ارتباط‌های backend. تلاش برای اتصال به backend پیش از صرف‌نظر کردن، تنها به اندازه این مقدار ثانیه صورت می‌پذیرد. VCL می‌تواند این مقدار پیش‌فرض را برای هر backend و هر درخواست backend بازنویسی (override) کند..SS critbit_cooloff .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 180.000 .IP \(bu 2 کمینه: 60.000 .IP \(bu 2 بیشینه: 254.000 .IP \(bu 2 پرچم‌ها: wizard .UNINDENT .UNINDENT .UNINDENT .sp مدت زمانی که درهم‌ساز critbit ساختارهای objhead حذف‌شده را در فهرست cooloff نگه می‌دارد. .SS debug .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: none .UNINDENT .UNINDENT .UNINDENT .sp فعال/غیرفعال کردن انواع مختلف اشکال‌زدایی. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fInone\fP غیرفعال کردن تمامی اشکال‌زدایی‌ها .UNINDENT .UNINDENT .UNINDENT .sp از پیشوند +/\- برای تنظیم/بازنشانی بیت‌های تکی استفاده کنید: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fIreq_state\fP موتور وضعیت درخواست VSL .TP .B \fIworkspace\fP عملیات فضای کاری VSL .TP .B \fIwaitinglist\fP رویدادهای Waitinglist در VSL .TP .B \fIsyncvsl\fP همگام‌سازی VSL .TP .B \fIhashedge\fP حالت‌های مرزی در Hash .TP .B \fIvclrel\fP آزادسازی سریع VCL .TP .B \fIlurker\fP رویدادهای Ban lurker در VSL .TP .B \fIesi_chop\fP خرد کردن دریافت ESI به تکه‌ها .TP .B \fIflush_head\fP تخلیه بافر پس از سرآیند http1 .TP .B \fIvtc_mode\fP حالت Vinyltest .TP .B \fIwitness\fP ثبت رکوردهای قفل WITNESS .TP .B \fIvsm_keep\fP نگه‌داشتن فایل VSM هنگام راه‌اندازی مجدد .TP .B \fIslow_acceptor\fP کُند کردن پذیرنده اتصالات (Acceptor) .TP .B \fIh2_nocheck\fP غیرفعال کردن بررسی‌های گوناگون H2 .TP .B \fIvmod_so_keep\fP نگه‌داشتن کتابخانه‌های رونوشت‌شده VMOD .TP .B \fIprocessors\fP پردازنده‌های Fetch/Deliver .TP .B \fIprotocol\fP اشکال‌زدایی پروتکل .TP .B \fIvcl_keep\fP نگه‌داشتن فایل‌های C و so مربوط به VCL .TP .B \fIlck\fP آمار تکمیلی قفل‌ها (lock) .UNINDENT .UNINDENT .UNINDENT.SS default_grace .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 10s .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: obj_sticky .UNINDENT .UNINDENT .UNINDENT .sp دوره ارفاق (grace) پیش‌فرض. یک شیء تا این مدت پس از منقضی شدن تحویل داده می‌شود، به شرطی که ریسه (thread) دیگری در حال تلاش برای دریافت یک نسخه جدید باشد. .SS default_keep .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0s .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: obj_sticky .UNINDENT .UNINDENT .UNINDENT .sp دوره نگهداری (keep) پیش‌فرض. یک شیء بدون‌استفاده تا این مدت نگهداری خواهد شد تا برای واکشی‌های شرطی backend در دسترس باشد. این بدان معناست که شیء در پایان ttl+grace+keep از حافظه پنهان (cache) حذف خواهد شد. .SS default_ttl .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 2m .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: obj_sticky .UNINDENT .UNINDENT .UNINDENT .sp مقدار TTL اختصاص‌یافته به اشیاء در صورتی که نه backend و نه کد VCL مقداری برای آن تعیین نکرده باشند. .SS experimental .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: none .UNINDENT .UNINDENT .UNINDENT .sp فعال/غیرفعال‌سازی ویژگی‌های آزمایشی. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fInone\fP غیرفعال‌سازی تمام ویژگی‌های آزمایشی .UNINDENT .UNINDENT .UNINDENT .sp برای تنظیم/بازنشانی بیت‌های مجزا از پیشوند +/\- استفاده کنید: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fIdrop_pools\fP رهاسازی thread poolها .UNINDENT .UNINDENT .UNINDENT.SS feature .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: none,+https_scheme,+validate_headers,+vcl_req_reset .UNINDENT .UNINDENT .UNINDENT .sp فعال یا غیرفعال کردن قابلیت‌های جزئی گوناگون. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fIdefault\fP تنظیم مقدار پیش‌فرض (منسوخ شده: از param.reset استفاده کنید) .TP .B \fInone\fP غیرفعال کردن تمام قابلیت‌ها. .UNINDENT .UNINDENT .UNINDENT .sp از پیشوند +/\- برای فعال یا غیرفعال کردن هر قابلیت به‌طور جداگانه استفاده کنید: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fIhttp2\fP فعال‌سازی پشتیبانی از پروتکل HTTP/2. .TP .B \fIshort_panic\fP پیام panic کوتاه. .TP .B \fIno_coredump\fP بدون coredump. باید پیش از آغاز فرایند فرزند تنظیم شود. .TP .B \fIhttps_scheme\fP استخراج میزبان از URI کامل در خط درخواست HTTP/1، در صورتی که طرح‌واره (scheme) برابر https باشد. .TP .B \fIhttp_date_postel\fP مدارا با سرایندهای برچسب زمانی ناسازگار با استاندارد مانند \fIDate\fP، \fILast\-Modified\fP، \fIExpires\fP و غیره. .TP .B \fIesi_ignore_https\fP تبدیل \fI. .TP .B \fIwait_silo\fP انتظار برای بارگذاری کامل سیلوهای ماندگار (persistent silos) پیش از پاسخ‌گویی به درخواست‌ها. .TP .B \fIvalidate_headers\fP اعتبارسنجی تمام عملیات تنظیم سرایند جهت انطباق با RFC9110 بخش 5.5. .TP .B \fIbusy_stats_rate\fP ملزم کردن کارگرهای مشغول (busy workers) به پیروی از thread_stats_rate. .TP .B \fItrace\fP فعال‌سازی ردگیری (tracing) در VCL به‌طور پیش‌فرض (فعال‌سازی (be)req.trace). برای ردگیری vcl_init / vcl_fini الزامی است. .TP .B \fIvcl_req_reset\fP توقف پردازش VCL کلاینت به محض قطع ارتباط کلاینت. هنگامی که این رخ می‌دهد، مقدار MAIN.req_reset افزایش می‌یابد. .UNINDENT .UNINDENT .UNINDENT .SS fetch_chunksize .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: bytes .IP \(bu 2 پیش‌فرض: 16k .IP \(bu 2 حداقل: 4k .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp اندازه پیش‌فرض تکه‌ها (chunksize) که توسط fetcher استفاده می‌شود. این مقدار باید از اندازه اکثر اشیاء با TTL کوتاه بزرگ‌تر باشد. محدودیت‌های درونی در پیمانه storage_file افزایش این مقدار به فراتر از 128kb را به ایده‌ای تردیدبرانگیز تبدیل می‌کند..SS fetch_maxchunksize .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 0.25G .IP \(bu 2 حداقل: 64k .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp حداکثر اندازه تکه‌ای (chunksize) که تلاش می‌شود از فضای ذخیره‌سازی تخصیص یابد. بیش از حد بزرگ بودن این مقدار ممکن است موجب ایجاد تأخیر و پراکندگی (fragmentation) در فضای ذخیره‌سازی شود. .SS first_byte_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: timeout .UNINDENT .UNINDENT .UNINDENT .sp مهلت زمانی (timeout) پیش‌فرض برای دریافت نخستین بایت از backend. پیش از انصراف، تنها به مدت این تعداد ثانیه برای دریافت اولین بایت صبر می‌شود. دستورهای VCL می‌توانند این مقدار پیش‌فرض را برای هر backend و هر درخواست backend بازنویسی کنند. این پارامتر بر روی درخواست‌های pipe‌شده اعمال نمی‌شود. .SS gzip_buffer .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 32k .IP \(bu 2 حداقل: 2k .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp اندازه بافر malloc استفاده‌شده برای پردازش gzip. اندازه بافر استفاده‌شده برای پردازش gzip. این بافرها برای داده‌های در حال انتقال (in\-transit) استفاده می‌شوند؛ به عنوان نمونه داده‌های gunzip‌شده‌ای که به سمت کلاینت ارسال می‌شوند. کوچک بودن بیش از حد این فضا منجر به سربار بیشتر، نوشتن‌های مکرر روی سوکت‌ها و غیره می‌شود؛ بیش از حد بزرگ بودن آن نیز احتمالاً تنها اتلاف حافظه خواهد بود. بافرهای Gzip از فضای ذخیره‌سازی Transient تخصیص می‌یابند. .SS gzip_level .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 6 .IP \(bu 2 حداقل: 0 .IP \(bu 2 حداکثر: 9 .UNINDENT .UNINDENT .UNINDENT .sp سطح فشرده‌سازی Gzip: مقدار 0=اشکال‌زدایی (debug)، مقدار 1=سریع (fast)، مقدار 9=بهترین (best) .SS gzip_memlevel .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 8 .IP \(bu 2 حداقل: 1 .IP \(bu 2 حداکثر: 9 .UNINDENT .UNINDENT .UNINDENT .sp سطح حافظه Gzip: مقدار 1=کند/کمترین فشرده‌سازی، 9=سریع/بیشترین فشرده‌سازی. میزان تأثیر بر حافظه به‌صورت 1=1k، 2=2k، ... 9=256k است..SS h2_header_table_size .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 4k .IP \(bu 2 حداقل: 0b .UNINDENT .UNINDENT .UNINDENT .sp اندازهٔ جدول هدر HTTP2. این اندازه‌ای است که برای جدول رمزگشایی پویای HPACK استفاده خواهد شد. .sp مقدار این پارامتر، SETTINGS_HEADER_TABLE_SIZE را در فریم اولیهٔ SETTINGS که هنگام برقراری یک نشست HTTP2 جدید به کلاینت فرستاده می‌شود، تعیین می‌کند. .SS h2_initial_window_size .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 65535b .IP \(bu 2 حداقل: 65535b .IP \(bu 2 حداکثر: 2147483647b .UNINDENT .UNINDENT .UNINDENT .sp اندازهٔ اولیهٔ پنجرهٔ کنترل جریان HTTP2. .sp مقدار این پارامتر، SETTINGS_INITIAL_WINDOW_SIZE را در فریم اولیهٔ SETTINGS که هنگام برقراری یک نشست HTTP2 جدید به کلاینت فرستاده می‌شود، تعیین می‌کند. .SS h2_max_concurrent_streams .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: استریم (stream) .IP \(bu 2 پیش‌فرض: 100 .IP \(bu 2 حداقل: 0 .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد جریان‌های (streams) هم‌روند HTTP2. این مقدار بیانگر تعداد درخواست‌هایی است که می‌توانند به‌طور هم‌زمان برای یک اتصال HTTP2 واحد فعال باشند. .sp مقدار این پارامتر، SETTINGS_MAX_CONCURRENT_STREAMS را در فریم اولیهٔ SETTINGS که هنگام برقراری یک نشست HTTP2 جدید به کلاینت فرستاده می‌شود، تعیین می‌کند. .SS h2_max_frame_size .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 16k .IP \(bu 2 حداقل: 16k .IP \(bu 2 حداکثر: 16777215b .UNINDENT .UNINDENT .UNINDENT .sp حداکثر اندازهٔ بار مفید (payload) در هر فریم HTTP2 که مایل به پذیرش آن هستیم. .sp مقدار این پارامتر، SETTINGS_MAX_FRAME_SIZE را در فریم اولیهٔ SETTINGS که هنگام برقراری یک نشست HTTP2 جدید به کلاینت فرستاده می‌شود، تعیین می‌کند. .SS h2_max_header_list_size .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 0b .IP \(bu 2 حداقل: 0b .IP \(bu 2 حداکثر: 2147483647b .UNINDENT .UNINDENT .UNINDENT .sp حداکثر اندازهٔ یک فهرست هدر فشرده‌نشده در HTTP2. این پارامتر به SETTINGS_MAX_HEADER_LIST_SIZE در فریم اولیهٔ SETTINGS نگاشت نمی‌شود، بلکه به‌جای آن پارامتر http_req_size نگاشت می‌شود. .sp پارامتر http_req_size کلاینت‌های HTTP2 را از حداکثر اندازه برای فهرست هدر مطلع می‌سازد. فراتر رفتن از http_req_size به‌منظور حفظ اتصال منجر به بازنشانی جریان (reset stream) پس از پردازش بلوک HPACK می‌شود، اما فراتر رفتن از h2_max_header_list_size منجر به قطع فوری اتصال HTTP2 خواهد شد. .sp اگر h2_max_header_list_size کمتر از http_req_size باشد، هیچ تأثیری نخواهد داشت؛ به‌جز مقدار ویژهٔ صفر که به‌صورت ۱۵۰٪ از http_req_size تفسیر می‌شود..SS h2_rapid_reset .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 1.000 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: delayed, experimental .UNINDENT .UNINDENT .UNINDENT .sp آستانه بالایی برای اینکه یک فریم RST_STREAM در http/2 چقدر سریع پس از یک فریم HEADERS تجزیه شود تا مشکوک در نظر گرفته شده و مشمول محدودیت‌های نرخ تعیین‌شده توسط h2_rapid_reset_limit و h2_rapid_reset_period گردد. تغییرات این پارامتر بر پیش‌فرض نشست‌های جدید HTTP2 اعمال می‌شود. می‌توان از vmod_h2(3) برای تنظیم آن از طریق VCL استفاده کرد. .SS h2_rapid_reset_limit .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 100 .IP \(bu 2 کمینه: 0 .IP \(bu 2 پرچم‌ها: delayed, experimental .UNINDENT .UNINDENT .UNINDENT .sp حد مجاز RST در HTTP2. حداکثر تعداد مجاز ریست‌های جریان صادرشده توسط کلاینت در طول یک بازه زمانی را پیش از بسته‌شدن اتصال مشخص می‌کند. تنظیم این پارامتر بر روی 0 محدودیت را غیرفعال می‌کند. تغییرات این پارامتر بر پیش‌فرض نشست‌های جدید HTTP2 اعمال می‌شود. می‌توان از vmod_h2(3) برای تنظیم آن از طریق VCL استفاده کرد. .SS h2_rapid_reset_period .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 کمینه: 1.000 .IP \(bu 2 پرچم‌ها: delayed, experimental, wizard .UNINDENT .UNINDENT .UNINDENT .sp مدت زمان پنجره لغزان HTTP2 برای h2_rapid_reset_limit. تغییرات این پارامتر بر پیش‌فرض نشست‌های جدید HTTP2 اعمال می‌شود. می‌توان از vmod_h2(3) برای تنظیم آن از طریق VCL استفاده کرد. .SS h2_rx_window_increment .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 1M .IP \(bu 2 کمینه: 1M .IP \(bu 2 بیشینه: 1G .IP \(bu 2 پرچم‌ها: wizard .UNINDENT .UNINDENT .UNINDENT .sp افزایش‌های پنجره دریافت HTTP2. میزان اعتباری که در فریم‌های WINDOW_UPDATE ارسال می‌کنیم چقدر بزرگ باشد. تنها بر بدنه درخواست‌های ورودی تأثیر می‌گذارد (مانند: POST، PUT و غیره). .SS h2_rx_window_low_water .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 10M .IP \(bu 2 کمینه: 65535b .IP \(bu 2 بیشینه: 1G .IP \(bu 2 پرچم‌ها: wizard .UNINDENT .UNINDENT .UNINDENT .sp حد پایین پنجره دریافت HTTP2. تلاش می‌شود پنجره دست‌کم به این اندازه بزرگ نگه داشته شود. تنها بر بدنه درخواست‌های ورودی تأثیر می‌گذارد (مانند: POST، PUT و غیره)..SS h2_rxbuf_storage .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: Transient .IP \(bu 2 پرچم‌ها: must_restart .UNINDENT .UNINDENT .UNINDENT .sp نام backend ذخیره‌سازی که بافرهای دریافت HTTP/2 باید از آن تخصیص یابند. .SS h2_window_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 5.000 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: timeout, wizard .UNINDENT .UNINDENT .UNINDENT .sp محدودیت زمانی HTTP2 بدون اعتبارات پنجره (window credits). مدت زمانی که یک جریان (stream) می‌تواند منتظر کلاینت بماند تا به پنجره اعتبار دهد و اجازه ارسال فریم‌های DATA بیشتری داده شود. .SS http1_iovs .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: struct iovec (=16 بایت) .IP \(bu 2 پیش‌فرض: 64 .IP \(bu 2 کمینه: 5 .IP \(bu 2 بیشینه: 1024 .IP \(bu 2 پرچم‌ها: wizard .UNINDENT .UNINDENT .UNINDENT .sp تعداد بردار io (io vector) جهت تخصیص برای مخابره پروتکل HTTP1. یک هدر HTTP1 به ۷ + ۲ عدد به ازای هر فیلد هدر HTTP نیاز دارد. از workspace_thread تخصیص داده می‌شود. این پارامتر فقط بر بردار‌های io استفاده‌شده برای تحویل به کلاینت اثر می‌گذارد. برای واکشی‌های بک‌اند (backend fetches)، بیشترین تعداد بردار io (تا سقف IOV_MAX) از حافظه در دسترس workspace_thread تخصیص می‌یابد. .SS http_gzip_support .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: on .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B فعال‌سازی پشتیبانی از gzip. در صورت فعال بودن، Vinyl Cache اشیاء فشرده را از بک‌اند درخواست کرده و آن‌ها را فشرده ذخیره می‌کند. اگر یک کلاینت از کدگذاری gzip پشتیبانی نکند، Vinyl Cache در صورت تقاضا اشیاء فشرده را از فشرده‌سازی خارج می‌کند. Vinyl Cache همچنین هدر Accept\-Encoding کلاینت‌هایی که پشتیبانی از gzip را اعلام می‌کنند به صورت زیر بازنویسی می‌کند: Accept\-Encoding: gzip .UNINDENT .sp کلاینت‌هایی که از gzip پشتیبانی نمی‌کنند، هدر Accept\-Encoding آن‌ها حذف خواهد شد. برای کسب اطلاعات بیشتر درباره نحوه پیاده‌سازی gzip، لطفاً فصل مربوط به gzip در راهنمای مرجع Vinyl Cache را ببینید. .sp هنگامی که پشتیبانی از gzip غیرفعال است، متغیرهای beresp.do_gzip و beresp.do_gunzip هیچ اثری در VCL ندارند. .SS http_max_hdr .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: خط‌های هدر .IP \(bu 2 پیش‌فرض: 64 .IP \(bu 2 کمینه: 32 .IP \(bu 2 بیشینه: 65535 .UNINDENT .UNINDENT .UNINDENT .sp بیشترین تعداد خطوط هدر HTTP که در {req|resp|bereq|beresp}.http مجاز می‌دانیم (اندازه obj.http به طور خودکار به تعداد دقیق هدرها تنظیم می‌شود). از نظر حافظه workspace بسیار کم‌هزینه است (~۲۰ بایت). توجه داشته باشید که خط اول به اندازه پنج خط هدر فضا اشغال می‌کند..SS http_range_support .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: bool .IP \(bu 2 پیش‌فرض: on .UNINDENT .UNINDENT .UNINDENT .sp فعال‌سازی پشتیبانی از هدرهای HTTP Range. .SS http_req_hdr_len .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: bytes .IP \(bu 2 پیش‌فرض: 8k .IP \(bu 2 حداقل: 40b .UNINDENT .UNINDENT .UNINDENT .sp حداکثر طول مجاز برای هر یک از هدرهای درخواست کلاینت HTTP. این محدودیت شامل خطوط ادامه‌دار آن نیز می‌شود. .SS http_req_overflow_status .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: کد وضعیت HTTP یا 0 برای غیرفعال‌سازی .IP \(bu 2 پیش‌فرض: 0 .IP \(bu 2 حداقل: 400 .IP \(bu 2 حداکثر: 500 .UNINDENT .UNINDENT .UNINDENT .sp کد وضعیت HTTP که در صورت فراتر رفتن از http_req_size بازگردانده می‌شود. مقدار پیش‌فرض 0 اتصال را بدون ارسال هیچ پاسخ HTTP و به‌صورت خاموش می‌بندد. توجه داشته باشید که هیچ کد وضعیت استاندارد HTTP وجود ندارد که دقیقاً با پیاده‌سازی http_req_size مطابقت داشته باشد. کد 414 فقط برای URL اعمال می‌شود، در حالی که 413 برای بدنهٔ درخواست اعمال می‌گردد. کد 400 احتمالاً کم‌اشتباه‌ترین مقدار جایگزین در مقایسه با عدم ارسال هیچ پاسخی (0) است. همچنین می‌تواند به دلیل محدودیت‌های پیکربندی‌شده به‌عنوان یک خطای داخلی از سمت Vinyl Cache در نظر گرفته شود، بنابراین 500 نیز مجاز است. .SS http_req_size .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: bytes .IP \(bu 2 پیش‌فرض: 32k .IP \(bu 2 حداقل: 0.25k .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد بایت‌های درخواست کلاینت HTTP که پردازش خواهد شد. این محدودیت شامل تمام بایت‌ها تا خط خالی دوگانه‌ای است که به درخواست HTTP پایان می‌دهد. حافظه برای درخواست از فضای کاری کلاینت (پارامتر: workspace_client) تخصیص می‌یابد و این پارامتر مشخص می‌کند که درخواست مجاز است چه مقدار از آن را اشغال کند. .sp برای کلاینت‌های HTTP2، این مقدار به‌صورت MAX_HEADER_LIST_SIZE در فریم اولیهٔ SETTINGS اعلان می‌شود. .SS http_resp_hdr_len .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: bytes .IP \(bu 2 پیش‌فرض: 8k .IP \(bu 2 حداقل: 40b .UNINDENT .UNINDENT .UNINDENT .sp حداکثر طول مجاز برای هر یک از هدرهای پاسخ backend HTTP. این محدودیت شامل خطوط ادامه‌دار آن نیز می‌شود. .SS http_resp_size .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: bytes .IP \(bu 2 پیش‌فرض: 32k .IP \(bu 2 حداقل: 0.25k .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد بایت‌های پاسخ backend HTTP که پردازش خواهد شد. این محدودیت شامل تمام بایت‌ها تا خط خالی دوگانه‌ای است که به پاسخ HTTP پایان می‌دهد. حافظه برای پاسخ از فضای کاری backend (پارامتر: workspace_backend) تخصیص می‌یابد و این پارامتر مشخص می‌کند که پاسخ مجاز است چه مقدار از آن را اشغال کند..SS idle_send_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 حداکثر: 3600.000 .IP \(bu 2 پرچم‌ها: timeout, delayed .UNINDENT .UNINDENT .UNINDENT .sp مهلت زمانی ارسال برای تکه‌های مجزای داده در اتصالات کلاینت. در صورت اعمال \(aqsend_timeout\(aq ممکن است افزایش یابد. .sp هنگامی که این مهلت زمانی به سر رسد، نشست بسته می‌شود. .sp برای اطلاعات بیشتر، به صفحهٔ راهنمای \fIsetsockopt(2)\fP یا \fIsocket(7)\fP ذیل \fBSO_SNDTIMEO\fP مراجعه کنید. .SS listen_depth .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: اتصالات .IP \(bu 2 پیش‌فرض: 1024 .IP \(bu 2 حداقل: 0 .IP \(bu 2 پرچم‌ها: must_restart .UNINDENT .UNINDENT .UNINDENT .sp عمق صف شنود (listen). .SS lru_interval .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 2.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp مهلت زمانی پیش از جابه‌جایی شیء در فهرست LRU. اشیاء تنها در صورتی به ابتدای فهرست LRU منتقل می‌شوند که در طول این بازهٔ زمانی از قبل به آنجا منتقل نشده باشند. این کار تعداد عملیات‌های قفل‌گذاری لازم برای دسترسی به فهرست LRU را کاهش می‌دهد. .SS max_esi_depth .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: سطوح .IP \(bu 2 پیش‌فرض: 5 .IP \(bu 2 حداقل: 0 .UNINDENT .UNINDENT .UNINDENT .sp حداکثر عمق پردازش esi:include. .SS max_restarts .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: راه‌اندازی مجدد .IP \(bu 2 پیش‌فرض: 4 .IP \(bu 2 حداقل: 0 .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp حد بالای تعداد دفعاتی که یک درخواست می‌تواند مجدداً راه‌اندازی شود..SS max_retries .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: دفعات تلاش .IP \(bu 2 پیش‌فرض: 4 .IP \(bu 2 کمینه: 0 .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد دفعاتی که یک واکشی backend می‌تواند مجدداً تلاش کند. .SS max_vcl .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 100 .IP \(bu 2 کمینه: 0 .UNINDENT .UNINDENT .UNINDENT .sp آستانه برنامه‌های بارگذاری‌شده VCL. (برچسب‌های VCL شمارش نمی‌شوند.) پارامتر max_vcl_handling رفتار را مشخص می‌کند. .SS max_vcl_handling .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 1 .IP \(bu 2 کمینه: 0 .IP \(bu 2 بیشینه: 2 .UNINDENT .UNINDENT .UNINDENT .sp رفتار هنگام تلاش برای فراتر رفتن از حد مجاز VCLهای بارگذاری‌شده در max_vcl. .INDENT 0.0 .IP \(bu 2 0 \- نادیده گرفتن پارامتر max_vcl. .IP \(bu 2 1 \- صدور هشدار. .IP \(bu 2 2 \- رد بارگذاری VCLها. .UNINDENT .SS nuke_limit .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: تخصیص‌ها .IP \(bu 2 پیش‌فرض: 50 .IP \(bu 2 کمینه: 0 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد اشیایی که برای باز کردن فضا جهت بدنه یک شیء، برای حذف (nuke) آن‌ها تلاش می‌شود. .SS panic_buffer .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 64k .IP \(bu 2 کمینه: 4k .IP \(bu 2 بیشینه: 10M .IP \(bu 2 پرچم‌ها: must_restart .UNINDENT .UNINDENT .UNINDENT .sp اندازه بافر پیام‌های panic. بافر panic در دایرکتوری کاری به‌عنوان حافظه مشترک بین فرایندهای management و worker تخصیص داده می‌شود، بنابراین در صورت تغییر این مقدار، باید فضای کافی در دایرکتوری کاری در نظر گرفته شود. پیام‌های panic به اندازه پیکربندی‌شده کوتاه (truncate) می‌شوند..SS pcre2_depth_limit .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 20 .IP \(bu 2 کمینه: 1 .UNINDENT .UNINDENT .UNINDENT .sp سقف عمق بازگشت برای منطق تطبیق داخلی در یک pcre2_match(). .sp (ببینید: pcre2_set_depth_limit() در مستندات pcre2.) .sp این گزینه یک حد بالایی برای مقدار پشتهٔ (stack) استفاده‌شده توسط PCRE2 برای دسته‌های خاصی از عبارت‌های منظم تعیین می‌کند. .sp ما مقدار پیش‌فرض را برای جلوگیری از فروپاشی برنامه (crash)، به قیمت خطاهای احتمالی در تطبیق عبارت‌های منظم، پایین تنظیم کرده‌ایم. .sp شکست‌های تطبیق در گزارش‌ها به عنوان پیام‌های VCL_Error ثبت خواهند شد. .SS pcre2_jit_compilation .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: on .UNINDENT .UNINDENT .UNINDENT .sp استفاده از کامپایلر JIT برای pcre2 در صورت در دسترس بودن. .SS pcre2_match_limit .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 10000 .IP \(bu 2 کمینه: 1 .UNINDENT .UNINDENT .UNINDENT .sp محدودیت تعداد فراخوانی‌ها برای منطق تطبیق داخلی در pcre2_match(). .sp (ببینید: pcre2_set_match_limit() در مستندات pcre2.) .sp این پارامتر میزان زمان پردازنده‌ای (CPU) را که تطبیق عبارت منظم می‌تواند مصرف کند، محدود می‌سازد. .SS ping_interval .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 3 .IP \(bu 2 کمینه: 0 .IP \(bu 2 پرچم‌ها: must_restart .UNINDENT .UNINDENT .UNINDENT .sp بازهٔ زمانی بین پینگ‌ها از والد (parent) به فرزند (child). مقدار صفر پینگ‌زدن را به طور کامل غیرفعال می‌کند که امکان متصل کردن یک اشکال‌زدا (debugger) به فرزند را فراهم می‌سازد. .SS pipe_sess_max .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: اتصالات .IP \(bu 2 پیش‌فرض: 0 .IP \(bu 2 کمینه: 0 .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد نشست‌های اختصاص‌یافته به تراکنش‌های pipe..SS pipe_task_deadline .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: timeout .UNINDENT .UNINDENT .UNINDENT .sp ضرب‌الاجل برای نشست‌های PIPE. صرف‌نظر از وجود هرگونه فعالیت در هر یک از دو جهت، پس از این تعداد ثانیه نشست بسته می‌شود. .SS pipe_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: timeout .UNINDENT .UNINDENT .UNINDENT .sp مهلت بیکاری برای نشست‌های PIPE. اگر به مدت این تعداد ثانیه هیچ داده‌ای در هیچ‌یک از دو جهت دریافت نشود، نشست بسته می‌شود. .SS pool_req .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 10,100,10 .UNINDENT .UNINDENT .UNINDENT .sp پارامترها برای استخر حافظه درخواست به ازای هر worker pool. .sp این سه عدد عبارتند از: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fImin_pool\fP حداقل اندازه استخر آزاد. .TP .B \fImax_pool\fP حداکثر اندازه استخر آزاد. .TP .B \fImax_age\fP حداکثر طول عمر عنصر آزاد. .UNINDENT .UNINDENT .UNINDENT .SS pool_sess .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 10,100,10 .UNINDENT .UNINDENT .UNINDENT .sp پارامترها برای استخر حافظه نشست به ازای هر worker pool. .sp این سه عدد عبارتند از: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fImin_pool\fP حداقل اندازه استخر آزاد. .TP .B \fImax_pool\fP حداکثر اندازه استخر آزاد. .TP .B \fImax_age\fP حداکثر طول عمر عنصر آزاد. .UNINDENT .UNINDENT .UNINDENT.SS pool_vbo .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: 10,100,10 .UNINDENT .UNINDENT .UNINDENT .sp پارامترهای مربوط به استخر حافظهٔ واکشی شیء بک‌اند (backend object fetch). .sp این سه عدد عبارتند از: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fImin_pool\fP حداقل اندازهٔ استخر آزاد. .TP .B \fImax_pool\fP حداکثر اندازهٔ استخر آزاد. .TP .B \fImax_age\fP حداکثر عمر عنصر آزاد. .UNINDENT .UNINDENT .UNINDENT .SS prefer_ipv6 .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: off .UNINDENT .UNINDENT .UNINDENT .sp ترجیح دادن نشانی IPv6 هنگام اتصال به بک‌اندهایی که هم نشانی IPv4 و هم IPv6 دارند. .SS rush_exponent .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: درخواست به ازای هر درخواست .IP \(bu 2 پیش‌فرض: 3 .IP \(bu 2 حداقل: 1 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp تعداد درخواست‌های پارک‌شده‌ای که به ازای هر درخواست تکمیل‌شده روی شیء آغاز می‌کنیم. نکته: حتی با وجود تأخیر ضمنی در تحویل، این پارامتر افزایش نمایی تعداد ریسه‌های کارگر (worker threads) را کنترل می‌کند. مقدار 1 در عوض ازسرگیری درخواست‌ها را متوالی (ترتیبی) می‌کند و تنها برای مقاصد آزمایشی مفید است. .SS send_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 600.000 .IP \(bu 2 حداقل: 0.000 .IP \(bu 2 پرچم‌ها: timeout, delayed .UNINDENT .UNINDENT .UNINDENT .sp کل مهلت زمانی (timeout) برای پاسخ‌های معمولی HTTP1. این مقدار برای برخی خطاهای تولیدشده به‌صورت داخلی و حالت pipe اعمال نمی‌شود. .sp هنگامی که حین ارسال یک پاسخ HTTP1 به \(aqidle_send_timeout\(aq برخورد شود، مهلت زمانی تمدید می‌شود مگر اینکه کل زمان صرف‌شده برای ارسال کامل پاسخ از این مقدار ثانیه بیشتر شده باشد. .sp هنگامی که این مهلت زمانی به پایان برسد، نشست بسته می‌شود..SS shortlived .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 10.000 .IP \(bu 2 کمینه: 0.000 .UNINDENT .UNINDENT .UNINDENT .sp اشیایی که با (ttl+grace+keep) کوتاه‌تر از این مقدار ایجاد شوند، همواره در فضای ذخیره‌سازی گذرا (transient storage) قرار می‌گیرند. .SS sigsegv_handler .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: on .IP \(bu 2 پرچم‌ها: must_restart .UNINDENT .UNINDENT .UNINDENT .sp نصب یک گردانندهٔ سیگنال که هنگام بروز خطاهای تقسیم‌بندی (segmentation fault)، خطاهای گذرگاه (bus error) و سیگنال‌های abort، تلاش می‌کند اطلاعات اشکال‌زدایی را تخلیه کند. .SS startup_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.000 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: timeout .UNINDENT .UNINDENT .UNINDENT .sp مهلت زمانی جایگزین برای راه‌اندازی اولیهٔ فرایند کارگر (worker process). اگر cli_timeout طولانی‌تر از startup_timeout باشد، به جای آن استفاده می‌شود. .SS syslog_cli_traffic .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: on .UNINDENT .UNINDENT .UNINDENT .sp ثبت تمام ترافیک CLI در syslog(LOG_INFO). .SS tcp_fastopen .sp توجه: این پارامتر به قابلیتی وابسته است که در همهٔ بسترها در دسترس نیست. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: bool .IP \(bu 2 پیش‌فرض: off .IP \(bu 2 پرچم‌ها: must_restart .UNINDENT .UNINDENT .UNINDENT .sp فعال‌سازی افزونهٔ TCP Fast Open. .SS tcp_keepalive_intvl .sp توجه: این پارامتر به قابلیتی وابسته است که در همهٔ بسترها در دسترس نیست. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: وابسته به بستر .IP \(bu 2 کمینه: 1.000 .IP \(bu 2 بیشینه: 100.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp تعداد ثانیه‌های بین کاوش‌های TCP keep\-alive. این مقدار برای سوکت‌های دامنه یونیکس (Unix domain sockets) نادیده گرفته می‌شود..SS tcp_keepalive_probes .sp نکته: این پارامتر به قابلیتی وابسته است که در همهٔ پلتفرم‌ها در دسترس نیست. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: کاوش .IP \(bu 2 پیش‌فرض: وابسته به پلتفرم .IP \(bu 2 کمینه: 1 .IP \(bu 2 بیشینه: 100 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp بیشترین تعداد کاوش‌های TCP keep\-alive برای ارسال، پیش از قطع امید و بستن اتصال در صورتی که هیچ پاسخی از طرف مقابل دریافت نشود. برای سوکت‌های دامنه یونیکس نادیده گرفته می‌شود. .SS tcp_keepalive_time .sp نکته: این پارامتر به قابلیتی وابسته است که در همهٔ پلتفرم‌ها در دسترس نیست. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: وابسته به پلتفرم .IP \(bu 2 کمینه: 1.000 .IP \(bu 2 بیشینه: 7200.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp تعداد ثانیه‌هایی که یک اتصال باید در وضعیت بیکار (idle) باشد پیش از آن‌که TCP شروع به ارسال کاوش‌های keep\-alive کند. برای سوکت‌های دامنه یونیکس نادیده گرفته می‌شود. .SS thread_pool_add_delay .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.000 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp حداقل به این میزان پس از ایجاد یک نخ (thread) درنگ کنید. .sp برخی سیستم‌های (دارای باگ) ممکن است به تأخیری کوتاه (کسری از ثانیه) بین ایجاد نخ‌ها نیاز داشته باشند. اگر مشاهده کردید که شمارندهٔ \(aqthreads_failed\(aq بیش از حد رشد می‌کند، این مقدار را روی چند میلی‌ثانیه تنظیم کنید. .sp تنظیم بیش از اندازهٔ این مقدار منجر به ناکافی بودن نخ‌های کارگر (worker threads) می‌شود. .SS thread_pool_destroy_delay .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 1.000 .IP \(bu 2 کمینه: 0.010 .IP \(bu 2 پرچم‌ها: delayed, experimental .UNINDENT .UNINDENT .UNINDENT .sp به این میزان پس از نابودی یک نخ (thread) درنگ کنید. .sp این پارامتر کاهش تدریجی استخرهای نخ (thread pools) را در هنگام بیکاری (یا شرایط شبه‌بیکاری) کنترل می‌کند..SS thread_pool_fail_delay .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 0.200 .IP \(bu 2 حداقل: 0.010 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp پس از هر بار شکست در ایجاد thread، پیش از تلاش برای ایجاد یک thread دیگر، حداقل به این میزان صبر کنید. .sp شکست در ایجاد یک thread کارگر (worker thread) اغلب نشانه‌ای از رو به پایان بودن کار است، چرا که منابع فرآیند در حال اتمام است. این تاخیر تلاش می‌کند تا بی‌جهت رسیدن به پایان کار را تسریع نکند. .sp اگر شکست در ایجاد threadها به یک مشکل تبدیل شده است، بررسی کنید که مقدار thread_pool_max بیش از حد بالا نباشد. .sp همچنین افزایش مقادیر thread_pool_timeout و thread_pool_min ممکن است به کاهش نرخ نابودی threadها و ایجاد مجدد آن‌ها کمک کند. .SS thread_pool_max .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: threadها .IP \(bu 2 پیش‌فرض: 5000 .IP \(bu 2 حداقل: thread_pool_min .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد threadهای کارگر در هر استخر (pool). .sp این مقدار را بالاتر از حد نیاز تنظیم نکنید، زیرا threadهای کارگر اضافی حافظهٔ RAM و CPU را بی‌جهت مصرف می‌کنند و عموماً تنها مانع انجام کارآمد امور می‌شوند. .SS thread_pool_min .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: threadها .IP \(bu 2 پیش‌فرض: 100 .IP \(bu 2 حداقل: 5 .IP \(bu 2 حداکثر: thread_pool_max .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp حداقل تعداد threadهای کارگر در هر استخر. .sp افزایش این مقدار ممکن است به پاسخ‌دهی سریع‌تر هنگام گذر از شرایط بار کاری پایین یا در مواردی که مهلت threadها منقضی شده است، کمک کند. .sp حداقل مقدار از نظر فنی ۵ thread است، اما اکیداً توصیه می‌شود که این پارامتر حداقل روی ۱۰ تنظیم شود. .SS thread_pool_reserve .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: threadها .IP \(bu 2 پیش‌فرض: 0 (auto\-tune: ۵٪ از thread_pool_min) .IP \(bu 2 حداکثر: ۹۵٪ از thread_pool_min .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp تعداد threadهای کارگر رزرو شده برای وظایف حیاتی در هر استخر. .sp وظایف ممکن است برای تکمیل شدن به وظایف دیگری نیاز داشته باشند (برای مثال، درخواست‌های client ممکن است به درخواست‌های backend نیاز داشته باشند؛ نشست‌های http2 نیازمند streamها هستند که آن‌ها نیز به درخواست‌ها وابسته می‌باشند). این سهمیهٔ رزرو به این منظور است که اطمینان حاصل شود وظایف با اولویت پایین‌تر حتی تحت بار زیاد نیز مانع از اجرای وظایف با اولویت بالاتر نمی‌شوند. .sp مقدار مؤثر، صرف‌نظر از مقدار این پارامتر، حداقل ۵ (تعداد کلاس‌های اولویت داخلی) است..SS thread_pool_stack .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 80k .IP \(bu 2 کمینه: sysconf(_SC_THREAD_STACK_MIN) .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp اندازه پشته ریسه کارگر. این مقدار احتمالاً توسط هسته به مضربی از 4k (یا هر مقداری که page_size باشد) به بالا گرد می‌شود. .sp اندازه پشته مورد نیاز در درجه اول تحت تأثیر عمق call\-tree است. متداول‌ترین عوامل تعیین‌کننده مرتبط در کد هسته Vinyl Cache عبارتند از فشرده‌سازی/خروج از فشرده‌سازی GZIP، پردازش ESI و تطابق عبارات باقاعده (regular expression). همچنین VMODها ممکن است به مقادیر قابل توجهی پشته اضافی نیاز داشته باشند. عمق تودرتویی زیرروال‌های VCL عامل دیگری است، اگرچه معمولاً غالب نیست. .sp اندازه پشته به ازای هر ریسه است، بنابراین حداکثر کل حافظه مورد نیاز برای پشته‌های ریسه کارگر در مرتبه size = thread_pools x thread_pool_max x thread_pool_stack خواهد بود. .sp بنابراین، به‌ویژه برای پیکربندی‌هایی با ریسه‌های بسیار، نگه داشتن اندازه پشته در کمترین مقدار به کاهش میزان حافظه مورد نیاز Vinyl Cache کمک می‌کند. .sp از سوی دیگر، thread_pool_stack تحت هر شرایطی باید به اندازه کافی بزرگ باشد، در غیر این صورت Vinyl Cache به دلیل سرریز پشته (stack overflow) از کار خواهد افتاد. معمولاً سرریز پشته به صورت خطای بخش‌بندی (segfault / SIGSEGV) ظاهر می‌شود که در آن نشانی خطا نزدیک به اشاره‌گر پشته (sp) است. .sp مگر اینکه مصرف پشته کاهش یابد، در هنگام رخ دادن سرریز پشته باید مقدار thread_pool_stack افزایش یابد. توصیه می‌شود افزایش آن در گام‌های 150%\-200% صورت گیرد تا زمانی که وقوع سرریز پشته متوقف شود. .SS thread_pool_timeout .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 300.000 .IP \(bu 2 کمینه: 10.000 .IP \(bu 2 پرچم‌ها: delayed, experimental .UNINDENT .UNINDENT .UNINDENT .sp آستانه بیکاری ریسه. .sp ریسه‌های مازاد بر thread_pool_min که حداقل به این مدت زمان بیکار بوده‌اند، از بین خواهند رفت. .SS thread_pool_watchdog .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 کمینه: 0.100 .IP \(bu 2 پرچم‌ها: experimental .UNINDENT .UNINDENT .UNINDENT .sp ناظر (watchdog) گیر کردن صف ریسه‌ها. .sp اگر برای این مدت زمان هیچ کار در صف قرار گرفته‌ای آزاد نشود، فرایند کارگر خود را دچار panic می‌کند. .SS thread_pools .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: استخر .IP \(bu 2 پیش‌فرض: 2 .IP \(bu 2 کمینه: 1 .IP \(bu 2 بیشینه: 32 .IP \(bu 2 پرچم‌ها: delayed, experimental .UNINDENT .UNINDENT .UNINDENT .sp تعداد استخرهای ریسه کارگر. .sp افزایش تعداد استخرهای کارگر، رقابت بر سر قفل (lock contention) را کاهش می‌دهد. هر استخر کارگر همچنین دارای یک ریسه برای پذیرش اتصالات جدید است، بنابراین برای نرخ‌های بسیار بالای اتصالات جدید ورودی در سیستم‌هایی با هسته‌های پرشمار، ممکن است افزایش استخرهای کارگر ضروری باشد. .sp تعداد بیش از حد استخرها منابع CPU و RAM را هدر می‌دهد، و اختصاص بیش از یک استخر به ازای هر CPU به احتمال زیاد به کارایی آسیب می‌زند. .sp می‌توان آن را به‌صورت زنده (on the fly) افزایش داد، اما کاهش آن برای اعمال شدن نیازمند راه‌اندازی مجدد است، مگر اینکه پرچم اشکال‌زدایی آزمایشی drop_pools تنظیم شده باشد..SS thread_queue_limit .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: درخواست‌ها .IP \(bu 2 پیش‌فرض: 20 .IP \(bu 2 کمینه: 0 .IP \(bu 2 پرچم‌ها: آزمایشی .UNINDENT .UNINDENT .UNINDENT .sp طول مجاز صف درخواست به ازای هر thread\-pool. .sp این پارامتر تعداد درخواست‌هایی را تعیین می‌کند که در انتظار یک ریسهٔ آزاد در صف قرار می‌گیرند. فراتر از این محدودیت، نشست‌ها به جای قرار گرفتن در صف، دور انداخته (drop) می‌شوند. .SS thread_stats_rate .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: درخواست‌ها .IP \(bu 2 پیش‌فرض: 10 .IP \(bu 2 کمینه: 0 .IP \(bu 2 پرچم‌ها: آزمایشی .UNINDENT .UNINDENT .UNINDENT .sp ریسه‌های کارگر (worker threads) آمارها را جمع‌آوری می‌کنند و در صورتی که پس از اتمام یک وظیفه (درخواست/واکشی و غیره) قفل آزاد باشد، آن‌ها را در شمارنده‌های آمار سراسری تخلیه می‌نمایند. این پارامتر حداکثر تعداد وظایفی را تعیین می‌کند که یک ریسهٔ کارگر می‌تواند پیش از اجبار به تخلیهٔ آمارهای انباشته‌شده‌اش در شمارنده‌های سراسری، انجام دهد. .SS timeout_idle .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: ثانیه .IP \(bu 2 پیش‌فرض: 5.000 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 بیشینه: 3600.000 .UNINDENT .UNINDENT .UNINDENT .sp مهلت زمانی بی‌کاری (idle timeout) برای اتصالات کلاینت. .sp یک اتصال تا زمانی که تمام سرآیندهای درخواست دریافت نشود، بی‌کار تلقی می‌شود. .sp این پارامتر به‌ویژه برای اتصالات keepalive پروتکل HTTP1 کاربرد دارد که در صورت عدم دریافت درخواست بعدی پیش از به پایان رسیدن این مهلت زمانی، بسته می‌شوند. .SS timeout_linger .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: ثانیه .IP \(bu 2 پیش‌فرض: 0.050 .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: آزمایشی .UNINDENT .UNINDENT .UNINDENT .sp مدت زمانی که ریسهٔ کارگر روی یک نشست بی‌کار درنگ می‌کند، پیش از آنکه آن را به waiter تحویل دهد. هنگامی که نشست‌ها مجدداً استفاده می‌شوند، تا نیمی از کل موارد استفادهٔ مجدد در طول ۱۰۰ میلی‌ثانیه نخست پس از تکمیل درخواست قبلی رخ می‌دهند. تنظیم بیش از حد بالای این پارامتر باعث می‌شود ریسه‌های کارگر بدون انجام کاری بیهوده معطل بمانند، و تنظیم بسیار پایین آن تنها به این معناست که نشست‌های بیشتری از مسیر غیرمستقیم waiter عبور می‌کنند. .SS transit_buffer .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحدها: بایت .IP \(bu 2 پیش‌فرض: 0b .IP \(bu 2 کمینه: 0b .UNINDENT .UNINDENT .UNINDENT .sp تعداد بایت‌هایی که Vinyl Cache برای واکشی‌های جریانیِ غیرقابل‌کَش از backend بافر می‌کند \- به عبارت دیگر، Vinyl Cache چند بایت جلوتر از آنچه به کلاینت فرستاده شده را از backend می‌خواند. مقدار صفر به معنی عدم وجود محدودیت است و شیء تا حد امکان با بیشترین سرعت واکشی می‌شود. .sp در هنگام مواجهه با کلاینت‌های کُند، تنظیم این پارامتر روی مقداری غیر از صفر می‌تواند از ذخیرهٔ کامل اشیاء بزرگ غیرقابل‌کَش جلوگیری کند؛ به‌ویژه در شرایطی که هدف تنها پخش جریانی (stream) آن‌ها به کلاینت است. در نتیجه، تراکنش یک کلاینت کُند، اتصال backend را تا پایان تحویل باز نگه می‌دارد. .sp این پارامتر مقدار پیش‌فرض متغیر VCL با نام \fBberesp.transit_buffer\fP است که می‌تواند برای کنترل بافر عبوری (transit buffer) به ازای هر درخواست به backend استفاده شود..SS uncacheable_ttl .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 2m .IP \(bu 2 کمینه: 0.000 .IP \(bu 2 پرچم‌ها: obj_sticky .UNINDENT .UNINDENT .UNINDENT .sp مقدار TTL تخصیص‌یافته به اشیاء غیرقابل‌کَش توسط VCL توکار. .SS vary_notice .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: گونه‌ها .IP \(bu 2 پیش‌فرض: 10 .IP \(bu 2 کمینه: 1 .UNINDENT .UNINDENT .UNINDENT .sp تعداد گونه‌هایی که باید ارزیابی شوند تا یک اعلان (Notice) مبنی بر احتمال وجود بیش از حد گونه‌ها ثبت شود. .SS vcc_allow_inline_c .sp نام مستعار منسوخ‌شده برای پارامتر vcc_feature. .SS vcc_err_unref .sp نام مستعار منسوخ‌شده برای پارامتر vcc_feature. .SS vcc_feature .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: none,+err_unref,+unsafe_path .UNINDENT .UNINDENT .UNINDENT .sp فعال یا غیرفعال کردن رفتارهای گوناگون VCC. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fIdefault\fP تنظیم مقدار پیش‌فرض (منسوخ‌شده: از param.reset استفاده کنید) .TP .B \fInone\fP غیرفعال کردن تمام رفتارها. .UNINDENT .UNINDENT .UNINDENT .sp برای فعال یا غیرفعال کردن رفتارهای مجزا از پیشوند +/\- استفاده کنید: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fIerr_unref\fP اشیاء ارجاع‌داده‌نشده در VCL منجر به خطا می‌شوند. .TP .B \fIallow_inline_c\fP مجاز دانستن کد C درون‌خطی در VCL. .TP .B \fIunsafe_path\fP مجاز دانستن \(aq/\(aq در مسیرهای include و vmod. مجاز دانستن \(aqimport ... from ...\(aq. .UNINDENT .UNINDENT .UNINDENT .SS vcc_unsafe_path .sp نام مستعار منسوخ‌شده برای پارامتر vcc_feature..SS vcl_cooldown .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 600.000 .IP \(bu 2 کمینه: 1.000 .UNINDENT .UNINDENT .UNINDENT .sp مدت‌زمانی که یک VCL پس از جایگزین شدن به عنوان VCL فعال، گرم نگه داشته می‌شود (تفکیک‌پذیری زمانی تقریباً ۳۰ ثانیه). .SS vcl_path .sp نکته: مقدار پیش‌فرض واقعی این پارامتر به محیط و گزینه‌های ساخت Vinyl Cache بستگی دارد. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: ${sysconfdir}/vinyl\-cache:${datadir}/vinyl\-cache/vcl .UNINDENT .UNINDENT .UNINDENT .sp دایرکتوری (یا فهرستی از دایرکتوری‌ها که با دونقطه از هم جدا شده‌اند) که نام‌های نسبی فایل‌های VCL (دستورهای vcl.load و include) در آن‌ها جستجو می‌شوند. به‌طور پیش‌فرض، Vinyl Cache فایل‌های VCL را هم در دایرکتوری پیکربندی سیستم و هم در دایرکتوری داده‌های اشتراکی جستجو می‌کند تا بسته‌ها بتوانند فایل‌های VCL خود را در مکانی استاندارد قرار دهند که includeهای نسبی در آن کار کنند. مواردی که با +glob فراخوانی (include) می‌شوند را نمی‌توان در vcl_path جستجو کرد. .SS vmod_path .sp نکته: مقدار پیش‌فرض واقعی این پارامتر به محیط و گزینه‌های ساخت Vinyl Cache بستگی دارد. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: ${libdir}/vinyl\-cache/vmods .UNINDENT .UNINDENT .UNINDENT .sp دایرکتوری (یا فهرستی از دایرکتوری‌ها که با دونقطه از هم جدا شده‌اند) که VMODها در آن قرار دارند. .SS vsl_buffer .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 16k .IP \(bu 2 کمینه: vsl_reclen + 12 بایت .UNINDENT .UNINDENT .UNINDENT .sp تعداد بایت‌های فضای کاری (req\-/backend\-) اختصاص‌یافته برای بافر کردن رکوردهای VSL. هنگامی که این پارامتر تنظیم می‌شود، به احتمال زیاد workspace_client و workspace_backend نیز باید به همان میزان تنظیم شوند. .sp تنظیم این مقدار روی عددی بیش از حد بالا موجب مصرف زیاد حافظه می‌شود؛ تنظیم بیش از حد پایین آن باعث تخلیه (flush) مکرر VSL و احتمالاً افزایش رقابت بر سر قفل (lock\-contention) در mutex مربوط به VSL خواهد شد. .SS vsl_mask .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 پیش‌فرض: all,\-Debug,\-ObjProtocol,\-ObjStatus,\-ObjReason,\-ObjHeader,\-ExpKill,\-WorkThread,\-Hash,\-VfpAcct,\-H2RxHdr,\-H2RxBody,\-H2TxHdr,\-H2TxBody,\-VdpAcct,\-ReqTarget .UNINDENT .UNINDENT .UNINDENT .sp ماسک کردن پیام‌های منفرد VSL برای جلوگیری از ثبت آن‌ها در گزارش‌ها. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fIall\fP فعال‌سازی همه برچسب‌ها .TP .B \fIdefault\fP تنظیم مقدار پیش‌فرض (منسوخ شده: از param.reset استفاده کنید) .UNINDENT .UNINDENT .UNINDENT .sp برای لغو ماسک یا ماسک کردن پیام‌های منفرد VSL، از پیشوند +/\- پیش از نام برچسب VSL استفاده کنید. برای مقادیر مجاز vsl(7) را ببینید..SS vsl_reclen .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 255b .IP \(bu 2 حداقل: 16b .IP \(bu 2 حداکثر: vsl_buffer \- 12 بایت .UNINDENT .UNINDENT .UNINDENT .sp حداکثر تعداد بایت‌ها در یک رکورد لاگ SHM. .SS vsl_space .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 80M .IP \(bu 2 حداقل: 1M .IP \(bu 2 حداکثر: 4G .IP \(bu 2 پرچم‌ها: must_restart .UNINDENT .UNINDENT .UNINDENT .sp میزان فضای تخصیص‌یافته برای بافرِ fifo مربوط به VSL در قطعه حافظهٔ VSM. اگر این مقدار را بیش از حد کوچک تعیین کنید، vinyl{ncsa|log} و غیره قادر به همگام ماندن نخواهند بود. بزرگ در نظر گرفتن بیش از حد آن نیز صرفاً منابع حافظه را هدر می‌دهد. .SS vsm_free_cooldown .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: ثانیه .IP \(bu 2 پیش‌فرض: 60.000 .IP \(bu 2 حداقل: 10.000 .IP \(bu 2 حداکثر: 600.000 .UNINDENT .UNINDENT .UNINDENT .sp مدت زمانی که حافظهٔ VSM پس از آزادسازی، گرم (آماده استفاده) نگه داشته می‌شود (دقت تفکیک تقریباً ۲ ثانیه). .SS workspace_backend .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 96k .IP \(bu 2 حداقل: 1k .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp میزان فضای کاری پروتکل HTTP به بایت برای req/resp در backend HTTP. اگر بزرگ‌تر از 4k است، برای بهره‌وری حافظه مجازی (VM) از مضربی از 4k استفاده کنید. .SS workspace_client .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 96k .IP \(bu 2 حداقل: 9k .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp میزان فضای کاری پروتکل HTTP به بایت برای req/resp کلاینت‌های HTTP. برای بهره‌وری حافظه مجازی (VM)، از مضربی از 4k استفاده کنید. برای سازگاری با HTTP/2، این مقدار باید حداقل 20k باشد تا بتوان فریم‌هایی با اندازه کامل (=16k) را از کلاینت دریافت کرد. این امر معمولاً تنها در بدنهٔ درخواست‌های POST/PUT رخ می‌دهد. برای سایر الگوهای ترافیکی (traffic\-patterns)، مقادیر کوچک‌تر کاملاً مناسب خواهند بود..SS workspace_session .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 0.75k .IP \(bu 2 حداقل: 384b .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp اندازه تخصیص برای ساختار نشست (session) و فضای کاری. فضای کاری عمدتاً برای نشانی‌های اتصال TCP به کار می‌رود. در صورتی که بزرگ‌تر از 4k باشد، برای کارایی بهتر حافظه مجازی (VM)، از مضربی از 4k استفاده کنید. .SS workspace_thread .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 واحد: بایت .IP \(bu 2 پیش‌فرض: 2k .IP \(bu 2 حداقل: 0.25k .IP \(bu 2 حداکثر: 8k .IP \(bu 2 پرچم‌ها: delayed .UNINDENT .UNINDENT .UNINDENT .sp میزان بایت‌های فضای کاری کمکی به ازای هر رشته (thread). این فضای کاری در طول فعالیت یک رشته کاری (worker thread)، برای برخی ساختارهای داده‌ای موقت استفاده می‌شود. یکی از کاربردهای آن برای IO\-vectorهای مورد استفاده در حین تحویل است. تنظیم این پارامتر روی مقداری بیش از حد کم ممکن است تعداد فراخوانی‌های سیستمی writev() را افزایش دهد، و تنظیم بیش از حد زیاد آن تنها فضا را هدر می‌دهد. مقدار ~0.1k + UIO_MAXIOV * sizeof(struct iovec) (معمولاً = ~16k برای ۶۴ بیتی) در هر شرایط شناخته‌شده‌ای (به استثنای کاربردهای نامتعارف vmod)، حداکثر مقدار معقول در نظر گرفته می‌شود. .SH "کدهای خروج (EXIT CODES)" .sp Vinyl Cache و ابزارهای همراه آن، در بیشتر موارد، با یکی از کدهای زیر خارج می‌شوند: .INDENT 0.0 .IP \(bu 2 \fI0\fP بدون خطا (OK) .IP \(bu 2 \fI1\fP خطایی که ممکن است وابسته به سیستم و/یا گذرا باشد .IP \(bu 2 \fI2\fP خطای جدی در پیکربندی / پارامتر \- تلاش مجدد با همان پیکربندی / پارامترها به احتمال زیاد بی‌فایده است .UNINDENT .sp فرایند اصلی (master) \fIvinyld\fP همچنین ممکن است کد خروج خود را با مقادیر زیر OR کند: .INDENT 0.0 .IP \(bu 2 با \fI0x20\fP هنگامی که فرایند فرزند \fIvinyld\fP از بین رفت، .IP \(bu 2 با \fI0x40\fP هنگامی که فرایند فرزند \fIvinyld\fP با یک سیگنال متوقف شد، و .IP \(bu 2 با \fI0x80\fP هنگامی که تخلیه حافظه (core dump) رخ داد. .UNINDENT .SH "همچنین ببینید (SEE ALSO)" .INDENT 0.0 .IP \(bu 2 \fIvinyllog(1)\fP .IP \(bu 2 \fIvinylhist(1)\fP .IP \(bu 2 \fIvinylncsa(1)\fP .IP \(bu 2 \fIvinylstat(1)\fP .IP \(bu 2 \fIvinyltop(1)\fP .IP \(bu 2 \fIvinyl\-cli(7)\fP .IP \(bu 2 \fIvcl(7)\fP .UNINDENT .SH "تاریخچه (HISTORY)" .sp دیمن \fIvinyld\fP توسط Poul\-Henning Kamp با همکاری Verdens Gang AS و Redpill\-Linpro توسعه یافته است. .sp این صفحه راهنما توسط Dag\-Erling Smørgrav با به‌روزرسانی‌هایی از سوی Stig Sandbeck Mathisen <\%>، Nils Goroll و دیگران نوشته شده است..SH "کپی‌رایت و تکثیر (COPYRIGHT)" .sp این سند تحت همان مجوز خود Vinyl Cache منتشر شده است. برای جزئیات به LICENCE مراجعه کنید. .INDENT 0.0 .IP \(bu 2 Copyright (c) 2007\-2015 Varnish Software AS .UNINDENT .\" End of generated man page.