0

0

Python on-call 手册的编写

冷漠man

冷漠man

发布时间:2026-02-20 00:41:15

|

209人浏览过

|

来源于php中文网

原创

on-call手册是故障时可直接执行的checklist,聚焦确认问题、临时止血、找人兜底三件事;每条指令须可复制粘贴、明确上下文、给出具体阈值和操作步骤。

python on-call 手册的编写

on-call 手册不是文档,是故障时能直接抄起就用的 checklist

它不承载设计思想,也不解释原理——值班工程师凌晨三点被告警叫醒时,只关心三件事:怎么确认问题怎么临时止血找谁兜底。写成“Python 服务高可用设计规范”或“Django 架构演进史”,等于没写。

实操建议:

  • 每条操作指令必须可复制粘贴:比如 curl -s http://localhost:8000/health | jq '.status',而不是“检查健康接口返回”
  • 所有命令默认假设在目标服务所在机器执行;若需跳转,明确写出 ssh app-prod-03,不写“登录对应实例”
  • 避免出现“视情况而定”“一般建议”——换成具体阈值:比如“若 redis-cli -h cache-prod info memory | grep used_memory_human 输出超过 12G,立即执行 redis-cli -h cache-prod flushdb(并 Slack @infra)”

Python 进程挂了?先别 restart,看 systemctl statusjournalctl

90% 的“服务起不来”其实卡在启动阶段,systemctl restart myapp 只会让失败更快重演。真正要盯的是进程为何没活过初始化。

常见错误现象:

立即学习Python免费学习笔记(深入)”;

  • systemctl status myapp 显示 failed 但没报错细节
  • 手动跑 python manage.py runserver 没问题,但用 systemd 启就退出

实操建议:

  • 立刻查日志:journalctl -u myapp -n 100 --no-pager(加 --since "2 minutes ago" 更准)
  • 重点看最后一行:是 ImportErrorOperationalError: database is locked?还是 Killed(OOM 被杀)?
  • 环境变量差异最常踩坑:systemd 默认不继承 shell 环境,Environment=PYTHONPATH=/opt/myapp/src 必须显式写进 /etc/systemd/system/myapp.service

pip listpip freeze 都不准,on-call 时该信哪个?

pip freeze,但前提是它来自当前运行环境。很多手册写“检查依赖版本”,结果让值班人去开发机上跑 pip freeze——那跟生产环境根本不是一回事。

高级Bash脚本编程指南 chm版
高级Bash脚本编程指南 chm版

这本书假定你没有任何关于脚本或一般程序的编程知识, 但是如果你具备相关的知识, 那么你将很容易就能够达到中高级的水平. . . 所有这些只是UNIX®浩瀚知识的一小部分. 你可以把本书作为教材, 自学手册, 或者是关于shell脚本技术的文档. 书中的练习和样例脚本中的注释将会与读者进行更好的互动, 但是最关键的前提是: 想真正学习脚本编程的唯一途径就是亲自动手编写脚本. 这本书也可作为教材来讲解一般的编程概念. 向伟大的中华民族的Linux用户致意! 我希望这本书能够帮助你们学习和理解L

下载

使用场景:

  • 怀疑是某次部署后出现兼容问题(比如 requests 升级导致下游 API 调用失败)
  • 需要快速比对两台机器是否一致(如 prod-01 vs prod-02)

实操建议:

  • 进入服务运行用户上下文再执行:sudo -u www-data pip freeze > /tmp/prod-deps.txt
  • 不要用 pip list:它显示“最新可安装版本”,不是“当前已安装版本”;pip freeze 才输出实际加载的包和精确版本
  • 如果服务用 venv,务必激活后再跑:source /opt/myapp/venv/bin/activate && pip freeze

告警说 CPU 100%,但 top 里 Python 进程只占 30%?查 strace 和 GIL

Python 多线程服务在 CPU 告警时经常表现出“伪低负载”:top 看单个进程不高,但整体系统卡死。本质是 GIL + 阻塞系统调用混在一起,监控没抓到真凶。

性能影响:

  • 纯计算型任务会被 GIL 锁死,top 显示高,但实际是单核满载
  • 大量文件读写、DNS 查询、SSL 握手等系统调用会绕过 GIL,但阻塞线程,表现为 top 低 + load average 高 + 请求超时

实操建议:

  • 先看全局负载:uptime 输出的 load average 若远高于 CPU 核数(如 16 核机器显示 40),大概率是 I/O 阻塞
  • 抓可疑进程系统调用:strace -p $(pgrep -f 'gunicorn.*wsgi') -e trace=open,connect,sendto,recvfrom -s 64 2>&1 | head -50
  • 如果看到大量 connect(…) = -1 EINPROGRESS 或长时间停在 recvfrom(…),基本锁定是下游服务响应慢或 DNS 解析卡住

复杂点在于:Python 进程本身可能很“干净”,问题藏在它调用的 C 扩展、系统库、甚至内核参数里。on-call 手册里必须留一行:“若 strace 显示持续阻塞在某个 syscall,请直接 echo 'net.ipv4.tcp_fin_timeout = 30' >> /etc/sysctl.conf && sysctl -p 并通知 infra”。事情说清了就结束

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python Web 框架 Django 深度开发
Python Web 框架 Django 深度开发

本专题系统讲解 Python Django 框架的核心功能与进阶开发技巧,包括 Django 项目结构、数据库模型与迁移、视图与模板渲染、表单与认证管理、RESTful API 开发、Django 中间件与缓存优化、部署与性能调优。通过实战案例,帮助学习者掌握 使用 Django 快速构建功能全面的 Web 应用与全栈开发能力。

95

2026.02.04

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

349

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

426

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

786

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

359

2025.07.23

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

452

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

181

2023.10.30

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1532

2023.10.19

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

660

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 4.4万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号