主题列表预览(TLP)

这是一个很好的规格!您的网站一定特别繁忙?

您确定没有发生重新烘焙吗?

每分钟有多少张图片被发布?

缩略图的准备主要是核心代码,需要强制进行额外的图像处理。

任何性质的插件或主题组件都会出现这种情况。

3 个赞

我们关闭了插件大约 24 小时,然后又开启了 24 小时。
下面我粘贴了我们另一位管理员的笔记。


插件导致计划中的作业执行缓慢。
队列中的作业越多,CPU 就越难以跟上。
所以服务器会遇到大量流量,但一段时间内一切看起来都很正常,直到作业开始堆积。
最终 CPU 难以跟上,使用率会随着已积压作业的完成而上下波动。

这就是为什么我们之前看到有 3000 多个积压的作业。
在正常情况下,作业永远不会超过 5 个。但几乎总是有 0 个,因为不应该有积压的作业,它们应该立即处理。

附图显示了当前作业正在积压。现在它在 30-35 个积压作业之间徘徊。
所有这些作业都是来自 sidecar 中最新帖子的新作业。
我还无法确定原因,但这只发生在插件开启时。

CPU 资源过去一小时的图表

过去 24 小时,大致标出了插件启用的大致位置(请看峰值后的上升趋势)

看起来这个模式需要超过 24 小时才能注意到,但插件几乎一直导致整体资源使用率在 80-90% 以上。

一旦我们关闭它,我们就会注意到在接下来的 24 小时内,服务器的平均使用率将在 60-75% 之间,并且作业不会积压。

另外,当我们想要的时候,我将 app.yml 改为 16 个 unicorn 工作进程。当我们想要重建时,我认为我们应该禁用插件,并设置 16 个 unicorn 工作进程。我们将在此期间观察服务器的性能,并根据我们认为的最佳值调整工作进程的数量。

过去 7 天
红色 = 已启用
蓝色 = 已禁用

再次开启插件后,CPU 出现峰值。我对作业部分是主要问题不太确定。我注意到随着 unicorn 工作进程的增加,作业计数也会增加。我认为这个数字是不相关的。

我仍然看到插件占用资源的那个问题。

仍然不是 100% 确定,但我非常有信心插件是一个问题。

插件 + 16 个工作进程:服务器卡死
16 个工作进程 无插件 - 工作正常
插件 + 8 个工作进程 - 运行缓慢但可用

关闭插件后的图表

1 个赞

您好,

我是写那些笔记的另一位管理员。
我现在认为这些作业不再是问题的一部分了。
不幸的是,我对 Discourse 的内部运作不太了解,不知道可能的原因是什么。我只知道我目前看到的情况。

总而言之,当启用 8 个工作进程时,网站运行缓慢,而启用 16 个工作进程时,网站几乎瘫痪。
禁用该插件后,网站运行正常,并且有足够的工作进程时速度非常快。

这让我相信该插件在资源方面或在 IO 或异步操作中被卡住的某些方面导致网站变慢。

1 个赞

请检查一下您的 sidekiq 队列。您是否看到大量排队的作业,它们的名称是什么?

我相信这只是缩略图制作的积压,一旦所有图像都处理完毕,它就会稳定下来。

这是一个核心流程。

如果您不需要 sidecar 插件的附加功能,可以安全地将其删除,只使用主题组件。

您能否确认一下,在主题组件激活但 sidecar 插件未激活的情况下,问题是否仍然存在?

如果您从未安装过 sidecar 插件,那么问题一定出在核心部分。

如果您需要分析方面的帮助,可以聘请 Pavilion。

我欢迎对此问题的独立报告。

4 个赞

只是确认一下——当你启用任何一种主题列表缩略图主题组件时,预计高 CPU 使用率的图像缩放作业会增加 :+1:。核心会“按需”为第一个在主题列表中查看某个主题的用户生成缩略图。

正如 @merefield 所提到的,一旦所有常用主题的缩略图都已生成,情况应该会稳定下来。

增加工作进程的数量可能不是个好主意——在 CPU 资源受限的机器上尝试并行处理更多工作会使症状恶化。最好将工作进程的数量保持正常,以便作业可以排队并被处理,而不会使机器过载。

在 Sidekiq UI 中,你可能想查看“忙碌”和“排队”选项卡。“已安排”的作业是那些安排在未来特定时间的作业,因此它们极不可能导致性能问题。

4 个赞

预览看起来很棒,但实际完全不同。我哪里做错了?

主题:FKB Pro - Social theme - #268 by Don

1 个赞

许多“完全转换”主题不受支持。我怀疑 FKB Pro 有自己的覆盖设置,这与此组件发生冲突。恐怕我无法支持这种情况。

此主题组件旨在用作不试图涵盖所有基础的主题中的构建块。

如果您想要一个带有主题列表预览的右侧边栏,请尝试组合使用 Right Side Blocks

3 个赞

主题标题和特色链接图标之间存在小的 CSS/间距问题。

2 个赞

添加了一项实验性功能:

1 个赞

现在运行得相当好,但仍有一个设置问题:

这可以响应宽度,因此仅当列表区域足够宽时,在“图块(砌体)”模式下才会显示。

演示地址:https://www.starzen.space/

注意:右下角的额外填充是一个已知的必要问题,这是由于砌体渲染器出于性能原因(它很快!)将内容渲染到最近的网格行。一旦 (!) 他们在 CSS 网格中实现原生砌体,我将重构它使其更美观。

注意#2:屏幕截图还包含来自 Discourse Bars 主题组件的一些控件(侧边栏已隐藏)。主题列表预览与 Discourse Bars 配合得非常好。

1 个赞

YouTube 的图片显示在主页上。

它也可以用于 Twitter 吗?

2 个赞

它绝不限于 YouTube。

它会显示缩略图。如果 Twitter 嵌入创建了缩略图,那么是的。

3 个赞

请告诉我应该选择什么设置才能使其像图中的一样?
我希望它以缩略图列表的形式出现,就像图中的一样。

图片左对齐

1 个赞

从此设置中移除 routes:

否则它们将显示为“Tiles”。如果你想将零 routes 显示为“Tiles”格式,请移除所有这些行,但你可能想考虑在移动设备上使用 Tiles(在这种情况下,保留那些带有 *-mobile 的行)。

2 个赞

现在完美了,谢谢你 :pray:

2 个赞

字体显示过多,如何减少文字?

1 个赞

随附的 sidecar 插件(在 OP 中列出)中有一个设置:

image

但如果没有插件,您可能想尝试原生设置:

我有一段时间没看这个了! :sweat_smile:

1 个赞

我正在尝试使用您提到的设置,但它不起作用。

有趣的是,一个主题的摘要太少,而另一个主题的摘要太多。

字符数必须在一定的字符限制内。


1 个赞

安装 sidecar 插件,使用该设置。

2 个赞

我猜您必须触发一个帖子重烘焙来重做主题摘要。

1 个赞