Есть PHP скрипт следующего содержания:
$id = rand(1000, 10000);
file_put_contents('./result.txt', "Request " . $id . ' ' . date('H:i:s') . PHP_EOL, FILE_APPEND);
sleep(10);
file_put_contents('./result.txt', "Inner Request " . $id . ' ' . date('H:i:s') . PHP_EOL, FILE_APPEND);
Скрипт генерирует айди для запроса, чтоб их отличать, пишет в файл две строки, но между первой и второй записью "спит" 10 секунд.
На этот скрипт отправляем параллельные запросы с помощью ab
ab -k -c 4 -n 4 localhost:9998/
То есть 4 параллельных запроса.
PHP работает как php-fpm, max_children = 5.
То есть я ожидаю, что 4 запроса придут, запишут в файл строку, затем повисят 10 секунд и запишут вторую строку.
На деле самый первый запрос выполняется 10 секунд, а вот все последующие выполняются параллельно.
Почему так?