سرعت پایین بارگیری از مخازن به صورت پیش فرض در فدورا ۳۰ (با جزئیات)

سرعت بارگیری از مخازن در فدورا ۳۰ با dnf حدود ۲۰ کیلوبایت در ثانیه است!
در حالی که در همان نشست (شرایط یکسان) سرعت بارگیری در برنامه های مرورگر و مدیریت بارگیری به ۲۰۰ کیلوبایت در ثانیه یعنی بیشترین سرعت بارگیری اینترنت من میرسد.
با بررسی کردن man dnf.conf متوجه شدم که مقدار ‍fastestmirror در حالت پیشفرض false تنظیم شده است. در نتیجه در پرونده ‍/etc/dnf/dnf.conf مقدار این عنصر را به ‍true تغییر دادم نتیجه بدست امده از این تغییر مطلوب نبود و سرعت بارگیری فقط از یکی از مخازن بیشتر شد.

قبل:

Fedora 30 - x86_64 - Updates                                   32.2 kB/s | 5.6 kB     00:01
Fedora 30 - x86_64                4% [===                   ]  27 kB/s | 2.4 MB     34:43 ETA  
^C  

بعد:

Fedora 30 - x86_64 - Updates                  153 kB/s | 6.8 MB     00:45
Fedora 30 - x86_64                            32 kB/s |  54 MB     28:29

تا انجا که اطلاعات من یاری میدهد برای بارگیری بسته ها و به روز رسانی مخازن dnf به صورت پیش فرض از mirror های ایالات متحده استفاده میکند که ممکن است این مشکل ناشی از ping بالا یا overcrowded بودن این سرور ها باشد.
پس با کمی جست و جو برای mirror های دیگر به این پیوند رسیدم:
https://admin.fedoraproject.org/mirrormanager/mirrors/Fedora/30/x86_64
که mirror های تایید شده را لیست کرده است ولی متاسفانه من mirror ای برای ایران پیدا نکردم (ممکن است بخاطر تحریم های ایالات متحده علیه ایران باشد)!
پس با کمی جست و جوی بیشتر به این پیوند رسیدم:
https://discussion.fedoraproject.org/t/dnf/73242

که در پاسخ اول و طبق اولین روش ذکر شده با دستور:

