| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package performance_setting
- import (
- "github.com/QuantumNous/new-api/common"
- "github.com/QuantumNous/new-api/setting/config"
- )
- // PerformanceSetting 性能设置配置
- type PerformanceSetting struct {
- // DiskCacheEnabled 是否启用磁盘缓存(磁盘换内存)
- DiskCacheEnabled bool `json:"disk_cache_enabled"`
- // DiskCacheThresholdMB 触发磁盘缓存的请求体大小阈值(MB)
- DiskCacheThresholdMB int `json:"disk_cache_threshold_mb"`
- // DiskCacheMaxSizeMB 磁盘缓存最大总大小(MB)
- DiskCacheMaxSizeMB int `json:"disk_cache_max_size_mb"`
- // DiskCachePath 磁盘缓存目录
- DiskCachePath string `json:"disk_cache_path"`
- // MonitorEnabled 是否启用性能监控
- MonitorEnabled bool `json:"monitor_enabled"`
- // MonitorCPUThreshold CPU 使用率阈值(%)
- MonitorCPUThreshold int `json:"monitor_cpu_threshold"`
- // MonitorMemoryThreshold 内存使用率阈值(%)
- MonitorMemoryThreshold int `json:"monitor_memory_threshold"`
- // MonitorDiskThreshold 磁盘使用率阈值(%)
- MonitorDiskThreshold int `json:"monitor_disk_threshold"`
- }
- // 默认配置
- var performanceSetting = PerformanceSetting{
- DiskCacheEnabled: false,
- DiskCacheThresholdMB: 10, // 超过 10MB 使用磁盘缓存
- DiskCacheMaxSizeMB: 1024, // 最大 1GB 磁盘缓存
- DiskCachePath: "", // 空表示使用系统临时目录
- MonitorEnabled: true,
- MonitorCPUThreshold: 90,
- MonitorMemoryThreshold: 90,
- MonitorDiskThreshold: 90,
- }
- func init() {
- // 注册到全局配置管理器
- config.GlobalConfig.Register("performance_setting", &performanceSetting)
- // 同步初始配置到 common 包
- syncToCommon()
- }
- // syncToCommon 将配置同步到 common 包
- func syncToCommon() {
- common.SetDiskCacheConfig(common.DiskCacheConfig{
- Enabled: performanceSetting.DiskCacheEnabled,
- ThresholdMB: performanceSetting.DiskCacheThresholdMB,
- MaxSizeMB: performanceSetting.DiskCacheMaxSizeMB,
- Path: performanceSetting.DiskCachePath,
- })
- common.SetPerformanceMonitorConfig(common.PerformanceMonitorConfig{
- Enabled: performanceSetting.MonitorEnabled,
- CPUThreshold: performanceSetting.MonitorCPUThreshold,
- MemoryThreshold: performanceSetting.MonitorMemoryThreshold,
- DiskThreshold: performanceSetting.MonitorDiskThreshold,
- })
- }
- // GetPerformanceSetting 获取性能设置
- func GetPerformanceSetting() *PerformanceSetting {
- return &performanceSetting
- }
- // UpdateAndSync 更新配置并同步到 common 包
- // 当配置从数据库加载后,需要调用此函数同步
- func UpdateAndSync() {
- syncToCommon()
- }
- // GetCacheStats 获取缓存统计信息(代理到 common 包)
- func GetCacheStats() common.DiskCacheStats {
- return common.GetDiskCacheStats()
- }
- // ResetStats 重置统计信息
- func ResetStats() {
- common.ResetDiskCacheStats()
- }
|