我有以下PHP脚本基本上连接到MongoDB,写入文档,然后关闭连接19000次:
<?php
for($i=0; $i < 19000; $i++) {
$con = new Mongo("mongodb://localhost:27017");
$db = $con->selectDB('test');
$col = $db->selectCollection('close_wait_test');
$col->insert(array('Test' => 'Value1'));
$con->close();
}
?>
Run Code Online (Sandbox Code Playgroud)
运行此脚本一次运行正常,但如果我在几秒钟后运行脚本,我会得到"无法分配请求的地址"异常,这是可以理解的,因为服务器系统可能用完了端口.
但是,如果我删除$ con> close(); 我可以一遍又一遍地运行该脚本,而不会对数据库造成任何明显的压力.我假设这是因为连接到数据库是持久的并且在脚本上重用相同的初始连接.
我想知道的是,如果20K +不同用户运行1圈这个脚本的同时,会发生什么样的数据库?例如,可用连接是否会耗尽,因为每个用户需要创建一个到数据库的连接?或者所有这些用户都使用第一个用户创建的相同初始连接?