我的环境 : Apache/2.2.21 (Win32) PHP/5.4.3

测试代码 :

selectDB("npm")->selectCollection("user");

$user = $c->findOne(array('userName' => 'admin','passWord'=>'admin'));

if($user){

echo var_dump($user);

}

echo var_dump($db);

?>

使用apache并发测试工具 ab.exe 测试,测试命令如下

D:\Apache2.2\bin>ab.exe -n 100 http://192.168.15.21/a.php

测试结果:

Concurrency Level: 1

Time taken for tests: 0.266 seconds

Complete requests: 100

Failed requests: 58

(Connect: 0, Receive: 0, Length: 58, Exceptions: 0)

Write errors: 0

Total transferred: 888192 bytes

HTML transferred: 870668 bytes

Requests per second: 376.47 [#/sec] (mean)

Time per request: 2.656 [ms] (mean)

Time per request: 2.656 [ms] (mean, across all concurrent requests)

Transfer rate: 3265.41 [Kbytes/sec] received

php错误信息:

[13-Jun-2012 07:40:26 UTC] PHP Notice: Unknown: localhost:27017: pool done (0x3877a10) in Unknown on line 0

回复内容:

我的环境 : Apache/2.2.21 (Win32) PHP/5.4.3

测试代码 :

selectDB("npm")->selectCollection("user");

$user = $c->findOne(array('userName' => 'admin','passWord'=>'admin'));

if($user){

echo var_dump($user);

}

echo var_dump($db);

?>

使用apache并发测试工具 ab.exe 测试,测试命令如下

D:\Apache2.2\bin>ab.exe -n 100 http://192.168.15.21/a.php

测试结果:

Concurrency Level: 1

Time taken for tests: 0.266 seconds

Complete requests: 100

Failed requests: 58

(Connect: 0, Receive: 0, Length: 58, Exceptions: 0)

Write errors: 0

Total transferred: 888192 bytes

HTML transferred: 870668 bytes

Requests per second: 376.47 [#/sec] (mean)

Time per request: 2.656 [ms] (mean)

Time per request: 2.656 [ms] (mean, across all concurrent requests)

Transfer rate: 3265.41 [Kbytes/sec] received

php错误信息:

[13-Jun-2012 07:40:26 UTC] PHP Notice: Unknown: localhost:27017: pool done (0x3877a10) in Unknown on line 0

首先建议你设置一下php mongo的pool size,在你初始化Mongo对象之前MongoPool::setSize(100);

这样可以提高mongo的连接效率,特别是在大并发的情况下。另外,你的ab命令使用有误你使用了-n 100,这个数目太小了,一般都要设置在上千次以上

你没有使用-c参数设置并发数,导致ab是根据总数的极限来压并发,这样并不科学

你应该使用ab.exe -n 1000 -c 100 http://192.168.15.21/a.php

这样是在100的并发下,完成1000次请求。你可以根据自己的情况调整这两个参数。

最后要说的是,有时候出现报错,并不是不稳定,每个服务器都有它的极限,比如你现在用的是windows xp来测试服务器性能,它的硬件,还有软件优化程度(比如半开连接数),都会很大的影响最终性能。

如果你想科学的测试服务器性能,建议使用专门的服务器,并选用经过标准优化了的linux操作系统。

Try the lastest version of mongo php driver

Check this out:

https://github.com/mongodb/mongo-php-...

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php 量 高并发 nosql,nosql - 高并发下Apache+mongodb的php驱动不稳定相关推荐

  1. 搞懂分布式技术30:高并发解决方案——提升高并发量服务器性能解决思路

    高并发解决方案--提升高并发量服务器性能解决思路 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很 ...

  2. 什么是并发、高并发以及实现高并发需要考虑的因素

    文章目录 1.什么是并发 2.什么是高并发 3.实现高并发需要考虑的因素 3.1 高性能 3.1.1 网络 3.1.2 CPU 3.1.3 内存 3.1.3.4 IO 3.2 高可用性 3.3 高扩展 ...

  3. JAVA中的高并发,解决高并发的方案

    java高并发,如何解决,什么方式解决 一.什么是高并发 二.高并发的解决方法有两种 三.追加 一.什么是高并发 1.1 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑 ...

  4. Java 高并发_JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过!...

    JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过! 1.JPG (37.82 KB, 下载次数: 0) 2018-12-3 09:40 上传 2.JPG (28 ...

  5. 【java】 java 高并发解决方案和高负载优化方法

    [java] java 高并发解决方案和高负载优化方法 参考文章: (1)[java] java 高并发解决方案和高负载优化方法 (2)https://www.cnblogs.com/lonelywo ...

  6. 图解|什么是高并发利器NoSQL

    1.迷茫的小黑 小黑最近有点郁闷. 手头的工作不是特别喜欢,技术退步有点严重,于是想出去看看机会. 小黑通过朋友内推,前几天去北京CBD附近的一家名叫宇节蹦跶的公司面试,被一些问题三连击直接跪掉了. ...

  7. 高并发解决方案——提升高并发量服务器性能解决思路

    一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站相关的技术经过 ...

  8. 【高并发】在高并发环境下该如何构建应用级缓存?

    来自:冰河技术 写在前面 随着我们的系统负载越来越高,系统的性能就会有所下降,此时,我们可以很自然地想到使用缓存来解决数据读写性能低下的问题.但是,立志成为资深架构师的你,是否能够在高并发环境下合理并 ...

  9. 【高并发】为何高并发系统中都要使用消息队列?这次彻底懂了!

    来自:冰河技术 写在前面 很多高并发系统中都会使用到消息队列中间件,那么,问题来了,为什么在高并发系统中都会使用到消息队列中间件呢?立志成为资深架构师的你思考过这个问题吗? 本文集结了众多技术大牛的编 ...

最新文章

  1. python函数对变量的作用遵守原则有哪四条_创建一个包含四个参数的函数
  2. Windows下命令行Git无法显示中文问题解决方案
  3. mongodb集群 java_MongoDB集群JavaAPI插入数据
  4. mysql集群搭建教程-mysql+windows篇
  5. 怎样在 Centos 6.8 中安装 Elasticsearch 5.2
  6. Blazor服务器应用程序中使用EF Core的多租户
  7. And Design:拓荒笔记——Form表单
  8. 宅男、游戏、美女,一场不一样的技术公开课让你老泪纵横
  9. spring+hibernate中clob、blob字段的处理方法
  10. 矮人DOS工具箱 V4.2 安装及使用
  11. gis生成道路中心线_ArcGIS方法-利用到路面提取道路中心线的方法
  12. 完美解决浏览器劫持方法,简单实用百试百灵!
  13. .NET开发邮件发送功能的全面教程(含邮件组件源码)
  14. android 赛车 源码,android 3D风格赛车游戏源码
  15. GAN实战——书法字体生成练习赛开始报名啦!
  16. 华云数据董事长许广彬接受中央电视台采访:推动职业教育发展
  17. Apache Druid LoadData 任意文件读取漏洞
  18. Kindle4RSS - 好用的Kindle RSS新闻文章推送服务
  19. Laravel 报错 file_put_contents(): failed to open stream......解决
  20. Zynq UltraScale+ MPSoC IPI 通信

热门文章

  1. Linux下Qt的QPixmap加载图片无法显示的问题
  2. 【Beta】Phylab 测试报告
  3. GCC的__attribute__ ((constructor))和__attribute__ ((destructor))
  4. walle多渠道打包+Tinker(bugly)热更新集成+360加固(乐固)
  5. jQuery ajax error函数(交互错误信息的获取)
  6. [BZOJ]4650 优秀的拆分(Noi2016)
  7. 如何用Python实现目录遍历
  8. Editplus配置VC++(1) 及相关注意事项
  9. 程序猿能力矩阵 — 敢測吗?看自己在哪个档次
  10. 程序员常见的健康问题