У меня есть следующий 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();
}
?>
Запуск этого скрипта раз работает нормально, но если я запускаю скрипт через несколько секунд, я получаю исключение «Невозможно назначить запрошенный адрес», что понятно, так как серверная система, вероятно, исчерпала порты.
Если же я удалю $con->close (); Я могу запускать этот сценарий снова и снова без какой-либо заметной нагрузки на базу данных. Я предполагаю, что это связано с тем, что соединение с базой данных является постоянным и повторно использует одно и то же начальное соединение в сценарии.
Что я хотел бы знать, так это то, что если более 20 000 разных пользователей запустят 1 цикл этого скрипта одновременно, что произойдет с базой данных? Например, будут ли доступные соединения просто исчерпаны, потому что каждому пользователю нужно создать одно соединение с базой данных или все эти пользователи будут использовать одно и то же начальное соединение, созданное первым u сер?