ImageResizer v5 HybridCache缓存未达配置容量及CPU占用过高咨询
ImageResizer v5 HybridCache配置异常与文档、代码行为矛盾问题
环境与业务场景
- 部署环境:Azure托管,基于.NET 4.8框架
- 使用组件:ImageResizer v5 + HybridCache插件,近期从v4升级至v5,目标是获得缓存最大容量的可控性
- 业务规模:服务约50000名用户,提供缩放后的图片(以缩略图为主),每小时请求量超100000次
核心问题现象
将Web.config中cacheSizeMb配置为100000(预期对应100GB缓存容量),但运行数日后,缓存实际占用始终未超过1.08GB;同时应用CPU占用极高,触发基于CPU阈值的横向扩展,导致Azure实例数量远超正常水平。
当前Web.config配置
<hybridCache cacheLocation="D:\home\imageresizercache" cacheSizeMb="100000" />
文档与配置逻辑的矛盾
HybridCache的官方README文档存在描述矛盾:文档指出<hybridCache cacheSizeMb="1,000" />的单位是字节,且不能设置低于9MB(9,000,000字节),建议最小配置为1GiB。但从配置项名称cacheSizeMb判断,单位应为MB而非字节,此处文档描述疑似错误。
代码逻辑与实际行为不符
查看HybridCache插件代码,存在如下校验逻辑:
if (_cacheOptions.CacheSizeMb < 100) issues.Add(new Issue("HybridCache", "cacheSizeMb should not be set below 100 MiB, 1GB is the suggested minimum . Found in the <hybridCache /> element in Web.config.","Setting a value too low will increase latency, increase cache misses, waste energy and reduce server performance.", IssueSeverity.ConfigurationError));
按照该逻辑,当cacheSizeMb设置为11时,resizer.debug.ashx页面应显示配置错误,但测试环境中实际未出现该提示。可提供resizer.debug.ashx内容或访问链接用于进一步排查。
内容的提问来源于stack exchange,提问作者Lara Blokker
相关产品推荐
相关产品推荐

