Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于vtbs.moe负载超过100%的解决方案 #354

Closed
9 tasks done
wudifeixue opened this issue May 11, 2022 · 18 comments
Closed
9 tasks done

关于vtbs.moe负载超过100%的解决方案 #354

wudifeixue opened this issue May 11, 2022 · 18 comments

Comments

@wudifeixue
Copy link
Member

wudifeixue commented May 11, 2022

根据DDC讨论和总结:

1. 用各种方法增加更多DD@Electron或者油猴脚本等帮助vtbs.moe持续运行

  • DDTV作者@CHKZL 愿意提供帮助内嵌DD@Electron(2.x版本的DDTV曾包含DD@Electron)
  • 修改about页面,增加node和docker版,并且增加中文教程和文档
  • 给about页面的负载超过200%的时候改成红色,希望借此提醒更多的人来帮助解决负载问题 @wudifeixue
    给about页面增加Simon的爱发电链接,争取多点服务器费用多点性能

2. 区分uid等级,打tag来取决于更新速率 @shugen002

  • 可选优先确保每个页面的top100刷新频率保持最高5m一次
  • 给uid设置tag,最高频率5分钟更新一次数据,30天不播降低更新频率到60分钟,90天不播视为暂时冻结1天一次更新数据@wjhhuizi f5c2f67
    display tag可以写一些给用户看的,比如已毕业,官宣或长时间没动吧(@cqjjjzr)(主观性太强,争议较大)

3. 用新技术尝试越过IP限制

4. 清理残余数据减轻负担

@wudifeixue
Copy link
Member Author

wudifeixue commented May 11, 2022

现在出先了新的问题,比较尴尬,流量过大导致整个网站都卡死了,卡死后spider和cluster更是连任务都发不不出来了,@shugen002发现过载今天最高达到了800%,需要重构一些东西才能解决问题
服务器目前配置是:
High Fequency, 3vCPU, 8192MB RAM, 256GB NVMe, 4.00TB流量每月

要做的事情

编辑到主issue上方了↑↑↑↑↑↑↑

@bbrabbitt
Copy link
Contributor

f5c2f67 解决了2-1和2-2(暂定)

@wudifeixue
Copy link
Member Author

我观察了下,坏的数据,例如:516780319(樱铃万事屋)跑路并且加密了直播间,会导致整个循环在那边retry很多次并且卡死整个cluster一小会儿,在那个期间,任务数会变成0,最后retry失败告终继续循环。
所以期待tag可以修复这个问题,也可以及时把这类数据给清理了避免继续造成卡顿。

@Tinhone
Copy link

Tinhone commented May 13, 2022

想询问一下目前tag的种类有几种?它们的判断依据分别是什么?
_(:з)∠)_

@simon300000
Copy link
Member

simon300000 commented May 13, 2022 via email

@wudifeixue
Copy link
Member Author

关于tag的制作设想我是这么想的:

简易版

  1. 无tag,保持现状
  2. 毕业tag,或者叫不活跃tag,inActive这类的,功能会大幅度降低更新频率(一天只更新一次粉丝数量),不查询直播间,在vtbs.moe的UI上标记出来这类用户

至于怎么标记,感觉暂时可以先手动,以后可以扫一下数据库,如果超过1年没有动态或者直播过,可以直接贴上tag

暂时没有其他太复杂的tag需要,关于加密直播间 issue #358 ,应该在程序层自动识别这类而不是通过tag去识别,毕竟以后谁临时加密了直播间,依然可能会卡整个循环。

@wudifeixue
Copy link
Member Author

wudifeixue commented May 13, 2022

姑且做了下2-3和tag的UI,目前休眠中和inactive得票比较高,灰色也是主选
编辑1: 最后后台tag代码决定用inactive
编辑4: 前台UI这个功能有争议,先单搞后台tag吧,暂时放弃展示,因为可能会比较伤人感情
反对论点是:数据站凭什么给别人打tag,自己心里有点b数,画蛇添足的feature都不要有 老老实实给我性能优化去

@Tinhone
Copy link

Tinhone commented May 13, 2022

提一些关于tag的意见_(:з)∠)_

tag分为
不活跃tag,加密直播间tag,无法查询的账户tag,已毕业tag,休眠中tag

tag判断标准
不活跃tag:180天内未进行任何活动,包括但不限于发送动态,发送视频,进行直播,修改简介,修改头像等
加密直播间tag:直播间返回错误代码19002005,也可依据返回的错误消息判断
无法查询的账户tag:主站空间返回错误代码-404(这种判断方式一般包括了已注销账户和主页被屏蔽的账户)
已毕业tag:VTuber账号在哔哩哔哩明确表示“已毕业”,并60天未撤回消息或改变主意
休眠中tag:VTuber账号在哔哩哔哩明确表示“暂时停止活动”或“暂时休眠中”,并30天未撤回消息或改变主意

