我正在使用 Digital Ocean droplet(类似于 EC2 主机),它是 Ubuntu 22.10,并运行 node.js 应用程序。但是,这可能是一个坏主意,我在同一台主机和应用程序上运行 nginx,它正在终止 HTTPS 连接。一切运行正常,但有一个警告。
我最昂贵的调用花费了大约 622 毫秒来计算结果,但随后花费了大约 6 秒来发送数据。由于发送响应的速度变慢,我怀疑这个贫血 droplet 上的 HTTPS 加密是瓶颈。
我的问题是,如何收集有关 nginx 性能的数据来确定这是否是瓶颈?提前谢谢您!
答案1
加密速度可以通过该openssl speed
工具进行测试(见人openssl速度):
概要
openssl 速度 [-help] [-engine id] [-elapsed] [-evp 算法] [-decrypt] [-rand 文件...] [-writerand 文件] [-primes num] [-seconds num] [-bytes num] [算法...]
描述
此命令用于测试加密算法的性能。要查看支持的算法列表,请使用 list --digest-commands 或 list --cipher-commands 命令。全局 CSPRNG 由随机算法名称表示。
例如,这是在具有 i5-4570 CPU(10 年前发布)的 Debian 11 桌面上运行的:
$ openssl speed aes
Doing aes-128 cbc for 3s on 16 size blocks: 42126692 aes-128 cbc's in 3.00s
...
Doing aes-256 cbc for 3s on 16384 size blocks: 31677 aes-256 cbc's in 3.00s
OpenSSL 1.1.1n 15 Mar 2022
built on: Fri May 26 21:30:44 2023 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-FSeIwm/openssl-1.1.1n=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 224675.69k 234114.05k 234762.07k 236847.45k 236888.06k 237076.48k
aes-192 cbc 194343.19k 199041.24k 199621.38k 200813.57k 200278.02k 196515.16k
aes-256 cbc 167304.09k 171438.21k 172737.84k 172836.18k 172886.70k 172998.66k
每个核心能够使用 AES-256-CBC 加密 170 MB/秒无硬件加速由于它是 2 核 4 线程 CPU,因此我还运行了 4 线程测试 ( openssl -multi 4 aes
),总体速度为 642MB/s。
可以使用“EVP”接口测试 AES-128-GCM:
$ openssl speed -multi 4 -evp aes-128-gcm
...
evp 1467308.76k 3688563.14k 7856414.29k 10757336.06k 12390427.31k 12442206.21k
这表明使用 AES-NI 硬件加速后速度为 12 GB/s。
因此,即使您的服务器在这台计算机上运行,加密也不会成为瓶颈。