Ваше узкое место будет в ожидании ответа данного хоста.Учитывая 30-секундный таймаут и N хостов для проверки, и все, кроме последнего хоста, не отвечают, вам нужно подождать 30 (N-1) секунд, чтобы проверить последний хост.Возможно, вам никогда не удастся проверить последний хост.
Вам, безусловно, нужно отправить несколько HTTP-запросов - либо multi-cURL, как уже предлагалось, либо класс HttpRequestPool для подхода OO.
Вам также нужно будет подумать, как разбить набор из N хостов, чтобы проверить максимальное количество подмножеств, чтобы избежать проблемы с невозможностью связаться с хостом из-за необходимости сначала иметь дело с очередью неотвечающихhosts.
Проверка N хостов с 1 сервера дает наибольший шанс не достичь одного или нескольких хостов из-за очереди не отвечающих хостов.Это самый дешевый, самый простой и наименее надежный вариант.
Проверка 1 хоста на каждом из N серверов дает наименьшую вероятность того, что один из них не достигнет одного или нескольких хостов из-за очереди не отвечающих хостов.Это самый дорогой, (возможно) самый трудный и самый надежный вариант.
Рассмотрите баланс затрат / сложности / надежности, который лучше всего подходит для вас.