2012-05-30 20 views
2

是否有二郎一种方式来获得一个SSL连接到底有多少内存占用?二郎得到确切大小的SSL连接的存储

现在我还挺通过连接的客户端的数量将在内存中的整个beam.smp大小(减去初始化大小)猜测...

我使用R15B01

的SSL连接是通过gen_server处理,做

process_info(spawn(Fun), memory). 

给我GC调用后:

{memory,2108} 

这显然不包含SSL套接字连接大小。

+1

有没有这样的东西作为“SSL连接的大小”。问题没有意义,不能以现在的形式回答。请再试一次。 – EJP

+3

@EJP:询问SSL连接与Erlang有多少内存有什么关系? – TheSquad

+0

因为(1)你不清楚你在询问什么:如果你正在谈论数据传递,你就不知道没有阅读全部内容;如果你谈论的是开放连接的增量成本,(2)它会随着时间的推移而变化,并且根据服务器向你发送多少个证书,你支持多少密码套件以及服务器选择哪一个等等。等等。它只是不是一个明确的量子。 – EJP

回答

2

的事情是,即使处理单个SSL连接二郎启动多个单独的进程(证书数据库,SSL管理,SSL会话等),而且每个流程都可能有它的数据单独的存储。因此,很难给出明确的答案每个连接占用多少内存,因为有相当多的地方保留有关连接的信息。

如果你需要的估计,我将做到以下几点:

  1. 开始SSL服务器和SSL客户端在http://pdincau.wordpress.com/2011/06/22/a-brief-introduction-to-ssl-with-erlang/
  2. 保存TotalMemory1 = proplists:get_value(total, memory()).服务器会话描述。
  3. 试图从一个单独的客户端会话中打开更多的99个客户端连接。
  4. 除以(TotalMemory2 - TotalMemory1)/99计算TotalMemory2 = proplists:get_value(total, memory()).
  5. 实测出的存储器中的单个连接采用摊销量。
+0

嗯,我想我偷偷知道答案,这是不可能的现成的......但是我会尝试你的解决方案,它似乎比我估计插座大小更少的crapy。 – TheSquad