3

我正在使用节点版本 v0.8.16。它与 openssl 1.0.0f 捆绑并包含SSL_OP_NO_COMPRESSIONSSL_MODE_RELEASE_BUFFERS.

我的测试 ssl 服务器只是在传入 https 请求时回显 hello world 并保持连接打开。根据我的测试,每个 ssl 连接的内存开销约为 150k。

node 中 ssl 连接的近似内存开销是多少?在这种情况下如何减少 ssl 内存使用量?

4

2 回答 2

8

SSL 需要每个连接空间:

  • 套接字FD
  • 最大可能 SSL 记录的接收缓冲区大约为 16k,这与密码套件略有不同
  • 一个输出缓冲区,可能也大约 16k
  • 计算每个消息 MAC 的空间
  • 握手状态、连接状态、握手MAC等
  • 指向 SSL 会话的指针,可在与同一目标的连接之间共享,并且必须包含密码套件、协议、预主密钥、共享密钥、会话 ID、对等证书链、超时变量……
  • 还有什么我没有想到的。

此外,TCP 连接将消耗内核空间,例如用于套接字发送和接收缓冲区。

于 2012-12-30T02:57:49.700 回答
3

SSL 每个连接需要大约 128K 甚至更多(取决于实现)用于内存缓冲区,因此您可能无法减少使用的内存量。

于 2012-12-26T08:17:06.510 回答