普通视图

发现新文章,点击刷新页面。
昨天以前yzqzss|一座桥在水上's Blog

运行多用户 FreshRSS 实例的一些经验

作者 yzqzss
2024年3月10日 06:45

运行多用户 FreshRSS 实例的一些经验

一般项

常规的优化做做就可以了,另外 PHP 越新越好。

另外由于 FreshRSS 为每个用户创了两张数据库表(一张 article 一张 feed),所以数据库的 opened tables 会比较高,但也不用太关心这个指标,毕竟我们不可能有这么高的并发。

  • 推荐开启 WebSub。
  • 记得订阅 FreshRSS 的 GitHub Release
  • 将 ./p 作为网站根目录,不要把 FreshRSS 的根目录设为网站根目录

FreshRSS 升级

FreshRSS 升级时会把 ./data 复制一份到 ./data.bak ,这本身没啥问题。但是在我们的多用户实例上,./data/cache 轻轻松松就会积累起几万十几万个缓存文件,毕竟订阅源数量非常多。建议在升级前 cd ./data/cache && rm *.spc *.html 清理缓存。以免升级时给 ./data 打备份过久而 PHP 超时。

如果你有备份 crontab,记得排除 ./data/cache./data.bak

新用户默认订阅源

./opml.default.xml 默认是 FreshRSS 的 GitHub Release。

新用户默认配置

创一个 ./data/config-user.custom.php ,内容如下:

<?php
return array (
        'ttl_default' => 14400, # 最小 4h 自动刷新一次
        'dynamic_opml_ttl_default' => 43200, # dynamic opml 的刷新频率
);

可用参数见 config-user.default.php

让用户不能把更新频率改得太高

app/views/configure/archiving.phtml 里的几十分钟刷新一次的选项删掉,我是只留下了最快 4h 一次的选项。注意更新 FreshRSS 后要重新删掉。

禁用不活跃用户的自动更新

调整 ./data/config.phpmax_inactivity 值。

并行刷新订阅源优化

在 1.22.0 后,FreshRSS 给 app/actualize_script.php 加了进程互斥锁。这玩意极大拖慢了刷新一轮订阅源的效率。虽然单个刷新线程会5并发刷新 feed,但还是不够,而且一些 feed 死链,默认 20s 才会 timeout,又拖慢了全局刷新速度。

建议加下这个 patch,让你的 app/actualize_script.php 可以并行运行。

