malkemit / namizun

Asymmetric upload and download
https://t.me/ExplainLikeIam5
620 stars 100 forks source link

عدم اعمال صحیح نسبت آپلودر و عدم ریستارت خودکار سرویس #6

Closed NabiKAZ closed 1 year ago

NabiKAZ commented 1 year ago

تشکر بابت پروژه خوبتون.

من با اینکه نسبت رو ۱:۳ انتخاب کردم اما به نظر میرسه که در عمل ۱:۵ اجرا شده.

البته من برای تست چندین بار مقادیر Coefficient رو تغییر داده بودم ولی در آخرین مرتبه روی ۳ گذاشتم. این احتمال وجود داره که بعد از تغییر این پارامتر، شاید باید سرویس مرتبط یکبار ریستارت بشه تا تغییرات اعمال بشه.

اگر پاسخ این باشه ریستارت لازمه ولی خودکار انجام میشه. حداقل برای من که در CentOS 7.9 با دسترسی روت اینطور نبود. ضمن اینکه حتی گزینه ۱ که اشاره به روشن خاموش کردن Uploader داره، تاثیری روی سرویس namizun نداشت و البته کدی هم که مربوط به اینکار باشه در کد نیافتم. اصولاً این گزینه چطور عمل میکنه؟

اگر پاسخ خیر باشه هم، که خب به نظرم بعد تغییر پارامترها، باید یا ریستارت سرویس خودکار بشه یا حداقل پیامی در این مورد نمایش داده بشه.

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

+----------+------------+---------+---------+-------+
| Σ Upload | Σ Download | ⇧ Speed | ⇩ Speed | % CPU |
+----------+------------+---------+---------+-------+
| 500.53GB |  123.81GB  | 16.61KB | 17.68KB |  1.0  |
+----------+------------+---------+---------+-------+

--------------Control menu-------------

[1] - Uploader Running : True
[2] - Speed : 3
[3] - Coefficient : 3
[4] - Total Upload Before Reboot : 0.00B
[5] - Total Download Before Reboot : 0.00B
(venv) [root@ namizun]# python -V
Python 3.8.12

(venv) [root@ namizun]# pip -V
pip 21.1.1 from /var/www/namizun/venv/lib/python3.8/site-packages/pip (python 3.8)

(venv) [root@ namizun]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

(venv) [root@ namizun]# pip list
Package       Version
------------- ---------
async-timeout 4.0.2
colored       1.4.4
namizun-core  1.1
packaging     21.3
pip           21.1.1
prettytable   3.5.0
psutil        5.9.4
pyfiglet      0.8.post1
pyparsing     3.0.9
redis         4.3.5
setuptools    56.0.0
wcwidth       0.2.5
malkemit commented 1 year ago

سلام مرسی از استفاده و نظر شما در مورد نسبت دقیق نمیزنه. این رو از قصد انجام دادم به خاطر اینکه اگر دقیق رو خط مرز باشه بهتون بیشتر گیر میدن در کد با توجه به ضریب مد نظر شما ۳۰ ٪ تلورانس ایجاد میکنه برای همین یه وقتی میبینین شده ۲ و یه وقت شده ۵

به خاطر اینکه معقول تر باشه

در مورد اینکه بعد از تغییر درون هسته هم اعمال بشه، هسته هر بار میاد دیتا رو از روی دیتابیس کش میکنه و تا وقتی که کار اپلودش تموم نشه دوباره کش نمیکنه این برای اینه که تعداد ریکوئست به سمت دیتابیس زیاد نشه و مشکل برای سرور نباشه در توضیحات نوشتم که اگر میخواین سریع اعمال بشه دستی ری استارت کنین ولی اگر اوکی هستین، صبر کنین یکم، بعد که دوباره میخواد کش کنه متوجه میشه

در واقع ساختار کار این شکله که یک دیتابیس ردیس این وسط هست شما دو پروژه دارین یکی هسته هست که از رو دیتابیس کش میکنه و کار میکنه و یکی هم منو که میتونین دست بزنین اطلاعات دیتابیس رو

NabiKAZ commented 1 year ago

البته اینکه یه بار ۲ یه بار ۵ بشه، ۳۰٪ تلورانس نیست، ۱۵۰٪ هست که دیگه اسمش تلورانس نمیتونه باشه. مثال خودم هم ۵۰۰ بجای ۳۰۰ آپلود، یعنی ۶۶٪ بیشتر بود. اما چون شما اشاره کردید قبل از پایان دوره یا ریستارت همون مقدار قبلی رو درنظر میگیره که من اینکارو نکردم. بنابراین فرض میکنیم علت این اختلاف از عدم ریستارت سرویس بوده و مشکلی نیست.

اما به نظر من اگر بعد از بار تغییر پارامترها، خودش سرویس رو ریستارت کنه یا حداقل تنها کش مورد استفاده رو ریستارت کنه و عملیات دوره‌ی قبلی رو متوقف کنه کارایی مفیدتری داره. چراکه کاربر بعد از تغییر پارامترهاش انتظار داره بلافاصله اعمال بشه.

malkemit commented 1 year ago

حرفتون درسته اوایل ۳ واحد کمتر و بیشتر میکرد اما الان ۳۰٪ حساب میکنه

در مورد اعمال تغییرات گزینه ریلود اضافه شده و شما هر وقت خواستین میتونین به وسیله اون سرویس را ری استارت کنید تا تنظیمات جدید را بخونه