sed "s|=\$basearch$|=\$basearch\&country=CA,US,DE,FR,global|" /etc/yum.repos.d/* -i

سعی میشود اولویت بارگیری از مخازن به ترتیب به mirror های کانادا، ایالا متحده، المان، فرانسه، و دیگر کشور ها تنظیم شود که ممکن است مشکل را برطرف کند (این روش را هنوز امتحان نکرده ام پس نتیجه را نمیتوانم گزارش کنم) ولی سوال اینجاست که با اجرا کردن این دستور این اولویت بندی فقط به پرونده های مربوط به مخازن موجود تزریق (inject) میشود و اگر بعد ها پرونده های مخازن دیگری به این مسیر اضافه شوند این اولویت بندی بر روی ان های اثری نداشته (به دلیل اجرا شدن این دستور قبل از اضافه شدن پرونده های مخازن جدید به این مسیر) و ممکن است بعد ها با مخازن جدید این مشکل (یعنی کمی سرعت بارگیری از مخازن) به وجود اید!
حال پرسش من این است که ایا راه بهتری برای رساندن سرعت دانلود از مخازن به سرعت واقعی اینترنت کاربر وحود دارد؟
اگر نه!‌ راه بهتری برای اولویت بندی این mirror ها وحود دارد که بعد های پرونده های مخازن دیگر تحت تاثیر این اولویت بندی قرار گیرند؟


پ ن. سعی کردم تا جایی که میتوانم نگارش این پرسش را به نگارش مکتوب (کتابی/ادبی) نزدیک تر کنم ولی ممکن است در هنگام نگارش یا ویرایش این پرسش مشکلی به وجود اماده باشد لذا پوزش بنده را پذیرا باشید!


1 Like

سلام و وقت بخير
اصولا يک يا دو عدد مخزن قابل اعتماد اضافه ميشه و استفاده ميشه
fastmiror اپشنش ديفالت غيرفعال

و اين که هر زمان که شما همون دستور اولي که به عنوان راه کار ها معرفي کردم ( که ساده ترين اون همون دستور اول ) وارد کنيد اضافه ميشه و اگر که وجود داشته باشه رو نويسي ميشه در مخازن قبلي که وجود داشتن و در مخازن جديد هم به ثبت ميرسه
اگر که خیلی اصرار بر این موضوع هست میتونید با نوشتن اسکریپت این کار و انجام بدید
موفق باشيد.

3 Likes

به ask fedora خوش آمدید :slight_smile:

همان‌طور که دوست خوبمون گفت تغییرات همون موقع توی فایل‌های مخزن، اون هم نه هر مخزنی بلکه اینجا در واقع هدف صرفا مخازن خود فدورا و rpmfusion هست. مگه این که مخزن دیگه‌ای هم شامل یک سری سرور آینه (mirror) باشه و مدیریت آینه‌هاش هم با MirrorManager باشه که اونه که این گزینه رو می‌فهمه. و تا حالا من به جز همون مخازن که گفتم اصلا مخزنی ندیدیم که از این قابلیت پشتیبانی کنه. در نتیجه اصولا فقط یک بار بعد از نصب فدورا اجرای این دستور کافیه.

و یه نکته رو هم اضافه کنم که به صورت پیش‌فرض فدورا از سرورهای نزدیک شما که برای ایران میشه آسیا استفاده میکنه. اما متاسفانه خیلی میرورهای آسیا، برای ایران سرعت خوبی ارائه نمی‌دند و برعکس سرورهای اروپا و آمریکا توی ایران سرعت بهتری دارند!

در نهایت پیشنهاد می‌کنم مطالعه کنید که این دستور دقیقا چی کار میکنه تا ابهاماتش دقیق برطرف بشه. و البته دستور sed کلا دستور خیلی مفیدی هست که حیفه بلد نباشید!!

در پایان، شخصا فکر نمیکنم الزامی باشه که نگارش اینجا کتبی باشه D: البته بد نیست نظر دوستان رو هم بدونیم.

2 Likes

شخصا ترجيج ميدم نگارش دوستانه تر باشه
نه خيلي رسمي نه خيلي غير رسمي
:slightly_smiling_face:

1 Like

یعنی فقط مخازن پیش‌فرض فدورا (همون مخازنی که بعد از نصب به صورت پیش فرض فعال هستن و پرونده‌های شان در مسیر /etc/yum.repos.d/ موجود است) + مخازن RPMFusion از این mirror ها پیشتیبانی میکنند؟ و در واقع لیست mirror های تایید شده در:
https://admin.fedoraproject.org/mirrormanager/mirrors/Fedora/30/x86_64
mirror های دیگری هستند که برای ارایه همون بسته ها و همون محتویات مخازن پیش‌فرض و مخازن RPMFusion اما در کشور های مختلف برای راحتی دسترسی کاربران ارایه می‌شوند؟ (۱)

پس در این صورت این mirror های ارایه شده در پیوند بالا هیچ خدماتی نسبت به third-party repositories هایی از قبیل google-chrome و مخازن مشابه دیگر ارایه نمی‌دهند؟ و این مخازن third-party منابع و mirror های خودشون رو دارند؟ (۲)

اگر به این شکل باشه پس بهتره کاربر اول مخازن مورد نیاز خودش رو اضافه کنه (مخازنی که mirror های رسمی از ان های پشتیبانی میکنند) و بعد این دستور رو اجرا کنه که دیگه نیازی به اجرا کردن دوباره این دستور نباشه…
از طرفی جز مخازن پیش‌فرض و مخازن RPMFusion مخازن دیگری وجود دارد که mirror ها تایید شده از ان پشتیبانی کنند؟ (۳)


به‌ علاوه، به شخصه تجربه خوبی نسبت به سرور های انگلستان و هلند داشتم پس میتوان mirror های این کشور هارو هم به لیست اضافه کرد!
و ایا اولویت بندی به ترتیب نوشته شده در دستور جلو میرود؟
یعنی: اولویت اول: mirror های کانادا، اولویت دوم: mirror های امریکا و…؟ (۴)

و اینکه پس از هر بار اجرا کردن این دستور یک بار این خط اولویت بندی به هر مخزن موجود اضافه می‌شود؟ یعنی اگر سه بار پشت هم این دستور رو اجرا کنیم سه خط مشابه و پشت هم در پرونده های مخازن نوشته می‌شود؟ (۵)

مخازن ایرانی به چه دلیلی در این لیست نیستند؟ (۶)

  1. لطفا [حل شد] و مشابه اون اضافه نکنید. نیازی نیست و در واقع خلاف قوانینه (Ask fedora guidelines/fa - Fedora Project Wiki).
  2. لیستی که توی لینکی که دادید هست فقط و فقط مربوط به مخازن رسمی فدوراست و حتی شامل rpmfusion هم نمیشه. rpmfusion برای خودش لیست میرورهای جداگانه داره. بقیه مخازن هم اگه داشته باشند برای خودشون لیست دارند.
  3. دقیقا. البته اون میرورها ممکنه خدمات دیگه‌ای هم بدند ولی به هر حال معلوم نیست. این لیست فقط میگه که اینها مخازن رسمی فدورا رو دارند.
  4. ببینین میرور تایید شده نداریم. اینها میرورهای مخازن رسمی فدورا هستند همین!! بقیه مخازن به خودشون ربط داره و از خودشون باید پیگیری کنید. همون‌طور که گفتم من مخزن دیگه‌ای استفاده نکردم که اصلا یه سری میرور داشته باشه. شاید باشه. هر وقت کسی مخزنی گذاشت که دید از mirrorlistی شبیه فدورا استفاده میکنه میتونه این دستور و بزنه.
  5. بله.
  6. پیشنهاد کردم که sed رو مطالعه بکنید. خیر این دستور حتی یک بار هم هیچ خطی اضافه نمیکنه فقط یک خط رو ویرایش میکنه.
  7. به علت تحریم‌ها
2 Likes

پس با نتیجه گیری از پرسش و پاسخ های انجام شده در این ارسال و بررسی های انچام شده روی mirror های رسمی ذکر شده در پیوند بالا بهتر است به جای دستور:

sed "s|=\$basearch$|=\$basearch\&country=CA,US,DE,FR,global|" /etc/yum.repos.d/* -i

از دستور:

sed "s|=\$basearch$|=\$basearch\&country=DE,NL,CA,US,global|" /etc/yum.repos.d/* -i

استفاده کنیم.
با تشکر از دوستان پاسخگو!

در بسیاری از ISP ها CA بسیار سرعت بهتری ارائه خواهد داد
در صورتی که DE در مواردی ( در بیشتر ISP ها ) سرعت خیلی خوبی نخواهد داشت
پیشهادم این که برای این که بیایم و بهترین کشور ها رو لیست کنیم ( برای دادن اولویت میرور ها )
برای مخازن مین به وب سایت زیر مراجعه کنیم
mirrormanager
و برای مخازن rpmfusion
RPMFusion
مراجعه کنیم و هرکشوری که پینگ بهتری میداد و توی اولویت خودمون قرار بدیم.
:slightly_smiling_face:

2 Likes