8c16g部署discourse,但是230人同时在线就很卡,请教论坛大佬

btop界面如下


我们是从贴吧转移部分讨论内容出来的游戏社区,一开始域名直接解析到8c16g 50M的服务器上,300+在线都完全没问题,后来套了cf,但是部分用户无法访问(能用梯子的用户不多),这段时间cpu占用也不高。最近为了让大多数用户能直连访问,从cf换成了香港的cdn,访问性勉强能接受,但是230+同时在线人数服务器cpu就会满载,我们尝试着调整了app.yml里面的db_shared_buffers到4096MB,UNICORN_WORKERS到17(根据 提升论坛性能:实操将Discourse迁移到新服务器完整流程和优化 | BOBO Blog这篇教程),但是没有改善,可能还更卡了)
我现在猜测的原因可能有一下几点:
1.discourse论坛从1月起有报告ruby的cpu占用变高,但是他们是从8%变成16%这种倍增,和我们的情况可能不太一样。而且discourse开发者说新版本已经回滚问题代码,我们确定论坛是最新的3.5.0 beta1-dev。另一个和我们清况类似的帖子在rebuild之后就有直接的改善,但对我们无效。
2.我们论坛的特点是,大部分讨论集中在管理员开的“集中贴”,围绕同一个话题讨论几千层,但是这种单个帖子高楼层似乎并不适合discourse,但是之前cpu占用没问题的时候同样是几千层的讨论。
3.使用了cpu占用异常的插件。
4.cdn配置有问题。
另外网络相关的问题:目前的cdn是别的运营在管理,是购买的别人部署好的cdnfly的服务,服务器在特区。浙江等已经出现dns污染,没有被dns污染的省份(itdog能绿)也有用户报告无法访问。鉴于用户中能使用梯子的不多,我们考虑可能备案后迁移回国内(论坛能备案成功吗)?还是购买更好的特区cdn?
再另外:我们维护资金来自于用户捐赠和google adsense广告收入,但是目前楼内显示不出来广告,这方面有没有大佬能指点一下。

7 个赞

有检查过 redis 吗

check this: Server Performance Issues Due to High CPU Usage - Support - Discourse Meta

1 个赞

需要做合规, 实名认证/手机号这种.

我的解决方案是使用 cdn5.com 或者 edgeone, 国内速度能接受

1 个赞

1、源站服务器有没有变更过环境,比如说redis、ruby的版本
2、discourse论坛的版本是否确认是对接cf时候的版本
3、从截图看是cpu彪满了,那么会不会是云厂商超售严重了?有没有找云厂商更换下宿主机?
4、另外佬方便发出网址吗?

有的机器八核不顶一核心,建议测一下性能和io

我发不了图片,
postmaster在cpu满载时,大多数时候都是15%以下,偶尔会上升到60%。

超售,建议校准实际性能

2 个赞

1.ridis和ruby没换过
2.discourse版本忘记了()
3.准备晚上用户少的时候测试一下性能

cdn5.com 是用的付费还是免费计划:joy:付费计划太贵了

cpu满了可能是厂家的问题,超售太严重了,测一下cpu跑分啥的,重新校准

看占用的是什么软件,求分享

btop,arch 群看见的:smiling_face_with_three_hearts:

1 个赞

我在用htop,你的好看多了

1 个赞

游戏类论坛有视频备案会麻烦点,需要各种证件。不好整

1 个赞

Ruby 版本多少?如果是 Ruby 3.3.0 的话有好几个性能问题,3.3.1修复过的。

是3.3.6​:face_holding_back_tears:

看起来redis很卡很卡

root@RainYun-KCpFc7uf-app:/# redis-cli --intrinsic-latency 120
Max latency so far: 1 microseconds.
Max latency so far: 23 microseconds.
Max latency so far: 37 microseconds.
Max latency so far: 2045 microseconds.
Max latency so far: 71181 microseconds.
Max latency so far: 159082 microseconds.
Max latency so far: 168513 microseconds.
Max latency so far: 268383 microseconds.
Max latency so far: 382476 microseconds.

