Я пытаюсь протестировать мой PHP-скрипт, который создает 48 дескрипторов cURL multi, каждый из которых содержит около 1500 запросов, и все они выполняются параллельно.Я пытаюсь убедиться, что все запросы действительно отправлены, и для этого я регистрирую запросы на моем сервере.Вот мой dump.php, к которому я делаю запросы со своим сценарием, и он записывает запрос в файл:
<?php
ob_start();
echo $_SERVER["REQUEST_URI"];
$dump = ob_get_clean();
$log = "dump.txt";
$fh = fopen($log, 'a') or die("can't open file");
fwrite($fh, $dump . "\r\n\r\n");
fclose($fh);
echo "Dump Completed";
?>
Однако существует небольшая проблема с возможностью моего четырехъядерного ПКзапускать эти запросы со скоростью около 1500 каждые 10 секунд и, скорее всего, перегружать мой сервер, когда он пытается открыть файл одновременно.Я установил задержку в 0,1 секунды между отправкой каждого запроса, но мой сервер, я думаю, все еще не может открыть файл, вывести текст и закрыть его до того, как поступит следующий запрос.В результате мой PHP-файл сообщает, что было отправлено около 72 тыс. Запросов, а мой сервер сообщает, что получено только около 14 тыс. Запросов.Это может быть связано с тем, что моя PHP-программа перегружает мой компьютер или систему портов, и некоторые запросы не были успешно отправлены, или мой сервер недостаточно быстр для обработки 150 запросов в секунду.
Любые возможные решения дляпытаться безопасно знать, что все мои запросы были отправлены?Когда мой клиент использует скрипт, обязательно, чтобы по крайней мере 99,5% запросов были отправлены, и его сервер достаточно мощный, чтобы справиться с этим без проблем.Я не могу проверить его на его серверах по соображениям безопасности, но мой не достаточно мощный, чтобы я мог имитировать условия работы.