Co się dzieje, gdy połączenia z MongoDB nie są zamknięte?

Mam następujący skrypt PHP, który w zasadzie łączy się z MongoDB, zapisuje dokument, a następnie zamyka połączenie 19000 razy:

<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>

Uruchomienie tego skryptu działa dobrze, ale jeśli uruchomię skrypt kilka sekund później, otrzymam wyjątek „Nie można przypisać żądanego adresu”, co jest zrozumiałe, ponieważ w systemie serwera prawdopodobnie zabrakło portów.

Jeśli jednak usunę $ con> close (); Mogę uruchamiać ten skrypt w kółko bez zauważalnego obciążenia bazy danych. Zakładam, że jest tak, ponieważ połączenie z bazą danych jest trwałe i ponownie wykorzystuje to samo połączenie początkowe w skrypcie.

Chciałbym wiedzieć, czy 20k + różni użytkownicy uruchomili 1 pętlę tego skryptu w tym samym czasie, co stałoby się z bazą danych? na przykład czy dostępne połączenia po prostu się wyczerpią, ponieważ każda potrzeba użytkownika tworzy jedno połączenie z bazą danych? lub czy wszyscy ci użytkownicy będą korzystać z tego samego początkowego połączenia utworzonego przez pierwszego użytkownika?

questionAnswers(2)

yourAnswerToTheQuestion