技术文章平台
KernelRanch 是一个技术文章平台,记录工程实践中的经验、取舍与踩过的坑。
-
冷缓存、热缓存与"假磁盘":同一台机器为什么能测出 10.9 GB/s 和 250 MB/s
同一台机器、同一条 SQL,能测出 10.9 GB/s 和 250 MB/s。差别不在数据库,在数据来自哪一层存储。四层缓存模型、三个自测数字、一份冷热对照脚本。
-
同一份 200 万行 CSV:DuckDB、PostgreSQL、SQLite 本地分析查询实测
2,000,000 行、93.6MB 的 CSV,三个引擎、三条聚合查询。DuckDB 单线程 14.6ms,PostgreSQL 并行 8 是 70ms,SQLite 766ms。附导入耗时、文件体积与选型边界。
-
Windows 上 docker run -p 绑不上端口:三种报错、一次不可复现的失败和一个反直觉结论
同一个端口昨天报 WSAEACCES、今天却能绑成功;人为加 Windows 保留段也无法复现失败,但"端口被占用"一测就中。附四步排查与三种处置。
-
逻辑复制做零停机升级:1M 行同步 1.6 秒,切换停顿 0.86 秒,附五个必踩的坑
PostgreSQL 14.24 到 18.6,逻辑复制全流程实测:初始同步 1.6s、20 秒写入压测下延迟 0 字节、切换停顿 0.86s。附 schema/序列/DDL 三个不同步问题与真实报错。
-
Python 连 PostgreSQL:连接比查询贵 40 倍,10 个线程反而比 1 个连接慢
psycopg3 与 asyncpg 实测:单连接 11184 qps,每次新建连接掉到 360 qps,10 线程比单连接慢 55%,asyncpg 10 连接并发 23601 qps。连接成本 p50 1.8ms。
-
读放大:一条返回 21 行的查询扫了 200 万行,代价是 351 倍
200 万行的表、10 万基数的 user_id。加索引前后:扫描行数 2 亿降到 0,缓冲区块 14720 降到 4,单查询 24.6ms 降到 0.07ms。附三条量化读放大的 SQL 与一个不成立的经验法则。
-
PostgreSQL 时间点恢复演练:pg_basebackup + WAL 归档 + recovery_target_time 的一次完整跑通
在 768 MB 的 postgres:18 容器里跑完一条完整的 PITR 链:0.75 秒、3.2 MB 的基线备份,128 MB 的 WAL 归档,3.22 秒把集群恢复到 DROP TABLE 之前。三次故意失败的恢复留下原始报错,也留下"备份成功不等于能恢复"的三个验收点。
-
Redis 持久化三选一:重启后丢多少、恢复要多久
同一份 20 万键数据,纯 RDB 崩溃丢 10000 条、AOF everysec 与 always 各丢 0 条;写入吞吐差 41 倍,文件体积差 3.69 倍,而重启恢复耗时几乎一样。四种数字全部来自 Docker 容器实测,含 AOF 重写前后的对照。
-
两个"卡住":在 kind 上把 topologySpreadConstraints 和 PodDisruptionBudget 撞到边界
在 Windows + Docker Desktop 上起 1 控制面 2 工作节点的 kind 集群,实测拓扑分布约束导致的 Pending(2/6 就绪、4 个 FailedScheduling)与 PDB 导致的驱逐拒绝(12 次重试、60.7 秒超时),并给出两者叠加时的真实事件原文与恢复耗时。
-
Nginx 反向代理的三个“看起来配了其实没生效”
upstream 里写了 keepalive 却仍有 500 条后端连接,proxy_read_timeout 设为 2s 却等 5s,499/502/504 分别由谁产生。四组 keepalive 配置、两轮 500 请求和原始日志。
-
把 PostgreSQL 塞进 512MB 容器:shared_buffers、连接开销与 work_mem 的内存账本
512MB 的 --memory 配 384MB 的 shared_buffers,实测只撑得住 33 条连接,34 条起随机被 OOM 杀,35 条起每轮必挂。但 docker inspect 给出的是 OOMKilled=true 加退出码 0,容器没有退出,被杀的是 checkpointer 或 backend。文章给出连接数阶梯、每连接 3.2MB 私有内存的测法,以及按 --memory 反推 shared_buffers 上限的公式。
-
PostgreSQL 18 参数速查:默认值、生效方式、改哪一层
17 个常改参数在 18.6 上的默认值与 context,附一条导出当前值的 SQL、三种改法的差别,以及三个容易改错层的坑。
没有匹配的文章,换个关键词或标签试试。