feat(cache): 提升内存管理与监控能力

- 在CacheManager中添加健康监控系统,并提供详细的内存统计信息
- 使用新的memory_utils模块实现精确的内存估算
- 添加基于大小的缓存条目限制,以防止过大项目
- 通过去重内存计算优化缓存统计
- 在MultiLevelCache中添加过期条目的自动清理功能
- 增强批处理调度器缓存功能,支持LRU驱逐策略和内存追踪
- 更新配置以支持最大项目大小限制
- 添加全面的内存分析文档和工具

重大变更:CacheManager 的默认 TTL 参数现改为 None 而非 3600。数据库兼容层默认禁用缓存,以防止旧版代码过度使用缓存。
This commit is contained in:
Windpicker-owo
2025-11-03 15:18:00 +08:00
parent 29a5357728
commit ecef8edd28
10 changed files with 1923 additions and 20 deletions

View File

@@ -49,6 +49,7 @@ class DatabaseConfig(ValidatedConfigBase):
cache_l2_ttl: int = Field(default=300, ge=60, le=7200, description="L2缓存生存时间")
cache_cleanup_interval: int = Field(default=60, ge=30, le=600, description="缓存清理任务执行间隔(秒)")
cache_max_memory_mb: int = Field(default=100, ge=10, le=1000, description="缓存最大内存占用MB超过此值将触发强制清理")
cache_max_item_size_mb: int = Field(default=1, ge=1, le=100, description="单个缓存条目最大大小MB超过此值将不缓存")
class BotConfig(ValidatedConfigBase):