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

У меня есть следующий 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 сер?

5
задан Ryan Simms 16 April 2012 в 12:30
поделиться