tag效果
不活跃tag:每12小时刷新一次主站空间数据和直播间数据
加密直播间tag:每12小时刷新一次直播间数据
无法查询的账户tag:每90天刷新一次主站空间数据和直播间数据
已毕业tag:每48小时刷新一次主站空间数据和直播间数据
休眠中tag:每24小时刷新一次主站空间数据和直播间数据

如何标记tag
不活跃tag:可通过程序配合人工标记
加密直播间tag:可通过程序自动标记
无法查询的账户tag:可通过程序自动标记
已毕业tag:可通过人工标记
休眠中tag:可通过人工标记

tag前台显示冲突
已毕业tag和不活跃tag冲突
无法查询的账户和不活跃tag冲突
休眠中tag和不活跃tag,已毕业tag冲突

tag效果优先级
无法查询的账户tag>已毕业tag>休眠中tag>不活跃tag>加密直播间tag

tag是否在前台显示
已毕业tag暂不在前台显示
加密直播间tag、无法查询的账户tag应该不会伤害粉丝感情,故建议在前台显示
不活跃tag说不准会不会伤害粉丝感情,或许可以先在前台显示

如何取消tag
不活跃tag:可通过程序自动取消或人工取消
加密直播间tag:可通过程序自动取消或人工取消
无法查询的账户tag:可通过程序自动取消或人工取消
已毕业tag:可通过人工取消
休眠中tag:可通过人工取消

其他建议
1.希望可以在submit.vtbs.moe增加标记或取消不活跃tag、已毕业tag、休眠中tag的入口,在github增加标记或取消tag的反馈模版,毕竟需要人工
2.在前台显示的tag旁边添加一个关于tag的Q&A入口,方便用户查看各个tag的标准、用途等

@bbrabbitt
Copy link
Contributor

bbrabbitt commented May 14, 2022

提一些关于tag的意见_(:з)∠)_

tag分为 不活跃tag,加密直播间tag,无法查询的账户tag,已毕业tag,休眠中tag

tag判断标准 不活跃tag:180天内未进行任何活动,包括但不限于发送动态,发送视频,进行直播,修改简介,修改头像等 加密直播间tag:直播间返回错误代码19002005,也可依据返回的错误消息判断 无法查询的账户tag:主站空间返回错误代码-404(这种判断方式一般包括了已注销账户和主页被屏蔽的账户) 已毕业tag:VTuber账号在哔哩哔哩明确表示“已毕业”,并60天未撤回消息或改变主意 休眠中tag:VTuber账号在哔哩哔哩明确表示“暂时停止活动”或“暂时休眠中”,并30天未撤回消息或改变主意

tag效果 不活跃tag:每12小时刷新一次主站空间数据和直播间数据 加密直播间tag:每12小时刷新一次直播间数据 无法查询的账户tag:每90天刷新一次主站空间数据和直播间数据 已毕业tag:每48小时刷新一次主站空间数据和直播间数据 休眠中tag:每24小时刷新一次主站空间数据和直播间数据

如何标记tag 不活跃tag:可通过程序配合人工标记 加密直播间tag:可通过程序自动标记 无法查询的账户tag:可通过程序自动标记 已毕业tag:可通过人工标记 休眠中tag:可通过人工标记

tag前台显示冲突 已毕业tag和不活跃tag冲突 无法查询的账户和不活跃tag冲突 休眠中tag和不活跃tag,已毕业tag冲突

tag效果优先级 无法查询的账户tag>已毕业tag>休眠中tag>不活跃tag>加密直播间tag

tag是否在前台显示 已毕业tag暂不在前台显示 加密直播间tag、无法查询的账户tag应该不会伤害粉丝感情,故建议在前台显示 不活跃tag说不准会不会伤害粉丝感情,或许可以先在前台显示

如何取消tag 不活跃tag:可通过程序自动取消或人工取消 加密直播间tag:可通过程序自动取消或人工取消 无法查询的账户tag:可通过程序自动取消或人工取消 已毕业tag:可通过人工取消 休眠中tag:可通过人工取消

其他建议 1.希望可以在submit.vtbs.moe增加标记或取消不活跃tag、已毕业tag、休眠中tag的入口,在github增加标记或取消tag的反馈模版,毕竟需要人工 2.在前台显示的tag旁边添加一个关于tag的Q&A入口,方便用户查看各个tag的标准、用途等

需要的人工太多,tag是为了解决爬虫负载过高的问题,如果需要太多人工就不划算了。f5c2f67 已经加入了队列机制解决这个问题。

@Tinhone
Copy link

Tinhone commented May 14, 2022

