可能1.22.2 CE工作套式回归,导致1GB VPS持续互换/呼出
描述臭虫
在同一VPS和配置上将Pangolin社区版从1.21.1升级为1.22.2后,主机资源使用发生了重大变化。
升级前,VPS在无关的监测优化后一直保持稳定. 1.22.x生成被部署后,主机进入了持续内存压力,交换活动要高得多,主要页断层,CPU系统时间,I/O等.
直接的cgroup和"/proc"测量指由Pangolin应用过程作为新内存压力的主要来源而不是文件系统缓存.
在一个抽样点,Pangolin申请程序:
- " RssAnon " :201,088 KiB
- " VmSwap " :106 112基贝
这大约是300个MiB 合并匿名居民+互换记忆。
在一个10分钟的压力窗口:
- 主机主要断层:120 882
- 潘哥林主要断层:74 938个(占东道主总数的62%)
- 潘哥林匿名记忆增加~95.34米B
- CrowdSec同时丢失了~56.53个文件缓存MiB,并进行了沉重的文件翻转/读取活性
这看起来像Pangolin 扩展了它的私人工作, 这迫使这个小的VPS 呼叫。 其他服务随后丢失了有用的缓存页面并重新阅读,扩大了CPU和磁盘 I/O.
我并不是说,这已经证明是一个简单的单调记忆泄漏。 在只恢复一次Pangolin后,最初的10分钟热身显示大幅增长,但随后的30分钟热身样本基本稳定. 行为似乎爆发/工作负荷被触发,而不是简单的线性泄漏.
升级前的可接受配置没有发生实质性变化。
在1.22升级前后每隔5秒进行6次Pangolin资源目标健康检查。 在1.22前的数据库备份证实在回归之前就已经存在同样的检查和cadence.
匹配的600秒A/B测试显示,允许这6次检查可大幅度地增加呼号:
- 主机互换:-31%
- 主机互换:-34%
- 主机重大故障率:-25%
- 潘戈林匿名过失率:-42%
- 潘戈林大错特错率:-32%
因此,作为缓解措施,我取消了这六次目标健康检查。 这很有帮助,但是他们无法独立地解释回归的开始,因为在Pangolin 1.22之前已经允许同样的检查。
长期宿主统计数据也显示有明显变化:
在回归前(Sep 1-3) 回归后(Sep 6-7) |.
CPU忙 12-13%
主要错误 ~ 10-13/s ~ 133-145/s19-21% ~
~ 互换 ~ ~ 13-15页/s ~ 163-184页/s ~
~ 互换出~~ ~ ~ 7页/s ~ 86-109页/s
其他调查没有发现明显的外部触发因素:
- 所测量的压力窗口请求流量少于先前的控制窗口
- 没有发现重复的高容量客户端模式
- Pangolin请求-审计行与所测出的压力间隔无关
- 显示可用Pangolin日志 . . . . . . .
内容来源: fosrl/pangolin