This commit is contained in:
jxxghp
2025-06-08 19:41:46 +08:00
parent 81bc51c972
commit 19c3dad338
3 changed files with 10 additions and 81 deletions

View File

@@ -69,8 +69,8 @@ class ConfigModel(BaseModel):
DB_MAX_OVERFLOW: int = 500
# SQLite 的 busy_timeout 参数,默认为 60 秒
DB_TIMEOUT: int = 60
# SQLite 是否启用 WAL 模式,默认关闭
DB_WAL_ENABLE: bool = False
# SQLite 是否启用 WAL 模式,默认开启
DB_WAL_ENABLE: bool = True
# 缓存类型,支持 cachetools 和 redis默认使用 cachetools
CACHE_BACKEND_TYPE: str = "cachetools"
# 缓存连接字符串,仅外部缓存(如 Redis、Memcached需要

View File

@@ -324,66 +324,3 @@ class MemoryHelper(metaclass=Singleton):
return f"{obj_type_name}(描述生成失败){e}"
except Exception as e:
return f"未知对象(描述生成失败){e}"
def get_current_memory_info(self) -> dict:
"""
获取当前内存使用信息
:return: 内存使用信息字典
"""
try:
# 获取当前进程内存使用
current_memory = psutil.Process().memory_info().rss
# 获取对象统计
all_objects = muppy.get_objects()
sum1 = summary.summarize(all_objects)
memory_info = {
"current_memory_mb": round(current_memory / 1024 / 1024, 2),
"object_count": len(all_objects),
"top_objects": [],
"largest_objects": []
}
# 解析对象统计信息
formatted_lines = list(summary.format_(sum1))
for line in formatted_lines:
parts = line.split('|')
if len(parts) >= 3 and not line.startswith('=') and not line.startswith(' types'):
# 解析格式: "type_name | count | size"
type_name = parts[0].strip()
count_str = parts[1].strip()
size_str = parts[2].strip()
# 跳过表头和分隔线
if type_name and count_str.isdigit():
# 解析大小(可能包含单位)
size_mb = 0
if 'MB' in size_str:
size_mb = float(size_str.replace('MB', '').strip())
elif 'KB' in size_str:
size_mb = float(size_str.replace('KB', '').strip()) / 1024
elif 'B' in size_str:
size_mb = float(size_str.replace('B', '').strip()) / 1024 / 1024
memory_info["top_objects"].append({
"type": type_name,
"count": count_str,
"size_mb": round(size_mb, 2)
})
# 只取前10个有效对象
if len(memory_info["top_objects"]) >= 10:
break
# 获取最大对象信息
try:
memory_info["largest_objects"] = self._get_largest_objects(10)
except Exception as e:
logger.warning(f"获取大对象列表失败: {e}")
memory_info["largest_objects"] = []
return memory_info
except Exception as e:
logger.error(f"获取内存信息失败: {e}")
return {"error": str(e)}

View File

@@ -5,18 +5,8 @@
HOST=0.0.0.0
# 【*】超级管理员,设置后一但重启将固化到数据库中,修改将无效(初始化超级管理员密码仅会生成一次,请在日志中查看并自行登录系统修改)
SUPERUSER=admin
# 重启自动升级 release/dev/true/false
MOVIEPILOT_AUTO_UPDATE=release
# 自动检查和更新站点资源包(索引、认证等)
AUTO_UPDATE_RESOURCE=true
# 网络代理服务器地址 http(s)://ip:port、socks5://user:pass@host:port、socks5h://user:pass@host:port
PROXY_HOST=
# 媒体识别来源 themoviedb/douban使用themoviedb时需要确保能正常连接api.themoviedb.org使用douban时不支持二级分类
RECOGNIZE_SOURCE=themoviedb
# OCR服务器地址
OCR_HOST=https://movie-pilot.org
# 搜索多个名称true/false为true时搜索时会同时搜索中英文及原始名称搜索结果会更全面但会增加搜索时间为false时其中一个名称搜索到结果或全部名称搜索完毕即停止
SEARCH_MULTIPLE_NAME=false
# 开发调试模式,仅开发人员使用,打开后将停止后台服务
DEV=false
# 为指定字幕添加.default后缀设置为默认字幕支持为'zh-cn''zh-tw''eng'添加默认字幕未定义或设置为None则不添加
DEFAULT_SUB=zh-cn
# 数据库连接池的大小可适当降低如20-50以减少I/O压力
@@ -25,7 +15,9 @@ DB_POOL_SIZE=100
DB_MAX_OVERFLOW=500
# SQLite 的 busy_timeout 参数可适当增加如180以减少锁定错误
DB_TIMEOUT=60
# 是否开发调试模式,仅开发人员使用,打开后将停止后台服务
DEV=false
API_TOKEN='jYImOhUt6p4acOeMpNgDhA'
ANIME_GENREIDS='[16]'
# 是否启用内存监控,开启后将定期生成内存快照文件
MEMORY_ANALYSIS=false
# 内存快照间隔(分钟)
MEMORY_SNAPSHOT_INTERVAL=5
# 保留的内存快照文件数量
MEMORY_SNAPSHOT_KEEP_COUNT=30