42c42
< $mutexTtl = 900; // seconds (refreshed before each new feed)
---
> $mutexTtl = 10; // seconds (refreshed before each new feed)
49c49,51
<       die();
---
>       // die();
> } else {
>       fclose($handle);
51d52
< fclose($handle);

不用担心并行刷新会导致冲突啥的,因为 feed 级别上也有锁,所以多个进程不会傻乎乎地同时去刷新同一个 feed 。

我是每 3 分钟起 9 个刷新进程,速度飕飕地。

for i in {1..9}; do sudo -u www-data /usr/bin/php /var/www/rss.othing.xyz/app/actualize_script.php & done

另外还可以启用 AutoTTL 插件,根据每个 feed 的实际更新间隔来自适应调整更新频率。不过你需要自己 patch 一下,把它改成系统级插件,而不是用户级插件。

管理插件

FershRSS 的插件手动安装和更新很麻烦。

为了方便,我做了个“FreshRSS 插件包管理器”——yzqzss/freshrss-ext-manager,妈妈再也不用担心我装的 FreshRSS 插件过时了。

备份

不推荐用 FreshRSS 自带的 cli 工具导出 sqlite dump,因为它会重排序 feed_id。另外,FreshRSS 的 Mysql/PostgreSQL 里存的 RSS 文章内容是压缩了的,导出成 sqlite dump 会解压,所以 dump 极大。

总结

经过一波优化下来,估计至少容纳 1k 用户应该没啥问题。

轮胎作玩具,铁环的消失——回忆之6~7

作者 yzqzss
2023年9月6日 00:00

我在小区的废楼里找到一个摩托车轮胎。我把这个轮胎当作玩具,天天在小区里外滚上滚下,掌握了一番手刹、侧转等技巧。连找小伙伴玩我都带上这个轮胎。🌚

然后某天,因超速失去控制,这轮胎一头扎进沟里,Game Over,之后我就没轮胎玩了。🌚🌚

#回忆 #轮胎作为玩具 6/n


轮胎没了之后,我想玩玩正经的铁环。又过了好久,那时候淘宝开始普遍了,于是我让我爸上淘宝买了个。

说起来真悲催,到现在我在城市里也没看见哪个小孩/大人玩铁环。倒是有很多大人看到我在玩,就借过去滚两下过过瘾。

现在那铁环已经找不到了,不知道放哪儿了。

我觉得这项娱乐有复兴的潜力。🙈

#回忆 #铁环 7/n

记录人生的尝试之二

作者 yzqzss
2022年7月23日 15:55

用 Google Calendar 做小型的时间记录,并使用 Sleep as Android 将睡眠记录同步到 Google Calendar(对,我就是夜猫子!) 。

效果如下:https://othing.xyz/calendar

没有选择用专门的时间管理软件,因为这些软件是否能长久使用很成问题,而日历和电邮一样,又古老又通用,日历数据容易备份和同步,切换日历服务商也简单。

下一步我准备用 Google Fit 的 API,把每日步数之类的信息也公开。再下一步是买个手环,把心率也给公开公开(有点诡异)。


至于以前的记录人生的尝试之一——「声冻计划」如何了?放心,现在还在录着呢。

「农村合作基金会」——改革开放时期的“县乡银行”

作者 yzqzss
2022年7月12日 20:25
198X年萌芽,1996年左右开始爆雷发生挤兑潮,1997年亚洲金融危机使政府下定决心取缔,2000年左右几乎完全被取缔。

那时候基金会以镇乡政府主导,以入股的名义吸储,以支付股息的名义分红,给的利率比还银行高(高息揽储)。199X年的时候通货膨胀且市场资金短缺,银行的年化利率常常在10%浮动,你要是有点小钱,靠吃利息就能活得滋润,而基金会给的比银行还高几个点,所以那时候人们把大笔大笔的钱存基金会,而不是存正经银行。

其发展、爆雷、被取缔的系统原因就不展开了,本文附件里的论文(见文末)说得很清楚。

不过我简单在网上查到的资料和论文里并没有明写当年蔓延全国各地的爆雷事件的具体处置方案。

当年(1996年)部分基金会资金见底,很多基金会的备付金降至15%以下,有的甚至降至1%以下。爆发挤兑潮,主管基金会的县乡机关向上级政府求紧急拨款,但奈何当时各地的基金会总集资规模都超过 700 亿(那时候的 700 亿啊),这其中大部分都是乱贷出去几乎收不回来的呆账坏账,这么大金额,怎么办?

其他地方我不知道,当时我们重庆好像是这么处理的——凡是账上存款超过 10万 的(具体数额无从考证,信息来源于我爸),需写资金报告,说明你这大额存款的合理合法来源,否则收公。

我猜测:考虑到198X年干部贪污严重、集体资产流失/挪用严重(一些地方的集体资产缩水80%)的现象,这些人的「非法所得」或许不太敢存银行,更偏向投入基金会里(毕竟基金会不受中央和上级政府控制,里面的老哥还各个都是熟人,说话又方便,利息又高)。所以资金报告是万万写不出的,自然,这些人存的钱就没了。

重庆/四川当年的情况应该还比较可控,明明白白挣钱的老百姓没有怎么“受伤”(此处暂无资料证明)。但是其他地区是否有更无奈和极端的处理方法我就不清楚了。

偏好更高的利息没有错,但当你选择比基准利率(目前是1.5%)还要高的金融产品时(比如河南的「禹州新民生村镇银行」提供活期1.85%的高额利率,存款时间超过50天即可提供6%的超超超超高额利率),你自己可能也得考虑些风险了。

基于此,你的诉求合法吗?好像有点不合法。政府兜底吗?可以不兜底。此情此景似乎与1996年有些相似?除了那时候没有高管卷款跑路。

写到这里时,我去 Wikipedia 上找了下「农村合作基金会」条目,却惊讶地发现此条目在12小时前才被创建。

附件—参考资料

(如坏链,可前往 Telegram 频道的评论区下载)

附言

以上内容没有完全站在储户作为受害者的角度说话,看完之后还请注意不要陷入「指责受害人」(又称:完美受害者)误区。


写于 2022/07/12

别人说俺是英雄——记小时候一次造永动机的尝试

作者 yzqzss
2022年6月5日 18:16

小学四五年级的时候,我脑子里蹦出一个想法:要是把一个个强力磁铁像风扇状排成一圈,固定在一个转轴上,再拿一个磁铁以同极方向和一定角度靠近这些磁铁,这些磁铁不就会受磁力驱动,一直转下去吗?永动机不就来了吗?(那时候我还不知道永动机这个概念)这样我们就会有无限的电力了!我还可以把这东西申请专利!

我这个想法酝酿了很久,然后告诉了我爸。我爸那时候是个车工,他没有跟我解释能量守恒之类的东西,他听了我这个想法一段时间后,就用车床车了一个跟我预想的模型差不多的可以绑强力磁铁的转轴。然后在某个似乎是烈日炎炎的周末,我们去了重庆渝州交易城(专门卖机电相关东西等的市场)买了一把强磁铁。

回家后,我兴冲冲地把磁铁一一绑好,然后拿另一块磁铁靠近它们……奇迹没有发生,一开始确实转了一下,但很快就停在了两块磁铁直接的位置。按照我现在的知识,就是停留在了总势能最小的位置。

那是我第一次最震撼地感受到自然的“自然”,它是如此的严密和浑然一体,每一丝电场或磁场的强度、方向,磁感线或电场线的曲线,是多么完美啊,你是无法从中偷出一丝一毫的能量的。怎样的机制能创造出这么严丝合缝的系统呢?或者反着问,这个系统又是谁能创造出来的呢?小小的我没有答案,还感觉这个问题有点可怕。


我们造不出永动机,也造不出真正的焦耳小偷。

也许现在的人看来,历史上那些永动机的痴迷者似乎愚蠢可笑,但是。如果没有他们“与科学背道而驰”的执拗。物理学的发展可能会比实际慢两拍。至少,对能量守恒定律的发现论功行赏,除了要为那些人所共知的有杰出贡献的科学家树碑立传,还要建立一座无名英雄纪念碑,其上最合适的铭文是:纪念为实现永动机奋斗而失败的人们。

——引自人教版高中物理教材和互联网(无法溯源)。

所以,我很自豪我也是一名光荣的无名英雄呢。 咱可是造过永动机的人,多厉害!

另外,永动机的英文“free energy”有个好玩的译法:“自由能量/能源”,这是机翻造出来的词,不过大家觉得好玩也就顺着机翻用了:Bilibili UP 主“罗兹”就喜欢这样翻。

❌
❌