Mongodb and PHP APC


Mongodb and PHP APC

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

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

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

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

我似乎真的找不到任何真正涵盖这一切的材料,所以我想这是因为我对自己的理解感到困惑。你们有人试验过这个吗?

谢谢!

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

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