322524004 total runs (avg latency: 0.3721 microseconds / 372.07 nanoseconds per run).
Worst run took 1027981x longer than the average latency.

检查你的 sidekiq 队列(在管理后台内).
并且尝试执行:

./launcher enter app
redis-cli flushall



我们在12日凌晨测试过服务器跑分,结果如下,应该没有超售?但是从上图可以看出,今天持续高负载被厂家限频了,可能就是btop显示100%cpu的原因。
我们已经准备更换服务器提供商。
另外:目前我们选择的cdn大约每月298元 “无限流量”,我们的实际消耗流量大概在1-2t每月,(可能后面把图片换成s3能减少cdn流量),cdn5和edgeone的价格怎么样?
感谢您的解答。

服务器跑分

---------------------基础信息查询–感谢所有开源项目---------------------
CPU 型号 : Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz
CPU 核心数 : 8
CPU 频率 : 2494.140 MHz
CPU 缓存 : L1: 256.00 KB / L2: 32.00 MB / L3: 16.00 MB
AES-NI指令集 : :check_mark: Enabled
VM-x/AMD-V支持 : :check_mark: Enabled
内存 : 9.01 GiB / 15.62 GiB
Swap : 8.30 MiB / 4.00 GiB
硬盘空间 : 58.00 GiB / 68.79 GiB
启动盘路径 : /dev/sda1
系统在线时间 : 1 days, 9 hour 18 min
负载 : 0.35, 1.13, 4.31
系统 : Debian GNU/Linux 12 (bookworm) (x86_64)
架构 : x86_64 (64 Bit)
内核 : 6.1.0-10-amd64
TCP加速方式 : bbr
虚拟化架构 : KVM
NAT类型 : Full Cone
IPV4 ASN : AS979 NetLab Global
IPV4 位置 : Los Angeles / California / US
----------------------CPU测试–通过sysbench测试-------------------------
→ CPU 测试中 (Fast Mode, 1-Pass @ 5sec)
1 线程测试(单核)得分: 890 Scores
8 线程测试(多核)得分: 2382 Scores
---------------------内存测试–感谢lemonbench开源-----------------------
→ 内存测试 Test (Fast Mode, 1-Pass @ 5sec)
单线程读测试: 18407.97 MB/s
单线程写测试: 14396.51 MB/s
------------------磁盘dd读写测试–感谢lemonbench开源--------------------
→ 磁盘IO测试中 (4K Block/1M Block, Direct Mode)
测试操作 写速度 读速度
100MB-4K Block 34.2 MB/s (8360 IOPS, 3.06s) 40.6 MB/s (9919 IOPS, 2.58s)
1GB-1M Block 3.1 GB/s (2977 IOPS, 0.34s) 4.4 GB/s (4197 IOPS, 0.24s)
---------------------磁盘fio读写测试–感谢yabs开源----------------------
Block Size | 4k (IOPS) | 64k (IOPS)
------ | — ---- | ---- ----
Read | 198.91 MB/s (49.7k) | 1.08 GB/s (17.0k)
Write | 199.44 MB/s (49.8k) | 1.09 GB/s (17.1k)
Total | 398.35 MB/s (99.5k) | 2.18 GB/s (34.1k)
| |
Block Size | 512k (IOPS) | 1m (IOPS)
------ | — ---- | ---- ----
Read | 1.19 GB/s (2.3k) | 1.25 GB/s (1.2k)
Write | 1.26 GB/s (2.4k) | 1.33 GB/s (1.3k)
Total | 2.45 GB/s (4.7k) | 2.58 GB/s (2.5k)

这不是没有超售,这是超售的比较厉害了。
你单线程890,8线程怎么也要6000Scores。
看你占用一直很高,很可能卡就是因为cpu性能不行
建议换个机器试试,你这一台机器8核心顶不上高性能机器的一核心

1 个赞