升级完 php 的基础镜像后,有些定时任务变慢了很多,执行时间拉长了几倍。研发排查请求 https 接口的时间比以前慢,具体在 SSL/TLS 握手等准备传输耗时 (pretransfer_time) 从 0.016s 飙升到 0.075s,刚好定时任务在循环请求接口,累计时长就变的相当可观了,网上一搜发现早有报告:

CURL - massive Performance issue,是依赖的 libcurl 的问题,然后也有报告

libcurl performance degradation after upgrading to Debian Bookworm with openssl 3,最终问题指向了 openssl

Massive performance degradation in OpenSsl 3.0

原来的 php 镜像是基于 Ubuntu 20.04 构建的,内置 libssl 1.1,升级到 22.04 后,内置就正好是性能差的 libssl 3.0,从官方的说法来看要到 3.5 版本性能才恢复,现在的 TLS 版还没有这么新,也不想自己编译,按照网友指点,先暂时换成 nss 吧,改动最小。