我目前正在进行一些个人测试和基准测试,以比较使用MongoDB和MySQL与真实世界示例数据之间的工作流程和效率.
为了在每个数据库中设置我的数据,我正在做几千个循环并随机创建数据对象以插入到数据库中.
但是我在PHP中使用Mongo类时遇到了一些问题,我无法解决.问题是这样的:
I have a loop which creates a new Mongo instance and connection, inserts a small array into a collection and then closes the connection. This loop should run 20000 times. However it is always failing around the 16300nd loop (with a min of 16200 and max of 16350 I'd say after a few runs) when it attempts to create the instance/make a connection.
The code in the loop is below:
$data = get_random_user_data();
$mongo = new Mongo('mongodb://admin:password@localhost:27017/test');
if ($mongo->test->users->insert($data)) {
$users[] = array('id' => $data['_id'], 'name' => $data['username']);
echo $i." - Added user: ".$data['username'].'<br/>';
}
$mongo->close();
Run Code Online (Sandbox Code Playgroud)
get_random_user_data() just returns a simple associative array.
The error I get is:
Fatal error: Uncaught exception 'MongoConnectionException' with message 'Unknown error'
Run Code Online (Sandbox Code Playgroud)
On the line:
$mongo = new Mongo('mongodb://admin:password@localhost:27017/test');
Run Code Online (Sandbox Code Playgroud)
Any ideas? Is there something fundamental I am missing like some security or spam-prevention?
Thanks in advance.
Extra info:
脚本在大约114.9797秒死亡.这不是一个PHP内存或基于时间的问题,因为提出了所有限制,我运行我的MySQL基准测试昨天插入120000行(使用相同的方法循环打开连接,插入,关闭连接)大约一个小时没有问题.
运行PHP 5.3.5版
phpinfo Mongo信息:
MongoDB Support enabled
Version 1.2.0-
Directive Local Value Master Value
mongo.allow_empty_keys 0 0
mongo.allow_persistent 1 1
mongo.auto_reconnect 1 1
mongo.chunk_size 262144 262144
mongo.cmd $ $
mongo.default_host localhost localhost
mongo.default_port 27017 27017
mongo.long_as_object 0 0
mongo.native_long 0 0
mongo.no_id 0 0
mongo.utf8 1 1
Run Code Online (Sandbox Code Playgroud)
您的操作系统只有有限数量的插槽才能打开.当你打开一个套接字然后关闭它时,操作系统不会立即将它放回"可用"池中,它在"等待时间"状态下暂停一段时间,Nat 在他的回答中提到了.
您可以增加操作系统将打开的套接字数量,请参阅http://www.mongodb.org/display/DOCS/Too+Many+Open+Files(每个套接字都是一个打开的"文件").
此外,您使用的是旧版本的驱动程序,您可能需要考虑升级.
| 归档时间: |
|
| 查看次数: |
2447 次 |
| 最近记录: |