【问题标题】:Mongodb and PHP APCMongodb 和 PHP APC
【发布时间】:2012-09-05 06:35:52
【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: php mongodb apc


    【解决方案1】:

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

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

    【讨论】:

    • 是的,这就是我得出的结论。已经为您管理了持久性,但我很好奇它是否会给从内存中提取对象而不是询问驱动程序是否存在连接然后重建连接对象带来任何性能优势。
    猜你喜欢
    • 2010-10-17
    • 2011-03-20
    • 1970-01-01
    • 2010-10-28
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多