| INNFEED.CONF(5) | InterNetNews Documentation | INNFEED.CONF(5) |
نام (NAME)
innfeed.conf - فایل پیکربندی ارسال سریع فید مقالات در INN
در یک نگاه (IN A NUTSHELL)
فایل innfeed.conf پیکربندی میکند که innfeed فیدهای NNTP را به کدام همتاهای دوردست ارسال نماید.
یک مدخل متداول برای پارامتردهی "news.server.com" به عنوان یک فید خروجی به صورت زیر است:
peer news.server.com {
ip-name: "news.server.com"
}
اگر پورت استاندارد ۱۱۹ برای NNTP استفاده نمیشود، میتوانید یک پورت جایگزین را به صورت زیر مشخص کنید:
peer news.server.com {
ip-name: "news.server.com"
port-number: 433
}
پس از هرگونه تغییر، دستور "inncheck" را برای انجام بررسیهای اولیه ساختار نحوی اجرا کنید و با دستور زیر این فایل پیکربندی را مجدداً بارگذاری نمایید که باعث میشود innd نمونه جدیدی از innfeed را بازتولید کند (با فرض اینکه "innfeed!" نام فید کانال مربوطه در newsfeeds باشد):
ctlinnd flush innfeed!
توضیحات (DESCRIPTION)
فایل پیکربندی innfeed.conf در pathetc برای کنترل برنامه innfeed(8) به کار میرود. این فایل ساختاری کاملاً آزاد دارد و از سه نوع مدخل تشکیل شده است: key:value، peer و group. توضیحات و یادداشتها از نویسه هش ("#") تا انتهای خط در نظر گرفته میشوند.
مدخلهای key:value یک کلمه کلیدی و یک مقدار هستند که با دونقطه (که خود میتواند با فاصلههای خالی احاطه شود) از هم جدا شدهاند. به عنوان مثال:
max-connections: 10
یک key مجاز با یک حرف شروع میشود و تنها شامل حروف، ارقام و نویسههای "_" و "-" است. ۵ نوع مقدار مختلف وجود دارد: اعداد صحیح، اعداد اعشاری، نویسهها، مقادیر بولی و رشتهها.
اعداد صحیح و اعشاری همانطور که انتظار میرود عمل میکنند، جز اینکه نمادهای علمی (نماها) در اعداد اعشاری پشتیبانی نمیشوند. مقدار بولی یکی از مقادیر "true"، "yes"، "on"، "false"، "no" یا "off" است (بزرگی و کوچکی حروف مهم نیست). مقدار نویسه (کاراکتر)، یک نویسه درون نقلقول تکی همانند تعریف زبان C است. مقدار رشتهای هر دنباله دیگری از نویسهها است. اگر رشته نیاز به داشتن فاصله خالی داشته باشد، باید درون نقلقول دوتایی قرار گیرد و از همان ساختار زبان C برای جاسازی نویسههای غیرقابلچاپ استفاده میکند.
مدخلهای همتا (Peer) به شکل زیر هستند:
peer <name> {
# body ...
}
کلمه "peer" الزامی است. <name> همان نام سایت در فایل پیکربندی newsfeeds در INN است. بدنه یک مدخل همتا شامل تعدادی (احتمالاً صفر) از مدخلهای key:value است.
مدخلهای گروه (Group) به شکل زیر هستند:
group <name> {
# body ...
}
کلمه "group" الزامی است. <name> هر رشته معتبری به عنوان یک کلید است. بدنه یک مدخل گروه شامل هر تعداد از این سه نوع مدخل میباشد؛ بنابراین جفتهای key:value میتوانند درون یک گروه تعریف شوند، همتاها میتوانند درون یک گروه تو در تو باشند، و گروههای دیگر نیز میتوانند درون یک گروه قرار گیرند.
مدخلهای key:value که خارج از تمام مدخلهای peer و group تعریف شدهاند، دارای «دامنه سراسری» (global scope) هستند. مدخلهای سراسری key:value وجود دارند که به کل فرایند اعمال میشوند (به عنوان مثال مکان دایرکتوری فایلهای بکلاگ)، و همچنین مدخلهای سراسری key:value دیگری وجود دارند که به عنوان پیشفرضهای همتاها عمل میکنند. زمانی که innfeed به دنبال مقدار مشخصی در یک مدخل همتا میگردد (مثلاً حداکثر تعداد اتصالات برای برقراری)، اگر آن مقدار در مدخل همتا تعریف نشده باشد، گروههای دربرگیرنده به دنبال آن مدخل بررسی میشوند (از نزدیکترین گروه دربرگیرنده شروع میشود). اگر هیچ گروه دربرگیرندهای وجود نداشته باشد، یا گروههای دربرگیرنده آن key:value را تعریف نکرده باشند، مقدار موجود در دامنه سراسری استفاده میشود.
یک مثال کوچک میتواند به این صورت باشد:
# Global value applied to all peers that have
# no value of their own.
max-connections: 5
# A peer definition. "uunet" is the name used by innd
# in the newsfeeds configuration file.
peer uunet {
ip-name: usenet1.uu.net
}
peer vixie {
ip-name: gw.home.vix.com
max-connections: 10 # Override global value.
}
# A group of two peers which can handle more connections
# than normal.
group fast-sites {
max-connections: 15
# Another peer. The "max-connections" value from the
# "fast-sites" group scope is used. The "ip-name" value
# defaults to the peer's name.
peer data.ramona.vix.com {
}
peer bb.home.vix.com {
max-connections: 20 # He can really cook.
}
}
با توجه به فایل پیکربندی بالا، همتاهای تعریفشده مقادیر زیر را برای کلید max-connections خواهند داشت:
uunet 5 vixie 10 data.ramona.vix.com 15 bb.home.vix.com 20
برنامه innfeed جفتهای key:value را که به آنها علاقهای ندارد نادیده میگیرد. برخی از مقادیر فایل پیکربندی را میتوان از طریق گزینههای خط فرمان تنظیم کرد که در این صورت آن تنظیمات بر تنظیمات درون فایل اولویت دارند.
فایلهای پیکربندی را میتوان با نحو زیر در سایر فایلهای پیکربندی گنجاند:
$INCLUDE filename
حداکثر عمق تو در تو بودن ۱۰ است.
برای مشاهده یک نمونه کاملتر از فایل پیکربندی، به فایل innfeed.conf ارائهشده مراجعه کنید.
مقادیر سراسری (GLOBAL VALUES)
فهرست زیر تمام کلیدهایی را نشان میدهد که به کل فرایند اعمال میشوند. این کلیدها الزامی نیستند (در صورت نیاز از مقادیر پیشفرض تعبیهشده در زمان کامپایل استفاده میشود).
- news-spool
- این کلید نیازمند یک مقدار مسیر است و مقدار پیشفرض آن patharticles در inn.conf میباشد. این کلید مشخص میکند که ریشه یا بالای اسپول مقاله کجاست. این تنظیم معادل گزینه خط فرمان -a است.
- input-file
- این کلید
نیازمند یک
مقدار مسیر
است. این
کلید مسیر
(نسبت به
مقدار backlog-directory)
فایلی را
مشخص
میکند که
باید در
حالت funnel-file
خوانده شود.
این معادل
دادن یک نام
فایل به
عنوان
آرگومان در
خط فرمان
است (یعنی
وجود آن
نشاندهنده
استفاده از
حالت funnel-file نیز
میباشد).
پیشفرض این مقدار تنظیمنشده است؛ در این صورت innfeed در حالت کانال یا دستهای اجرا میشود.
- pid-file
- این کلید نیازمند یک مقدار مسیر است و به طور پیشفرض innfeed.pid میباشد. این کلید مسیر (نسبت به pathrun در inn.conf) ذخیره شناسه فرایند (PID) برنامه innfeed را مشخص میکند. این تنظیم معادل گزینه خط فرمان -p است.
- debug-level
- این کلید
سطح
اشکالزدایی
را برای
فرایند
مشخص
میکند.
پیشفرض
"0" است.
یک عدد
غیرصفر
پیامهای
زیادی را به
stderr یا به فایل
گزارش
مشخصشده
در
پیکربندی
(یعنی log-file)
ارسال
میکند. این
تنظیم
معادل
گزینه خط
فرمان -d
است.
اگر فایلی به نام innfeed.debug در دایرکتوری pathlog (همانطور که در inn.conf تنظیم شده) وجود داشته باشد، مقدار debug-level به صورت خودکار روی "1" تنظیم میشود. این روشی ساده و کمهزینه برای جلوگیری از بارگذاری مجدد مداوم فایل newsfeeds هنگام اشکالزدایی است. توجه داشته باشید که پیامهای اشکالزدایی همچنان به log-file ارسال میشوند.
- debug-shrinking
- این کلید نیازمند یک مقدار بولی است و پیشفرض آن false است (فایل اشکالزدایی اجازه دارد بدون محدودیت رشد کند). در صورت تنظیم روی true، هنگامی که اندازه این فایل به حد معینی برسد، کوتاه میشود. برای جزئیات بیشتر به backlog-limit مراجعه کنید.
- initial-sleep
- این کلید نیازمند یک عدد صحیح مثبت است. مقدار پیشفرض "2" است. این کلید تعداد ثانیههایی را مشخص میکند که innfeed (یا یک انشعاب از آن) پس از شروع، پیش از آغاز باز کردن اتصالات به میزبانهای راه دور باید منتظر بماند.
- fast-exit
- این کلید نیازمند یک مقدار بولی است و پیشفرض آن false است. در صورت تنظیم روی true، هنگامی که innfeed یک سیگنال SIGTERM یا SIGQUIT دریافت میکند، شنوندگان خود را در سریعترین زمان ممکن میبندد، حتی اگر به معنای نادیده گرفتن و انداختن مقالات باشد.
- use-mmap
- این کلید نیازمند یک مقدار بولی است و پیشفرض آن true است. هنگامی که به جای نشانههای API ذخیرهسازی، نام فایلها به innfeed داده میشود تا ارسال شوند (یک مورد استفاده نسبتاً نادر)، مشخص میکند که آیا در صورت کامپایل شدن innfeed با پشتیبانی از mmap(2) باید از mmap استفاده شود یا خیر. اگر دادههای مقاله روی دیسک در قالبی آماده برای NNTP نباشد (CR/LF در انتهای هر خط)، پس از mmap شدن، مقاله در حافظه خوانده شده و اصلاح میشود؛ بنابراین mmap هیچ اثر مثبتی ندارد (و بسته به سیستم شما احتمالاً اثر منفی هم دارد)؛ در نتیجه در چنین حالتی این مقدار باید "false" باشد که معادل گزینه خط فرمان -M است.
- log-file
- این کلید
نیازمند یک
مقدار مسیر
است و
پیشفرض آن
innfeed.log
میباشد.
این کلید
مشخص
میکند که
هرگونه
پیام
گزارشی که
امکان
ارسال آن از
طریق syslog(3)
وجود
نداشته است
(مانند
پیامهای
تولیدشده
هنگام
استفاده از
مقدار مثبت
برای debug-level) به
کجا ارسال
شود. این
تنظیم
معادل
گزینه خط
فرمان -l
است.
این مسیر نسبت به pathlog در inn.conf است.
- log-time-format
- این کلید نیازمند یک رشته قالب مناسب برای strftime(3) است. این رشته برای پیامهای ارسالشده از طریق syslog(3) و به status-file استفاده میشود. مقدار پیشفرض "%a %b %d %H:%M:%S %Y" است.
- backlog-directory
- این کلید
نیازمند یک
مقدار مسیر
است و
پیشفرض آن
innfeed میباشد.
این کلید
مشخص
میکند که
فرایند
فعلی innfeed کجا
باید
فایلهای
بکلاگ را
ذخیره کند.
این تنظیم
معادل
گزینه خط
فرمان -b
است.
این مسیر نسبت به pathspool در inn.conf است.
- backlog-highwater
- این کلید نیازمند یک عدد صحیح مثبت است و مقدار پیشفرض آن "5" میباشد. این کلید مشخص میکند چه تعداد مقاله باید در صف فایل بکلاگ نگهداری شود قبل از اینکه نوشتن مدخلهای جدید روی دیسک آغاز گردد.
- backlog-ckpt-period
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "30" میباشد. این کلید مشخص میکند چند ثانیه بین نقاط بازرسی و بازنویسیهای فایل ورودی بکلاگ سپری شود. عدد خیلی کوچک به معنای دسترسی مکرر به دیسک است؛ عدد خیلی بزرگ یعنی پس از یک خرابی (crash)، innfeed مقالات پردازششده بیشتری را نسبت به آنچه لازم است مجدداً پیشنهاد میدهد.
- backlog-newfile-period
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "600" میباشد. این کلید مشخص میکند چند ثانیه قبل از هر بررسی برای فایلهای بکلاگ تولیدشده به صورت بیرونی (که باید برداشته و پردازش شوند) سپری شود.
- backlog-rotate-period
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "60" میباشد. این کلید مشخص میکند چند ثانیه سپری شود پیش از آنکه innfeed یک فایل بکلاگ ایجادشده به صورت بیرونی را به فایل بکلاگ ورودی منتقل کند (اگر به میزان backlog-newfile-period ثانیه گذشته باشد) یا در غیاب چنین فایلی، فایل بکلاگ خروجی را به فایل بکلاگ ورودی انتقال دهد. اگر فایل بکلاگ ورودی خالی نباشد هیچ انتقالی رخ نمیدهد.
- dns-retry
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "900" میباشد. این کلید تعداد ثانیههای بین تلاشها برای جستجوی مجدد اطلاعات میزبانی را که قبلاً در تفکیک نام (resolve) ناموفق بوده است، مشخص میکند.
- dns-expire
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "86400" میباشد. این کلید تعداد ثانیههای بین تازهسازیهای ترجمه نام DNS به آدرس را مشخص میکند. این برای آن است که فرایندهای با اجرای طولانیمدت، در صورت تغییر آدرسهای IP همتا، با دادههای منقضیشده و کهنه روبرو نشوند.
- gen-html
- این کلید نیازمند یک مقدار بولی است و پیشفرض آن false است. این کلید مشخص میکند که آیا status-file باید به صورت HTML تبدیل و تولید شود یا خیر.
- status-file
- این کلید نیازمند یک مقدار مسیر است و پیشفرض آن innfeed.status میباشد. میتوان از یک مسیر مطلق نیز استفاده کرد. این کلید مسیری را مشخص میکند (نسبت به pathhttp هنگامی که gen-html برابر با true است؛ در غیر این صورت نسبت به pathlog همانطور که در inn.conf آمده) که وضعیت دورهای فرایند innfeed باید در آن ذخیره شود. این تنظیم معادل گزینه خط فرمان -S است.
- connection-stats
- این کلید نیازمند یک مقدار بولی است و پیشفرض آن false است. اگر مقدار true باشد، هر زمان که آمار انتقال برای یک همتا ثبت میشود، هر اتصال فعال نیز آمار اختصاصی خود را ثبت میکند. این تنظیم معادل گزینه خط فرمان -z است.
- host-queue-highwater
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "10" میباشد. این کلید مشخص میکند چه تعداد مقاله به صورت داخلی برای یک همتا نگهداری شود، پیش از آنکه مقالات جدید باعث شوند اطلاعات مقاله به فایل بکلاگ منتقل گردد.
- stats-period
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "600" میباشد. این کلید مشخص میکند innfeed چند ثانیه بین تولید آمار نرخ انتقال صبر کند.
- stats-reset
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "43200" میباشد. این کلید مشخص میکند innfeed چند ثانیه قبل از صفر کردن مجدد همه شمارندههای انتقال داخلی (پس از یک بار ثبت نهایی در گزارش) صبر کند. این به این دلیل است که یک فرایند innfeed که بیش از یک روز در حال اجرا است آمارهای «نهایی» تولید کند تا توسط اسکریپتهای پردازش فایلهای گزارش برداشته شوند.
- initial-reconnect-time
- این کلید نیازمند یک عدد صحیح مثبت است و پیشفرض آن "30" میباشد. این کلید مشخص میکند پس از قطع یا شکست در اتصال، ابتدا چند ثانیه قبل از تلاش مجدد برای اتصال مجدد صبر شود. اگر تلاش بعدی نیز ناموفق باشد، زمان اتصال مجدد تقریباً دو برابر میشود تا زمانی که اتصال برقرار شود یا به max-reconnect-time برسد.
- max-reconnect-time
- این کلید نیازمند یک مقدار عدد صحیح است و پیشفرض آن "3600" میباشد. این کلید حداکثر تعداد ثانیهها برای انتظار بین تلاشها جهت اتصال مجدد به یک همتا را تعیین میکند. مقدار اولیه برای تلاشهای اتصال مجدد توسط initial-reconnect-time مشخص میشود و پس از هر شکست دو برابر میگردد تا به این مقدار برسد.
- stdio-fdmax
- این کلید نیازمند یک عدد صحیح غیرمنفی است و مقدار پیشفرض آن "0" میباشد. اگر مقدار بزرگتر از صفر باشد، هرگاه توصیفگر فایل سوکت شبکه ایجاد شود و مقداری کمتر از این مقدار داشته باشد، توصیفگر فایل با دستور dup کپی میشود تا مقدار آن بزرگتر از این مقدار گردد. این کار برای آزاد گذاشتن توصیفگرهای فایل با شمارههای پایینتر برای stdio است. سیستمهای خاصی، به ویژه سیستمهای Sun، به این مورد نیاز دارند. SunOS 4.1.x معمولاً به مقدار "128" نیاز دارد؛ نسخههای ۳۲ بیتی Solaris یا برنامههای ۳۲ بیتی که روی Solaris ۶۴ بیتی اجرا میشوند، و همچنین نسخههای ۶۴ بیتی Solaris قبل از 11.0 به مقدار "256" نیاز دارند. برای جزئیات بیشتر به مستندات سولاریس درباره توصیفگرهای فایل https://support.oracle.com/knowledge/Sun%20Microsystems/1005979_1.html مراجعه کنید. در صورتی که این مورد مشخص نشده باشد، پیشفرض "0" است.
کلیدهای ویژه برای imapfeed (Special keys for imapfeed)
کلیدهای زیر همراه با imapfeed برای احراز هویت در یک میزبان راه دور استفاده میشوند. چندین پارامتر ممکن است در دامنه سراسری گنجانده شوند:
- deliver-authname
- نام احراز هویت (authname) هویتی است که میخواهید به عنوان آن احراز هویت شوید.
- deliver-password
- این گذرواژه مناسب برای authname است.
- deliver-username
- نام کاربری (username) کسی است که میخواهید «نقش» او را ایفا کنید؛ یعنی کسی که در واقع قرار است از سرور استفاده کند.
- deliver-realm
- در این مورد، «قلمرو» (realm) همان قلمرویی است که authname مشخصشده در آن معتبر است. در حال حاضر این مورد فقط توسط سازوکار SASL مدل DIGEST-MD5 مورد نیاز است.
- deliver-rcpt-to
- یک رشته قالب با سبک printf(3) برای ایجاد آدرس گیرنده پاکت (envelope recipient). الگو باید الزاماً شامل یک مشخصکننده رشته منفرد باشد که با گروه خبری جدید جایگزین میشود (مثلاً "bb+%s"). مقدار پیشفرض "+%s" است.
- deliver-to-header
- یک رشته قالب اختیاری با سبک printf(3) برای ایجاد یک فیلد هدر To که باید در ابتدای مقاله قرار گیرد. الگو باید الزاماً شامل یک مشخصکننده رشته منفرد باشد که با گروه خبری جدید جایگزین میشود (مثلاً "post+%s@domain"). در صورت مشخص نشدن، فیلد هدر To اضافه نخواهد شد.
پیشفرضهای سراسری همتا (GLOBAL PEER DEFAULTS)
تمام جفتهای key:value ذکرشده در این بخش را میتوان در دامنه سراسری مشخص کرد. همچنین میتوان آنها را در داخل تعریف یک گروه یا همتا نیز تعیین نمود. توجه داشته باشید که وقتی همتاها به صورت پویا اضافه میشوند (یعنی زمانی که innfeed مقالهای برای یک همتای نامشخص دریافت میکند)، سایت همتا را با استفاده از پارامترهای مشخصشده در دامنه سراسری اضافه خواهد کرد.
کلیدهای الزامی (Required keys)
در حال حاضر هیچ کلیدی الزامی نیست. همه آنها در صورت عدم وجود در فایل پیکربندی، دارای مقدار پیشفرض هستند.
کلیدهای اختیاری (Optional keys)
کلیدهای زیر اختیاری هستند:
- article-timeout
- این کلید نیازمند یک مقدار عدد صحیح غیرمنفی است. مقدار پیشفرض آن "600" میباشد. اگر تا این تعداد ثانیه نیازی به ارسال مقاله به همتا نباشد، همتا بیکار تلقی شده و تمام اتصالات فعال آن قطع میشوند.
- response-timeout
- این کلید نیازمند یک مقدار عدد صحیح غیرمنفی است. مقدار پیشفرض آن "300" میباشد. این کلید حداکثر زمان انتظار برای دریافت پاسخ از همتا پس از صدور یک دستور را مشخص میکند.
- initial-connections
- این کلید نیازمند یک مقدار عدد صحیح غیرمنفی است. مقدار پیشفرض آن "1" میباشد. این کلید تعداد اتصالاتی را که باید بلافاصله هنگام راهاندازی پیوند با یک همتا برقرار شوند، مشخص میکند. مقدار "0" به این معنی است که تا زمانی که نیازی به ارسال مقاله نباشد، هیچ اتصالی ایجاد نخواهد شد.
- max-connections
- این کلید نیازمند یک عدد صحیح مثبت است. مقدار پیشفرض "2" است، اما در صورت نیاز یا برای فیدهای بزرگ میتوان آن را افزایش داد. این کلید حداکثر تعداد اتصالات موازی به همتا را مشخص میکند. مقدار "0" حداکثر تعداد اتصالات نامحدود را مشخص میکند. بهطور کلی، استفاده از تعداد نامحدود اتصالات توصیه نمیشود. هرگز max-connections را هنگام تنظیم dynamic-method روی 0، برابر با صفر قرار ندهید، زیرا این کار باعث اشباع میزبانهای همتا با اتصالات بیش از حد میشود.
- close-period
- این کلید نیازمند یک مقدار عدد صحیح مثبت است و پیشفرض آن "86400" میباشد. این مقدار حداکثر تعداد ثانیههایی است که یک اتصال باید باز نگه داشته شود. برخی از سرورهای NNTP با باز ماندن طولانیمدت اتصالات عملکرد خوبی ندارند.
- dynamic-method
- این کلید
نیازمند یک
عدد صحیح
بین 0 تا 3 است.
مقدار
پیشفرض آن
"3"
میباشد.
این کلید
چگونگی
برقراری
اتصالات را
تا سقف
مشخصشده
توسط max-connections
کنترل
میکند.
بهطور کلی
(و بهویژه
با dynamic-method
برابر با 0)،
یک اتصال
جدید زمانی
باز میشود
که تعداد
فعلی
اتصالات
کمتر از max-connections
باشد و
مقالهای
برای ارسال
وجود داشته
باشد در
حالی که هیچ
اتصال فعلی
بیکار
نباشد. بدون
محدودیت
بیشتر (یعنی
استفاده از
dynamic-method برابر
با 0)، در عمل
این بدان
معناست که
اتصالات به
اندازه max-connections
در حین
ارسال
مقالات
برقرار
میشوند.
استفاده از
سایر
تنظیمات
dynamic-method
محدودیت
بیشتری بر
تعداد
اتصالات
بازشده زیر
سقف
تعیینشده
توسط max-connections
اعمال
میکند. این
محدودیت
بسته به
مقدار dynamic-method
به روشهای
متفاوتی
محاسبه
میشود.
کاربران باید توجه داشته باشند که افزودن اتصالات بیشتر همیشه سودمند نیست -- صرفاً به این دلیل که باز کردن دو برابری اتصالات منجر به افزایش درصد کمی از مقالات پذیرفتهشده توسط همتای راه دور میشود، ممکن است هزینه منابع قابلتوجهی چه به صورت محلی و چه در سایت راه دور داشته باشد، در حالی که سایت راه دور ممکن است به خوبی مقالات اضافی ارسالشده را از همتای دیگری کسری از ثانیه بعد دریافت کند. باز کردن تعداد زیادی اتصال، رفتاری ضد اجتماعی تلقی میشود.
معانی تنظیمات مختلف عبارتند از:
- 0 (no method)
- افزایش اتصالات تا سقف max-connections بدون محدودیت است.
- 1 (maximize articles per second)
- اتصالات افزایش (تا سقف max-connections) و کاهش مییابند تا تعداد مقالات ارسالی در ثانیه به حداکثر برسد، در حالی که کمترین اتصالات ممکن برای این کار استفاده شود.
- 2 (set target queue length)
- اتصالات افزایش (تا سقف max-connections) و کاهش مییابند تا صف مقالاتی که باید ارسال شوند در محدوده تعیینشده توسط dynamic-backlog-low و dynamic-backlog-high باقی بماند، در حالی که از حداقل منابع ممکن استفاده شود. از آنجا که صف تمایل به پر شدن دارد اگر سایت نتواند همگام بماند، این روش تضمین میکند که حداکثر تعداد مقالات با استفاده از حداقل تعداد اتصالات به همتا ارائه شود.
- 3 (combination)
- این روش از ترکیبی از روشهای ۱ و ۲ بالا استفاده میکند. برای سایتهایی که درصد زیادی از مقالات را میپذیرند، از روش ۲ استفاده میشود تا اطمینان حاصل شود که تا حد امکان فید کاملی به آنها ارائه میشود. برای سایتهایی که درصد کمی از مقالات را میپذیرند، از روش ۱ استفاده میشود تا مصرف منابع راه دور به حداقل برسد. برای سایتهای میانی، از یک ترکیب مناسب استفاده میشود.
- dynamic-backlog-low
- این کلید نیازمند یک مقدار اعشاری بین 0 تا 100 است. این مقدار نشاندهنده حد پایین (به درصد) برای صف میزبان است. اگر صف میزبان هنگام استفاده از dynamic-method ۲ یا ۳ به زیر این مقدار افت کند و ۲ یا تعداد بیشتری اتصال باز باشد، innfeed تلاش خواهد کرد تا اتصالات به میزبان را کاهش داده و قطع کند. یک فیلتر پاسخ ضربه نامحدود (IIR) روی این مقدار اعمال میشود تا از نوسان سریع اتصال جلوگیری شود (به dynamic-filter مراجعه کنید). مقدار پیشفرض "20.0" است. این مقدار باید کوچکتر از dynamic-backlog-high باشد.
- dynamic-backlog-high
- این کلید نیازمند یک مقدار اعشاری بین 0 تا 100 است. این مقدار نشاندهنده حد بالا (به درصد) برای صف میزبان است. اگر صف میزبان هنگام استفاده از dynamic-method ۲ یا ۳ از این مقدار فراتر رود و تعداد اتصالات باز به میزبان کمتر از max-connections باشد، innfeed تلاش خواهد کرد اتصالات بیشتری را به میزبان باز کند. یک فیلتر پاسخ ضربه نامحدود (IIR) روی این مقدار اعمال میشود تا از نوسان سریع اتصال جلوگیری کند (به dynamic-filter مراجعه کنید). مقدار پیشفرض "50.0" است. این مقدار باید بزرگتر از dynamic-backlog-low باشد.
- dynamic-backlog-filter
- این کلید نیازمند یک مقدار اعشاری بین 0 تا 1 است. این مقدار ضریب فیلتر استفادهشده توسط فیلتر پاسخ ضربه نامحدود (IIR) را نشان میدهد که برای پیادهسازی dynamic-method ۲ و ۳ استفاده میشود. مقدار پیشفرض این فیلتر "0.7" است که ثابت زمانی معادل با مقالات 1/(1-0.7) را ارائه میدهد. مقادیر بالاتر منجر به پاسخ کندتر به تغییرات پر شدن صف میشوند و مقادیر پایینتر باعث پاسخ سریعتر خواهند شد.
- max-queue-size
- این کلید نیازمند یک عدد صحیح مثبت است. مقدار پیشفرض آن "20" میباشد. این کلید حداکثر تعداد مقالاتی را مشخص میکند که هنگام استفاده از ارسال جریانی به یک همتا در یک زمان پردازش میشوند. اعداد بزرگتر به معنای مصرف حافظه بیشتر است زیرا مقالات معمولاً به حافظه کشیده میشوند (به توضیحات use-mmap مراجعه کنید).
- streaming
- این کلید نیازمند یک مقدار بولی است. مقدار پیشفرض آن true است. این کلید مشخص میکند که آیا از دستورات جریانی برای انتقال مقالات به همتاها استفاده شود یا خیر.
- no-check-high
- این کلید نیازمند یک عدد اعشاری در محدوده [0.0, 100.0] است. هنگام ارسال با دستورات جریانی، innfeed بهینهسازیای به نام «حالت no-CHECK» را امتحان میکند. این کار شامل عدم پرسش از همتا مبنی بر اینکه آیا مقاله را میخواهد و ارسال مستقیم آن است. این بهینهسازی زمانی رخ میدهد که درصد مقالات پذیرفتهشده توسط همتا از این عدد بیشتر شود. اگر این مقدار روی "100.0" تنظیم شود، حالت no-CHECK عملاً خاموش میشود زیرا درصد هرگز نمیتواند بالاتر از 100.0 برود. اگر این مقدار خیلی کوچک باشد، تعداد مقالاتی که همتا رد میکند افزایش مییابد (و پهنای باند شما هدر خواهد رفت). مقدار پیشفرض "95.0" معمولاً بسیار خوب عمل میکند.
- no-check-low
- این کلید نیازمند یک عدد اعشاری در محدوده [0.0, 100.0] است و باید کوچکتر از مقدار no-check-high باشد. هنگام اجرا در حالت no-CHECK طبق توضیحات بالا، اگر درصد مقالات پذیرفتهشده توسط سرور راه دور به زیر این عدد سقوط کند، بهینهسازی no-CHECK غیرفعال میشود تا زمانی که این درصد دوباره بالاتر از مقدار no-check-high برود. اگر تفاوت کمی بین این مقدار و مقدار no-check-high وجود داشته باشد (کمتر از حدود 5.0)، ممکن است innfeed به طور مکرر وارد حالت no-CHECK شده و از آن خارج شود. اگر تفاوت خیلی زیاد باشد، خروج از حالت no-CHECK در زمان نیاز دشوارتر خواهد شد (و باعث هدر رفتن پهنای باند میشود). نگه داشتن این مقدار بین 5.0 تا 10.0 واحد کمتر از no-check-high معمولاً به خوبی پاسخ میدهد. مقدار پیشفرض "90.0" است.
- no-check-filter
- این یک مقدار اعشاری است که نشاندهنده ثابت زمانی بر حسب مقاله است که محاسبات CHECK/no-CHECK در طول آن انجام میشود. مقدار پیشفرض "50.0" است که یک فیلتر پاسخ ضربه نامحدود (IIR) با ثابت زمانی ۵۰ را پیادهسازی میکند. این تقریباً معادل تصمیمگیری در مورد وضعیت در طول ۵۰ مقاله قبلی است. عدد بالاتر منجر به پاسخ کندتر به تغییرات درصدهای پذیرش مقالات میشود؛ عدد پایینتر به پاسخ سریعتر میانجامد.
- port-number
- این کلید نیازمند یک عدد صحیح مثبت است. این کلید شماره پورت TCP/IP را برای استفاده هنگام اتصال به سیستم راه دور مشخص میکند. معمولاً از پورت شماره ۱۱۹ استفاده میشود که مقدار پیشفرض است.
- force-ipv4
- این کلید نیازمند یک مقدار بولی است. به صورت پیشفرض روی false تنظیم شده است. تنظیم آن روی true مشابه تنظیم bindaddress6 روی "none" و حذف bindaddress از حالت "none" (در صورت تنظیم بودن) است.
- drop-deferred
- این کلید نیازمند یک مقدار بولی است. به صورت پیشفرض روی false تنظیم شده است. هنگامی که روی true تنظیم شود و یک همتا با کد 431 یا 436 (بعداً دوباره تلاش کنید) پاسخ دهد، innfeed صرفاً مقاله را رها میکند و تلاشی برای ارسال مجدد آن نمیکند. این مورد برای برخی از همتاها که مقالات را به مدت طولانی به تعویق میاندازند مفید است تا از تلاش مکرر innfeed برای ارائه چندباره همان مقاله جلوگیری شود.
- min-queue-connection
- این کلید نیازمند یک مقدار بولی است. به صورت پیشفرض روی false تنظیم شده است. وقتی روی true تنظیم شود، innfeed تلاش خواهد کرد از اتصالی با کمترین اندازه صف (یا اولین اتصال خالی) استفاده کند. اگر این کلید روی true تنظیم شده باشد، توصیه میشود که dynamic-method روی "0" تنظیم شود. این امر امکان انتشار مقاله با کمترین تأخیر را فراهم میسازد.
- no-backlog
- این کلید نیازمند یک مقدار بولی است. این کلید مشخص میکند که آیا اسپولینگ باید فعال باشد (false، پیشفرض) یا غیرفعال (true). توجه داشته باشید که وقتی no-backlog تنظیم شود، مقالاتی که به عنوان اسپولشده گزارش میشوند، در واقع به آرامی و بدون اعلام دور انداخته میشوند.
- backlog-limit
- این کلید
نیازمند یک
عدد صحیح
غیرمنفی
است. اگر
این عدد
"0"
(پیشفرض)
باشد، در
زمانی که
همتا قادر
به هماهنگی
با جریان
مقالات
نیست،
فایلهای
بکلاگ
اجازه
دارند بدون
محدودیت
رشد کنند.
اگر این عدد
بزرگتر از
صفر باشد،
اندازهای
(به بایت) را
مشخص
میکند که
وقتی فایل
بکلاگ به
حد معینی
رسید باید
به آن
اندازه
کوتاه شود.
این حد
بستگی به
این دارد که
از backlog-factor یا
backlog-limit-highwater
استفاده
شود.
این پارامتر همچنین برای فایل اشکالزدایی زمانی که debug-shrinking روی true تنظیم شده اعمال میشود و همان اثری را روی این فایل دارد که روی فایلهای بکلاگ میگذارد.
- backlog-factor
- این کلید
نیازمند یک
مقدار
اعشاری است
که باید
بزرگتر از
1.0 باشد. این
کلید همراه
با کلید
همتای backlog-limit
استفاده
میشود. اگر
backlog-limit مقداری
بزرگتر از
صفر داشته
باشد،
زمانی که
اندازه
فایل
بکلاگ از
مقدار
حاصلضرب
backlog-limit * backlog-factor
بزرگتر
شود، فایل
بکلاگ به
اندازه backlog-limit
کوتاه
خواهد شد.
به عنوان مثال، اگر backlog-limit دارای مقدار "1000000" و backlog-factor دارای مقدار "2.0" باشد، زمانی که حجم فایل بکلاگ به بیش از 2000000 بایت برسد، به 1000000 بایت کوتاه خواهد شد. قسمت ابتدایی فایل حذف میشود و این هرس کردن در مرز خطوط اتفاق میافتد؛ بنابراین ممکن است اندازه نهایی اندکی کمتر از این عدد باشد. اگر backlog-limit-highwater نیز تعریف شده باشد، backlog-factor اولویت خواهد داشت. مقدار پیشفرض backlog-factor برابر با "1.1" است.
این پارامتر همچنین برای فایل اشکالزدایی در صورتی که debug-shrinking روی true تنظیم شده باشد اعمال میشود و همان اثر را روی این فایل دارد.
- backlog-limit-highwater
- این کلید
نیازمند یک
عدد صحیح
مثبت است که
باید
بزرگتر از
مقدار backlog-limit
باشد. مقدار
پیشفرض
"0" است.
اگر اندازه فایل بکلاگ بزرگتر از این مقدار (به بایت) شود، حجم فایل بکلاگ به اندازه backlog-limit کاهش مییابد. اگر هر دو مقدار backlog-factor و backlog-limit-highwater تعریف شده باشند، مقدار backlog-factor استفاده میشود.
این پارامتر همچنین برای فایل اشکالزدایی زمانی که debug-shrinking روی true تنظیم شده است اعمال میشود و همان اثری را دارد که روی فایلهای بکلاگ میگذارد.
- backlog-feed-first
- این کلید نیازمند یک مقدار بولی است. به صورت پیشفرض روی false تنظیم شده است. در صورت تنظیم روی true، فایلهای بکلاگ قبل از فایلهای جدید فید میشوند. این به منظور اجبار در تحویل به ترتیب است؛ بنابراین تنظیم این مقدار روی true زمانی که initial-connections یا max-connections بیشتر از ۱ است، نامتناقض و ناسازگار خواهد بود.
- bindaddress
- این کلید
نیازمند یک
مقدار
رشتهای
است. این
کلید مشخص
میکند که
innfeed انتهای
محلی اتصال
خود را به
کدام آدرس IPv4
خروجی متصل
(bind) کند. این
مقدار باید
یک آدرس IPv4 در
قالب
نقطه-چهارگانه
(nnn.nnn.nnn.nnn)، "any"
یا "none"
باشد. اگر
تنظیم نشود
یا روی
"any"
تنظیم شود،
پیشفرض innfeed
این است که
به هسته
سیستمعامل
اجازه دهد
این آدرس را
انتخاب کند.
اگر روی
"none"
تنظیم شود،
innfeed از IPv4 برای
اتصالات
خروجی به
همتاها در
این دامنه
استفاده
نخواهد کرد
(یعنی
استفاده از
IPv6 را اجباری
میکند).
در صورتی که در innfeed.conf تنظیم نشود، innfeed به صورت پیشفرض از مقدار sourceaddress در inn.conf (که به طور پیشفرض تنظیمنشده است) استفاده میکند.
- bindaddress6
- این کلید
نیازمند یک
مقدار
رشتهای
است.
عملکردی
مشابه bindaddress
دارد به جز
اینکه برای
اتصالات
خروجی IPv6
استفاده
میشود. این
مقدار باید
در قالب
عددی IPv6 باشد
(توجه داشته
باشید که
مقداری که
حاوی
دونقطه است
باید در
داخل
نقلقول
دوتایی
قرار گیرد)،
"any" یا
"none". اگر
روی "none"
تنظیم شود،
innfeed از IPv6 برای
اتصالات
خروجی به
همتاها در
این دامنه
استفاده
نخواهد کرد.
اگر در innfeed.conf تنظیم نشده باشد، innfeed به طور پیشفرض از مقدار sourceaddress6 در inn.conf (که به طور پیشفرض تنظیمنشده است) استفاده میکند.
- username
- این کلید نیازمند یک مقدار رشتهای است. اگر مقدار تعریف شده باشد، innfeed تلاش میکند تا از طریق AUTHINFO USER احراز هویت کند و از این مقدار برای نام کاربری استفاده خواهد کرد. در صورت تعریف این کلید، password نیز باید تعریف شود.
- password
- این کلید نیازمند یک مقدار رشتهای است. این مقدار گذرواژهای است که برای AUTHINFO PASS استفاده میشود. اگر این کلید تعریف شده باشد، username نیز باید تعریف شود.
مقادیر همتا (PEER VALUES)
همانطور که قبلاً توضیح داده شد، تعاریف همتا میتوانند شامل بازتعریف هر یک از جفتهای key:value توصیفشده در بخش پیشفرضهای سراسری همتا در بالا باشند. یک جفت key:value وجود دارد که مختص تعریف همتا است.
- ip-name
- این کلید نیازمند یک مقدار کلمهای است. این کلمه یا یکی از نامهای دامنه کاملاً واجد شرایط (FQDN) میزبان است، یا آدرس IP نقطه-چهارگانه همتا برای IPv4، یا آدرس IP با جداکننده دونقطه برای IPv6. اگر این مقدار مشخص نشود، نام همتا در بلوک دربرگیرنده peer به عنوان ip-name آن نیز در نظر گرفته میشود.
بارگذاری مجدد (RELOADING)
اگر innfeed یک سیگنال SIGHUP دریافت کند، فایل پیکربندی را مجدداً خواهد خواند. تمام مقادیر در دامنه سراسری به جز backlog-directory قابل تغییر هستند (اگرچه توجه داشته باشید که تغییرات در bindaddress و bindaddress6 تنها بر اتصالات جدید تأثیر میگذارد).
هر همتای جدید اضافه میشود و اتصالات هر همتای حذفشده بسته میشود.
فایل گزارش نیز مجدداً باز میشود.
مثال (EXAMPLE)
برای یک مثال جامع، به نمونه فایل innfeed.conf توزیعشده همراه با INN که به عنوان نقطه شروع نصب میشود مراجعه کنید.
در اینجا نمونههایی از نحوه قالببندی مقادیر آورده شده است:
eg-string: "New\tconfig\tfile\n"
eg-long-string: "A long string that goes
over multiple lines. The
newline is kept in the
string except when quoted
with a backslash \
as here."
eg-simple-string: A-no-quote-string
eg-integer: 10
eg-boolean: true
eg-char: 'a'
eg-ctrl-g: '\007'
تاریخچه (HISTORY)
نوشتهشده توسط James Brister <brister@vix.com> برای InterNetNews. تبدیلشده به POD توسط Julien Elie.
نسخههای قبلی innfeed (تا 0.10.1) به طور جداگانه عرضه میشدند؛ innfeed اکنون بخشی از INN است و از همان شماره نسخه مشترک استفاده میکند. لطفاً توجه داشته باشید که ساختار innfeed.conf از نسخه 0.9.3 دستخوش تغییرات چشمگیری شده است.
همچنین ببینید (SEE ALSO)
inn.conf(5), innfeed(8), newsfeeds(5).
| 2024-05-19 | INN 2.7.4 |