Что происходит, когда соединения с MongoDB не закрыты?

У меня есть следующий PHP-скрипт, который в основном подключается к MongoDB, пишет документ, а затем закрывает соединение 19000 раз:

<code><?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();
}
?>
</code>

Запуск этого скрипта один раз работает нормально, но если я запускаю скрипт через несколько секунд, я получаю «Невозможно назначить запрошенный адрес». исключение, которое понятно, так как серверная система, вероятно, исчерпала порты.

Однако, если я удаляю $ con & gt; close (); Я могу запускать этот скрипт снова и снова без какого-либо заметного напряжения в базе данных. Я предполагаю, что это связано с тем, что соединение с базой данных является постоянным и повторно использует то же самое начальное соединение в сценарии.

Я хотел бы знать, что если бы 20 000+ разных пользователей одновременно выполняли 1 цикл этого сценария, что бы произошло с базой данных? например будут ли просто исчерпаны доступные соединения, потому что каждому пользователю нужно создать одно соединение с базой данных? или все эти пользователи будут использовать одно и то же начальное соединение, созданное первым пользователем?

Ответы на вопрос(2)

Ваш ответ на вопрос