温馨提示×

怎样用linux openssl测性能

小樊
35
2026-10-16 06:54:32
栏目: 云计算

在 Linux 下,可以用 OpenSSL 自带的 openssl speed 命令来测试加密/解密、签名/验证等算法的性能。下面按常见用法 → 进阶用法 → 实战示例给你说明。


一、最基础用法(马上能跑)

openssl speed

这会测试 一大堆算法(AES、RSA、SHA、ECC 等)的吞吐量,输出类似:

type             16 bytes     64 bytes    256 bytes
aes-128-cbc      123456.45k   456789.12k  789123.45k

单位一般是 KB/s(k = 1024 bytes)


二、只测指定算法(推荐)

1️⃣ 对称加密(AES)

openssl speed aes-128-cbc
openssl speed aes-256-gcm

2️⃣ 哈希算法

openssl speed sha256
openssl speed sha1

3️⃣ 非对称(RSA / EC)

openssl speed rsa2048
openssl speed ecdsap256

⚠️ 非对称算法很慢,通常只测签名/验证次数


三、多核 & 多线程测试(重要)

默认是 单线程,现代 CPU 要用多核才有意义:

openssl speed -multi 8 aes-256-cbc

-multi N = 使用 N 个 CPU 核心

查看 CPU 核心数:

nproc

四、测“真实场景”性能(推荐)

1️⃣ TLS 握手性能(RSA)

openss speed rsa2048 -multi $(nproc)

关注:

  • sign = 服务端
  • verify = 客户端

2️⃣ ECC 性能(更现代)

openssl speed ecdsap256 -multi $(nproc)

五、用 OpenSSL 做“真实网络性能”测试(s_client / s_server)

1️⃣ 起一个测试 TLS 服务

openssl s_server -cert server.pem -key server.key -www

2️⃣ 客户端压测

openssl s_time -connect localhost:4433 -www / -time 10

输出:

  • 每秒连接数
  • 平均握手时间

六、只看“每秒操作数”(不是 KB/s)

openssl speed -evp aes-256-gcm

-evp 使用 EVP 接口(更接近真实应用)


七、常见性能对比示例

openssl speed -multi $(nproc) \
  aes-128-gcm aes-256-gcm \
  sha256 sha512 \
  rsa2048 ecdsap256

八、注意事项(很重要)

✅ 使用 硬件加速(AES-NI)

grep aes /proc/cpuinfo

✅ OpenSSL 版本影响巨大

openssl version

✅ 虚拟机 / 容器有性能损失
✅ 温度变化会影响结果


九、一句话总结

快速测性能:

openssl speed -multi $(nproc) aes-256-gcm sha256 rsa2048

如果你愿意,可以告诉我:

  • 你是 测服务器 / 客户端 / 特定协议
  • 是 CPU 性能 / TLS 握手 / 磁盘加密

我可以给你更精确的命令。

0 踩