2

我刚刚运行了一个测试,通过 nginx/php fastcgi 创建了 1000 个到 mongodb 的非持久连接,这在我的开发机器上花费了大约 2.1 秒。然后我尝试使用持久连接进行相同的测试,结果相同。我想我在某处读到过,现在始终启用 php 驱动程序中的持久性。接下来,我尝试将连接存储到 APC,这导致第一次请求后的响应时间为 7-9 毫秒。现在我想知道一些事情:

  1. 我几乎从来没有想过我想在我的应用程序中一次创建多个连接,并且根据我的理解,通过持久连接,mongo 驱动程序会根据需要创建新连接。

  2. 创建单个连接似乎与从 APC 中提取存储的连接对象所花费的时间大致相同。缓存连接对象真的会带来好处吗?

  3. 缓存我当然知道的连接仍然需要某种检查以查看它是否仍然是有效连接..在每次执行此检查时,我想知道它是否会否定从缓存中提取它的性能增益(如果有的话) .

我似乎无法真正找到任何真正涵盖其中任何内容的材料,所以我假设这是因为我对自己的理解感到困惑。你们有没有人尝试过这个?

谢谢!

4

1 回答 1

1

首先,据我所知,APC 在存储数据时会对其进行序列化。因此在 APC 中存储任何连接都没有任何意义。

然后,php 进程将针对各种请求重用persistend 连接。因此,将为 php 进程将收到的每个请求重新建立非持久连接。

于 2012-09-05T14:52:05.700 回答