用户下载文件是虎绿林目前比较卡的主要原因

回复列表(70|显示机器人聊天)
  • @Ta / 04-04 13:37 / /

    @老虎会游泳

    1. 现在是两站共享 5M 宽带吗?

    2. 是有攻击者持续刷网页下载,导致请求/下载图片缓慢,及频繁出现超速警告吗?(攻击者 IP 很多?撞哈希了?)

    3. Linux 能不能搞个网络优先级啥的?优先保证网页、小图片、已登录用户体验。。这样应该不用买新服务器了吧。。

  • @Ta / 04-04 13:58 / /

    @无名啊,上传页面有压缩功能
    一加ace2Pro(灰|24+1024)

  • @Ta / 04-04 14:00 / /

    @老虎会游泳,关于第 3 点,设想类似《进程优先级》,实测多任务并行时,最低优先级只抢占 3% 资源(如下图)

    如果 Linux / Nginx 没有原生设施供调整网络优先级,

    那自己在 Nginx 写 Lua 脚本,用 Redis 维护个优先级队列,每传输 10KB 就挂起,调度到最高优先级任务继续传输?

    要不具体去扒扒《进程优先级》实现原理啥的。。

    Linux上进程优先级效果.avif(46.44 KB)

  • @Ta / 04-04 14:11 / /

    @上善若水,那个是 jpg 压缩,效果很差,而且全凭用户自愿。。

    我是觉得,可以服务器端,最低优先级闲时转码。

    php 要吃性能时,可以让出 97% 性能(见 42 楼测试)

    转码完成前,Nginx 提供原图。完成后,提供转码图。

    最终实现不影响性能前提下,减少 9 成带宽需求。。

  • @Ta / 04-04 14:23 / /

    @无名啊,想法不错,老虎缺少开发动力。
    一加ace2Pro(灰|24+1024)

  • @Ta / 04-04 14:29 / /

    @无名啊,目前的最新配置是:有两个阿里云轻量云服务器作为流量出口,hu60.cn和winegame.net使用其中一个,file.winegame.net使用另一个,file.hu60.cn同时使用两个。

    轻量云的出口带宽在1Mbps到200Mbps之间波动,具体带宽没有保证,但我观察到几乎所有情况下都超过5Mbps,你们非常卡的时候,是有人在以8Mbps(1MB/s)以上的速度在下载,占满了之前的唯一出口。

    所以我发帖后就添加了另一个出口,并且今天第一个出口的带宽也回到了30Mbps左右,所以卡顿问题已经缓解。

    现在file.hu60.cn还可以利用第二个出口,卡顿问题应该更不容易发生了。

  • @Ta / 04-04 14:31 / /

    最后,如果只有5Mbps的带宽,肯定不能满足虎绿林和wine游戏助手两站的需求,因为在你们非常卡的时候,那唯一一个流量出口一直保持8Mbps以上的下载速度,所以5Mbps在这种情况下只会更卡。

  • @Ta / 04-04 14:32 / /

    @老虎会游泳,隔壁腾讯云的轻量云大部分时间都可以在200Mbps我刷很多流量依然没有限速,阿里云是跑到几十GB流量就限速。而且机器腾讯云机器性能比阿里云还强,还支持ipv6,可惜我备案在阿里云。
    一加ace2Pro(灰|24+1024)

  • @Ta / 04-04 14:40 / /

    @上善若水,我的文件存储在北京阿里云OSS,所以我只能用北京阿里云作为流量出口,要不然就要收OSS流出流量费了。只有走内网从OSS提取文件才免流量费。

  • @Ta / 04-04 14:42 / /

    @上善若水,也是,这个搞一天不一定搞得完,不如老虎打一天工,工资都能买几年服务器了。。

  • @Ta / 04-04 14:46 / /

    @无名啊,优先传输网页和小文件似乎可以做到,感觉策略可以写成如果某人一直大量下载,就不断降低它的流量优先级。不过我感觉在应用层(nginx)是做不到拥塞控制的,因为应用层是感知不到拥塞的,并且轻量云带宽是动态的,没办法设一个固定限速目标。只有网络层(IP层)才能发现丢包重传之类的情况。可能要通过iptables、netfilter、ebpf等基于IP进行QoS调整。

  • @Ta / 04-04 14:48 / /

    @老虎会游泳,那超速警告咋回事呀

    另外老虎觉得《网络优先级》设想合理吗?

  • @Ta / 04-04 14:49 / /

    @无名啊,超速是按访问次数算的,和流量没关系。下载一个文件算一次,不管是1kB还是1GB都只算一次。

  • @Ta / 04-04 14:51 / /

    @无名啊,肯定是合理的,但我不太清楚具体。要怎么做到。如果能做到,我首先肯定是要把22端口的流量设为最高优先级,因为你们很卡的时候,我连接ssh也很卡,我不得不用阿里云后台的VNC进行远程操作

  • @Ta / 04-04 14:53 / /

    @老虎会游泳,需要 Nginx 感知阻塞吗?

    我设想 Nginx 先传 90% 高优先级数据,再传 10% 低优先级,循环往复即可。。

  • @Ta / 04-04 14:58 / /

    @老虎会游泳,那我咋会两小时访问 4W 次的。。

  • @Ta / 04-04 15:05 / /

    @老虎会游泳,按端口、IP 设优先级,感觉不够灵活。。

    考虑因素可能很多,涉及:

    • 响应类型(网页/浏览图片/下载图片等)
    • 响应体大小(大图片/视频等慢些)
    • 响应头里标识是否登录用户
    • 该用户最近累计资源消耗
    • ……
  • @Ta / 1天前 / /
    能不能出给上传的附件设置过期时间的功能?
  • @Ta / 1天前 / /

    很久很久之前,你用这个阿里云的1Mbps的服务器也不卡,现在 花样多了,卡了

  • @Ta / 1天前 / /

    @胡椒舰长,仅仅是因为当时的文件下载服务器是独立的按量计费CDN而已。所以只要把文件下载服务分离出去,网页部分带宽多小都不会卡。

添加新回复
回复需要登录