Ubuntu 下 OpenSSL 性能优化实操指南
一 基线评估与硬件加速验证
grep -E 'aes|avx|avx2|sse4_2' /proc/cpuinfoopenssl version -a(关注如 built on、compiler、是否启用 asm 等字段)openssl speed aes-128-gcm aes-256-gcm rsa2048 rsa4096(对比不同算法/密钥长度的吞吐与延迟)二 编译与安装的正确姿势
sudo apt install openssl libssl-dev./config --prefix=/usr/local/openssl -O3 -fPIC enable-ec_nistp_64_gcc_128 no-shared
make -j$(nproc)
sudo make install
-no-asm、-no-sse2),否则会失去硬件加速--with-ssl=... 指定新编译目录),避免运行时仍链接到旧库-ldl -lpthread(示例:gcc app.c -lssl -lcrypto -ldl -lpthread)。三 服务端 TLS 配置要点(Nginx 示例)
ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_session_tickets on;ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets on;
openssl speed 与真实压测(如 wrk/ab)对比前后性能,确认握手与加解密吞吐提升。四 系统与网络栈优化
/etc/sysctl.conf,按需调整):
net.ipv4.tcp_fastopen = 3net.ipv4.tcp_tw_reuse = 1net.core.netdev_max_backlog = 5000sudo sysctl -p五 监控与回归测试
top、mpstat -P ALL 1、pidstat -u -p <pid> 1 观察 CPU、软中断与进程负载openssl speed aes-128-gcm aes-256-gcm rsa2048 rsa4096wrk/ab 对 HTTPS 端点进行长时压测,关注 P95/P99 延迟 与 每秒握手数/吞吐。