Ollama服务监测程序安装配置与使用详解
高效监控本地DeepSeek-R1服务,确保业务系统持续稳定运行,实现自动化故障恢复。 核心要点: 1 客户私有化部署DeepSeek-R1模型的真实业务需求 2 Ollama服务监测程序的设计原理与实现流程 3 Python代码实现细节及日志配置方案 Ollama服务监测程序——保障Deep
高效监控本地DeepSeek-R1服务,确保业务系统持续稳定运行,实现自动化故障恢复。 核心要点: 1. 客户私有化部署DeepSeek-R1模型的真实业务需求 2. Ollama服务监测程序的设计原理与实现流程 3. Python代码实现细节及日志配置方案
Ollama服务监测程序——保障DeepSeek-R1稳定运行
业务背景
近期DeepSeek-R1模型热度极高,某业务系统需要在本地接入该模型,客户明确要求私有化部署。恰好手中闲置了一张RTX 3090显卡,于是通过Ollama拉取deepseek-r1:32b模型。起初运行流畅,但服务运行一段时间后却出现无响应卡死现象。尝试多种排查手段仍未定位确切原因,最终决定编写一个监测程序进行兜底防护。思路非常直接:定时调用Ollama的API接口,若请求超时则自动执行服务重启操作,确保AI推理服务的高可用性。
代码实现详解
采用Python语言实现,在项目目录中创建ollama_monitor.py文件,核心逻辑如下:
import requests
import time
import subprocess
import psutil
import logging
import os
from datetime import datetime
OLLAMA_HOST = os.environ.get("OLLAMA_HOST", "localhost:11434")
try:
port = OLLAMA_HOST.split(":")[1] # 提取端口号
OLLAMA_API_URL = f"http://localhost:{port}/api/tags"
except IndexError:
logging.error("OLLAMA_HOST 环境变量格式错误,应为 '主机:端口'")
port = "11434" # 默认端口
OLLAMA_API_URL = f"http://localhost:{port}/api/tags"
TIMEOUT_SECONDS = 10
RESTART_COMMAND = "ollama ps"
def setup_logging():
"""配置日志记录器,同时输出到文件和控制台。"""
log_dir = "logs"
if not os.path.exists(log_dir):
os.makedirs(log_dir)
current_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
log_file_path = os.path.join(log_dir, f"ollama_monitor_{current_time}.log")
# 创建文件处理器
file_handler = logging.FileHandler(log_file_path)
file_handler.setLevel(logging.INFO)
file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(file_formatter)
# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(console_formatter)
# 获取根日志记录器并添加处理器
logging.basicConfig(level=logging.INFO, handlers=[file_handler, console_handler])
def check_ollama_status():
"""检查 Ollama 状态,如果卡住则返回 True,否则返回 False。"""
try:
response = requests.get(OLLAMA_API_URL, timeout=TIMEOUT_SECONDS)
response.raise_for_status()
return False
except requests.exceptions.RequestException as e:
logging.error(f"Ollama 可能卡住:{e}")
return True
def restart_ollama():
"""重启 Ollama 服务。"""
logging.info("重启 Ollama 服务...")
try:
for proc in psutil.process_iter(['pid', 'name']):
if proc.info['name'] == 'ollama.exe':
p = psutil.Process(proc.info['pid'])
p.terminate()
subprocess.Popen(RESTART_COMMAND, shell=True)
logging.info("Ollama 服务已重启。")
except Exception as e:
logging.error(f"重启 Ollama 服务失败:{e}")
if __name__ == "__main__":
setup_logging()
while True:
if check_ollama_status():
restart_ollama()
sleep_time = int(os.environ.get("OLLAMA_MONITOR_INTERVAL", 60))
time.sleep(sleep_time)
此监测程序检测的是http://localhost:{port}/api/tags接口(用于获取模型列表),利用psutil库查找进程,并未直接使用系统级ps命令(经测试效果不佳)。监控间隔可通过环境变量OLLAMA_MONITOR_INTERVAL自定义,默认每60秒执行一次健康检查。
依赖包安装
编写requirements.txt文件,内容如下:
requests
psutil
pyinstaller
执行命令 pip install -r requirements.txt 即可完成依赖安装。
程序打包与部署
在程序所在目录中运行命令:pyinstaller --onefile ollama_monitor.py,生成的独立可执行文件位于根目录的dist/ollama_monitor.exe。将该exe文件复制到目标服务器上,直接运行即可实现对Ollama服务的全天候监控与自动恢复。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:Ollama服务监测程序安装配置与使用详解要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点小米MiMo开放平台宣布,MiMo-V2系列的四款模型将于2026年6月30日正式下线,平台已推动开发者向V2 5系列迁移。具体涉及mimo-v2-pro、mimo-v2-omni、mimo-v2-flash和mimo-v2-tts模型。平台设置了系统替换时间作为缓冲:pro和omni模型于2026
2026重庆车展上,2026款长安猎手K50正式上市,共推出10款车型,售价14 19万至17 89万元。新车主要针对续航、电池和动力进行升级,搭载2 0T增程系统与双电机,纯电续航超180公里,快充仅需16分钟。全系标配30kW外放电功能,储备电量达239kWh,并新增山地与涉水模式,提升通过性。
上海期货交易所与上海市普陀区人民政府于6月12日签署战略合作协议,旨在建立长期共赢的合作机制,共同服务上海国际金融中心与国际贸易中心的联动发展。双方高层领导均出席签约仪式,彰显了对此次合作的高度重视。协议聚焦于发挥期货市场专业资源与区域发展综合优势,深化务实合作,探索金融创新与实体经济深度融合,以期
6月12日,世纪华通发生一笔大宗交易,以每股14 37元的价格成交757 24万股,成交总额为1 09亿元。值得注意的是,该成交价与当日市场收盘价持平,属于平价交易。此次交易额占该股当日总成交额的1 51%。市场分析认为,平价成交反映了买卖双方对当前股价水平的共识,交易行为相对平稳,未对市场预期造成
- 日榜
- 周榜
- 月榜
热点快看
