我刚刚运行了一个测试,通过 nginx/php fastcgi 创建了 1000 个到 mongodb 的非持久连接,这在我的开发机器上花费了大约 2.1 秒。然后我使用持久连接尝试了相同的测试,结果相同。我想我在某处读到过 php 驱动程序中的持久性现在始终处于启用状态。接下来,我尝试将连接存储到 APC,这导致在第一次请求后有 7-9 毫秒的响应时间。现在我想知道这里的一些事情:
我几乎从来没有想过我想在我的应用程序中一次创建多个连接的地方,并且根据我的理解,使用持久连接,mongo 会根据需要创建新连接司机。
创建单个连接所花费的时间似乎与从 APC 中提取存储的连接对象所花费的时间大致相同。缓存连接对象真的会带来好处吗?
缓存我知道的连接当然仍然需要某种检查以查看它是否仍然是有效连接.. 在每次执行此检查时,我想知道它是否会抵消性能增益(如果有的话) ) 从缓存中提取它。
我似乎无法真正找到任何真正涵盖其中任何内容的 Material ,所以我假设这是因为我对自己的理解感到困惑。你们有人试验过这个吗?
谢谢!
最佳答案
首先,据我所知,APC 在存储数据时会序列化数据。因此在 APC 中存储任何连接都没有任何意义。
然后,持久连接将被 php 进程重新用于各种请求。因此,对于 php 进程将收到的每个请求,都将重新建立一个非持久连接。
关于php - Mongodb 和 PHP APC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12275727/