vtbs.moe icon indicating copy to clipboard operation
vtbs.moe copied to clipboard

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

Open wudifeixue opened this issue 3 years ago • 18 comments

根据DDC讨论和总结:

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

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

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

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

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

  • [x] 实验ipv6能不能略过这个ip限制@simon300000 @shugen002 两人已经实验成功

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

  • [x] @shugen002 提议清理无效记录想加一个毕业tag,只在详细中可搜索,但不再更新数据
  • [x] #353
  • [x] 手动通过sub.vtbs.moe是否可行?之前已有在https://github.com/dd-center/vdb/pull/9810 这里开始做事情了

wudifeixue avatar May 11 '22 05:05 wudifeixue

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

要做的事情

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

wudifeixue avatar May 11 '22 16:05 wudifeixue

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

bbrabbitt avatar May 12 '22 05:05 bbrabbitt

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

wudifeixue avatar May 12 '22 11:05 wudifeixue

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

Tinhone avatar May 13 '22 08:05 Tinhone

目 前 没 有 t a g

Simon

在 2022年5月13日,下午4:41,Tinhone @.***> 写道:



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

— Reply to this email directly, view it on GitHubhttps://github.com/dd-center/vtbs.moe/issues/354#issuecomment-1125801503, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADAR5CFDBEVJVC632G2C3L3VJYIUDANCNFSM5VTUAKPQ. You are receiving this because you were mentioned.Message ID: @.***>

simon300000 avatar May 13 '22 08:05 simon300000

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

简易版

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

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

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

wudifeixue avatar May 13 '22 10:05 wudifeixue

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

wudifeixue avatar May 13 '22 10:05 wudifeixue

提一些关于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的标准、用途等

Tinhone avatar May 13 '22 13:05 Tinhone

提一些关于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 已经加入了队列机制解决这个问题。

bbrabbitt avatar May 14 '22 03:05 bbrabbitt

提一些关于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用程序即可标记和取消

Tinhone avatar May 14 '22 08:05 Tinhone

@Tinhone 你说的这个其实已经在这边提到过了https://github.com/dd-center/vdb/issues/9966

wudifeixue avatar May 14 '22 15:05 wudifeixue

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

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

Tinhone avatar May 14 '22 16:05 Tinhone

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

wudifeixue avatar May 14 '22 16:05 wudifeixue

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

一种可能的文案:

**帮帮我们**

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

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

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

Chen-Luan avatar May 18 '22 01:05 Chen-Luan

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

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

Chen-Luan avatar May 18 '22 11:05 Chen-Luan

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

imtipi avatar Jul 16 '22 05:07 imtipi

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

simon300000 avatar Aug 21 '22 15:08 simon300000

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

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

Chen-Luan avatar Aug 24 '22 15:08 Chen-Luan