提一些关于tag的意见_(:з)∠)_
tag分为 不活跃tag,加密直播间tag,无法查询的账户tag,已毕业tag,休眠中tag
tag判断标准 不活跃tag:180天内未进行任何活动,包括但不限于发送动态,发送视频,进行直播,修改简介,修改头像等 加密直播间tag:直播间返回错误代码19002005,也可依据返回的错误消息判断 无法查询的账户tag:主站空间返回错误代码-404(这种判断方式一般包括了已注销账户和主页被屏蔽的账户) 已毕业tag:VTuber账号在哔哩哔哩明确表示“已毕业”,并60天未撤回消息或改变主意 休眠中tag:VTuber账号在哔哩哔哩明确表示“暂时停止活动”或“暂时休眠中”,并30天未撤回消息或改变主意
tag效果 不活跃tag:每12小时刷新一次主站空间数据和直播间数据 加密直播间tag:每12小时刷新一次直播间数据 无法查询的账户tag:每90天刷新一次主站空间数据和直播间数据 已毕业tag:每48小时刷新一次主站空间数据和直播间数据 休眠中tag:每24小时刷新一次主站空间数据和直播间数据
如何标记tag 不活跃tag:可通过程序配合人工标记 加密直播间tag:可通过程序自动标记 无法查询的账户tag:可通过程序自动标记 已毕业tag:可通过人工标记 休眠中tag:可通过人工标记
tag前台显示冲突 已毕业tag和不活跃tag冲突 无法查询的账户和不活跃tag冲突 休眠中tag和不活跃tag,已毕业tag冲突
tag效果优先级 无法查询的账户tag>已毕业tag>休眠中tag>不活跃tag>加密直播间tag
tag是否在前台显示 已毕业tag暂不在前台显示 加密直播间tag、无法查询的账户tag应该不会伤害粉丝感情,故建议在前台显示 不活跃tag说不准会不会伤害粉丝感情,或许可以先在前台显示
如何取消tag 不活跃tag:可通过程序自动取消或人工取消 加密直播间tag:可通过程序自动取消或人工取消 无法查询的账户tag:可通过程序自动取消或人工取消 已毕业tag:可通过人工取消 休眠中tag:可通过人工取消
其他建议 1.希望可以在submit.vtbs.moe增加标记或取消不活跃tag、已毕业tag、休眠中tag的入口,在github增加标记或取消tag的反馈模版,毕竟需要人工 2.在前台显示的tag旁边添加一个关于tag的Q&A入口,方便用户查看各个tag的标准、用途等

需要的人工太多,tag是为了解决爬虫负载过高的问题,如果需要太多人工就不划算了。f5c2f67 已经加入了队列机制解决这个问题。

个人认为可以先加入加密直播间tag和无法查询的账户tag,这两个tag用程序即可标记和取消

@wudifeixue
Copy link
Member Author

@Tinhone 你说的这个其实已经在这边提到过了dd-center/vdb#9966

@Tinhone
Copy link

Tinhone commented May 14, 2022

@Tinhone 你说的这个其实已经在这边提到过了dd-center/vdb#9966

_(:з)∠)_算是补充吧

@wudifeixue
Copy link
Member Author

嗯,可以看出你这出发点是好的,不过有些不太实用啊orz 这做出来那么多tag一个是要累死麻烦死,另外一个就是主观因素太多了

@Chen-Luan
Copy link
Contributor

Chen-Luan commented May 18, 2022

在about界面或者主页哭穷,通过简洁易懂的语言让更多的普通用户了解Electron和Browser的下载与使用

一种可能的文案:

**帮帮我们**

**发什么什么?**
服务器开销太大了!我们的算力快撑不住了!
(在这里哭穷)

**我能做什么吗**
你可以下载我们的程序,使用你的电脑来为我们提供算力支援!
(在这里丢链接)
如果你有使用类似于Tampermonkey之类的脚本管理插件,也可以通过脚本来提供支援!
(在这里丢链接)

当然没必要真的哭穷,不过最好让普通用户也能搞懂分布计算的用法?

@Chen-Luan
Copy link
Contributor

Chen-Luan commented May 18, 2022

感觉不妥?有些v可能是纯粹的视频势
建议结合投稿频率,直播频率,粉丝数,动态频率,服务器负荷进行动态权重分配,同时设置爬取频率上限下限,尽快更新活跃V,同时保证小V的基础爬取频率

给uid设置tag,最高频率5分钟更新一次数据,30天不播降低更新频率到60分钟,90天不播视为暂时冻结1天一次更新数据@wjhhuizi f5c2f67

@imtipi
Copy link

imtipi commented Jul 16, 2022

有没有浏览器插件,油猴脚本看起来是打开b站的时候才会开始运行,而不是打开浏览器就能后台静默运行

@simon300000
Copy link
Member

目前@bbrabbitt 的修改已经合并进master,接下来解决socket.io带来的问题

@Chen-Luan
Copy link
Contributor

有没有浏览器插件,油猴脚本看起来是打开b站的时候才会开始运行,而不是打开浏览器就能后台静默运行

修改一下脚本设置里的正则表达式就行了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants